GDBserver
Macros | Functions | Variables
linux-aarch32-low.c File Reference
#include "server.h"
#include "arch/arm.h"
#include "arch/arm-linux.h"
#include "linux-low.h"
#include "linux-aarch32-low.h"
#include <sys/ptrace.h>
#include <elf.h>

Go to the source code of this file.

Macros

#define arm_abi_breakpoint   0xef9f0001UL
 
#define arm_eabi_breakpoint   0xe7f001f0UL
 
#define arm_breakpoint_len   4
 
#define thumb_breakpoint_len   2
 
#define thumb2_breakpoint_len   4
 
#define NT_ARM_VFP   0x400
 

Functions

void arm_fill_gregset (struct regcache *regcache, void *buf)
 
void arm_store_gregset (struct regcache *regcache, const void *buf)
 
void arm_fill_vfpregset_num (struct regcache *regcache, void *buf, int num)
 
void arm_store_vfpregset_num (struct regcache *regcache, const void *buf, int num)
 
static void arm_fill_vfpregset (struct regcache *regcache, void *buf)
 
static void arm_store_vfpregset (struct regcache *regcache, const void *buf)
 
int arm_is_thumb_mode (void)
 
int arm_breakpoint_at (CORE_ADDR where)
 
int arm_breakpoint_kind_from_pc (CORE_ADDR *pcptr)
 
const gdb_bytearm_sw_breakpoint_from_kind (int kind, int *size)
 
int arm_breakpoint_kind_from_current_state (CORE_ADDR *pcptr)
 
void initialize_low_arch_aarch32 (void)
 

Variables

static const unsigned long arm_breakpoint = arm_abi_breakpoint
 
static const unsigned short thumb_breakpoint = 0xde01
 
static const unsigned short thumb2_breakpoint [] = { 0xf7f0, 0xa000 }
 
static struct regset_info aarch32_regsets []
 
static struct regsets_info aarch32_regsets_info
 
struct regs_info regs_info_aarch32
 

Macro Definition Documentation

◆ arm_abi_breakpoint

#define arm_abi_breakpoint   0xef9f0001UL

Definition at line 32 of file linux-aarch32-low.c.

Referenced by arm_breakpoint_at().

◆ arm_breakpoint_len

#define arm_breakpoint_len   4

Definition at line 46 of file linux-aarch32-low.c.

Referenced by arm_sw_breakpoint_from_kind().

◆ arm_eabi_breakpoint

#define arm_eabi_breakpoint   0xe7f001f0UL

Definition at line 38 of file linux-aarch32-low.c.

Referenced by arm_breakpoint_at().

◆ NT_ARM_VFP

#define NT_ARM_VFP   0x400

Definition at line 55 of file linux-aarch32-low.c.

◆ thumb2_breakpoint_len

#define thumb2_breakpoint_len   4

Definition at line 50 of file linux-aarch32-low.c.

Referenced by arm_sw_breakpoint_from_kind().

◆ thumb_breakpoint_len

#define thumb_breakpoint_len   2

Definition at line 48 of file linux-aarch32-low.c.

Referenced by arm_sw_breakpoint_from_kind().

Function Documentation

◆ arm_breakpoint_at()

int arm_breakpoint_at ( CORE_ADDR  where)

◆ arm_breakpoint_kind_from_current_state()

int arm_breakpoint_kind_from_current_state ( CORE_ADDR pcptr)

◆ arm_breakpoint_kind_from_pc()

int arm_breakpoint_kind_from_pc ( CORE_ADDR pcptr)

◆ arm_fill_gregset()

void arm_fill_gregset ( struct regcache regcache,
void *  buf 
)

Definition at line 61 of file linux-aarch32-low.c.

References collect_register().

◆ arm_fill_vfpregset()

static void arm_fill_vfpregset ( struct regcache regcache,
void *  buf 
)
static

Definition at line 132 of file linux-aarch32-low.c.

References arm_fill_vfpregset_num().

◆ arm_fill_vfpregset_num()

void arm_fill_vfpregset_num ( struct regcache regcache,
void *  buf,
int  num 
)

◆ arm_is_thumb_mode()

int arm_is_thumb_mode ( void  )

◆ arm_store_gregset()

void arm_store_gregset ( struct regcache regcache,
const void *  buf 
)

Definition at line 79 of file linux-aarch32-low.c.

References memset(), and supply_register().

◆ arm_store_vfpregset()

static void arm_store_vfpregset ( struct regcache regcache,
const void *  buf 
)
static

Definition at line 138 of file linux-aarch32-low.c.

References arm_store_vfpregset_num().

◆ arm_store_vfpregset_num()

void arm_store_vfpregset_num ( struct regcache regcache,
const void *  buf,
int  num 
)

◆ arm_sw_breakpoint_from_kind()

const gdb_byte* arm_sw_breakpoint_from_kind ( int  kind,
int *  size 
)

◆ initialize_low_arch_aarch32()

void initialize_low_arch_aarch32 ( void  )

Definition at line 300 of file linux-aarch32-low.c.

References aarch32_regsets_info, and init_registers_arm_with_neon().

Referenced by initialize_low_arch().

Variable Documentation

◆ aarch32_regsets

struct regset_info aarch32_regsets[]
static
Initial value:
= {
{ PTRACE_GETREGSET, PTRACE_SETREGSET, NT_PRSTATUS, 18 * 4,
GENERAL_REGS,
EXTENDED_REGS,
NULL_REGSET
}
void arm_store_gregset(struct regcache *regcache, const void *buf)
static void arm_fill_vfpregset(struct regcache *regcache, void *buf)
#define NT_ARM_VFP
#define PTRACE_SETREGSET
Definition: linux-ptrace.h:51
void arm_fill_gregset(struct regcache *regcache, void *buf)
#define PTRACE_GETREGSET
Definition: linux-ptrace.h:47
static void arm_store_vfpregset(struct regcache *regcache, const void *buf)

Definition at line 145 of file linux-aarch32-low.c.

◆ aarch32_regsets_info

struct regsets_info aarch32_regsets_info
static
Initial value:
=
{
0,
NULL,
}
static struct regset_info aarch32_regsets[]

Definition at line 155 of file linux-aarch32-low.c.

Referenced by initialize_low_arch_aarch32().

◆ arm_breakpoint

const unsigned long arm_breakpoint = arm_abi_breakpoint
static

Definition at line 43 of file linux-aarch32-low.c.

Referenced by arm_sw_breakpoint_from_kind().

◆ regs_info_aarch32

struct regs_info regs_info_aarch32
Initial value:
=
{
NULL,
NULL,
}
static struct regsets_info aarch32_regsets_info

Definition at line 162 of file linux-aarch32-low.c.

Referenced by aarch64_regs_info(), and arm_regs_info().

◆ thumb2_breakpoint

const unsigned short thumb2_breakpoint[] = { 0xf7f0, 0xa000 }
static

Definition at line 49 of file linux-aarch32-low.c.

Referenced by arm_breakpoint_at(), and arm_sw_breakpoint_from_kind().

◆ thumb_breakpoint

const unsigned short thumb_breakpoint = 0xde01
static

Definition at line 47 of file linux-aarch32-low.c.

Referenced by arm_breakpoint_at(), and arm_sw_breakpoint_from_kind().