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_byte * | arm_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 | ) |

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

References arm_abi_breakpoint, arm_eabi_breakpoint, arm_is_thumb_mode(), target_ops::read_memory, the_target, thumb2_breakpoint, and thumb_breakpoint.

Referenced by aarch64_breakpoint_at().

## ◆ arm_breakpoint_kind_from_current_state()

int arm_breakpoint_kind_from_current_state | ( | CORE_ADDR * | pcptr | ) |

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

References arm_breakpoint_kind_from_pc(), and arm_is_thumb_mode().

Referenced by aarch64_breakpoint_kind_from_current_state().

## ◆ arm_breakpoint_kind_from_pc()

int arm_breakpoint_kind_from_pc | ( | CORE_ADDR * | pcptr | ) |

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

References target_read_memory().

Referenced by aarch64_breakpoint_kind_from_pc(), and arm_breakpoint_kind_from_current_state().

## ◆ 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
| ) |  |

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

References collect_register(), collect_register_by_name(), find_regno(), gdb_assert, and regcache::tdesc.

Referenced by arm_fill_vfpregset().

## ◆ arm_is_thumb_mode()

int arm_is_thumb_mode | ( | void |  | ) |

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

References collect_register_by_name(), current_thread, and get_thread_regcache().

Referenced by arm_breakpoint_at(), arm_breakpoint_kind_from_current_state(), arm_get_syscall_trapinfo(), get_next_pcs_is_thumb(), and get_next_pcs_syscall_next_pc().

## ◆ 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
| ) |  |

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

References find_regno(), gdb_assert, supply_register(), supply_register_by_name(), and regcache::tdesc.

Referenced by arm_store_vfpregset().

## ◆ arm_sw_breakpoint_from_kind()

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

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

References arm_breakpoint, arm_breakpoint_len, thumb2_breakpoint, thumb2_breakpoint_len, thumb_breakpoint, and thumb_breakpoint_len.

Referenced by aarch64_sw_breakpoint_from_kind().

## ◆ 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,
arm_fill_gregset, arm_store_gregset },
{ PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_VFP, 32 * 8 + 4,
EXTENDED_REGS,
arm_fill_vfpregset, arm_store_vfpregset },
NULL_REGSET
}
arm_store_gregset
void arm_store_gregset(struct regcache *regcache, const void *buf)
Definition: linux-aarch32-low.c:79
arm_fill_vfpregset
static void arm_fill_vfpregset(struct regcache *regcache, void *buf)
Definition: linux-aarch32-low.c:132
NT_ARM_VFP
#define NT_ARM_VFP
Definition: linux-aarch32-low.c:55
PTRACE_SETREGSET
#define PTRACE_SETREGSET
Definition: linux-ptrace.h:51
arm_fill_gregset
void arm_fill_gregset(struct regcache *regcache, void *buf)
Definition: linux-aarch32-low.c:61
PTRACE_GETREGSET
#define PTRACE_GETREGSET
Definition: linux-ptrace.h:47
arm_store_vfpregset
static void arm_store_vfpregset(struct regcache *regcache, const void *buf)
Definition: linux-aarch32-low.c:138

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

## ◆ aarch32_regsets_info

struct regsets_info aarch32_regsets_info
| static

Initial value:
=
{
aarch32_regsets,
0,
NULL,
}
aarch32_regsets
static struct regset_info aarch32_regsets[]
Definition: linux-aarch32-low.c:145

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,
&aarch32_regsets_info
}
aarch32_regsets_info
static struct regsets_info aarch32_regsets_info
Definition: linux-aarch32-low.c:155

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().