GDBserver

Classes | Macros | Typedefs | Enumerations | Functions | Variables
linux-arm-low.c File Reference
`#include "server.h"`
`#include "linux-low.h"`
`#include "arch/arm.h"`
`#include "arch/arm-linux.h"`
`#include "arch/arm-get-next-pcs.h"`
`#include "linux-aarch32-low.h"`
`#include <sys/uio.h>`
`#include <elf.h>`
`#include "nat/gdb_ptrace.h"`
`#include <signal.h>`
`#include <sys/syscall.h>`

Go to the source code of this file.

## Classes
struct | arm_linux_hw_breakpoint
struct | arch_process_info
struct | arch_lwp_info

## Macros
#define | PTRACE_GET_THREAD_AREA 22
#define | PTRACE_GETWMMXREGS 18
#define | PTRACE_SETWMMXREGS 19
#define | PTRACE_GETVFPREGS 27
#define | PTRACE_SETVFPREGS 28
#define | PTRACE_GETHBPREGS 29
#define | PTRACE_SETHBPREGS 30
#define | MAX_BPTS 32
#define | MAX_WPTS 32
#define | HWCAP_VFP 64
#define | HWCAP_IWMMXT 512
#define | HWCAP_NEON 4096
#define | HWCAP_VFPv3 8192
#define | HWCAP_VFPv3D16 16384
#define | arm_num_regs 26

## Typedefs
typedef unsigned int | arm_hwbp_control_t

## Enumerations
enum | arm_hwbp_type { arm_hwbp_break = 0, arm_hwbp_load = 1, arm_hwbp_store = 2, arm_hwbp_access = 3 }

## Functions
void | init_registers_arm (void)
void | init_registers_arm_with_iwmmxt (void)
void | init_registers_arm_with_vfpv2 (void)
void | init_registers_arm_with_vfpv3 (void)
static ULONGEST | get_next_pcs_read_memory_unsigned_integer (CORE_ADDR memaddr, int len, int byte_order)
static CORE_ADDR | get_next_pcs_addr_bits_remove (struct arm_get_next_pcs *self, CORE_ADDR val)
static CORE_ADDR | get_next_pcs_syscall_next_pc (struct arm_get_next_pcs *self)
static int | get_next_pcs_is_thumb (struct arm_get_next_pcs *self)
static int | arm_cannot_store_register (int regno)
static int | arm_cannot_fetch_register (int regno)
static void | arm_fill_wmmxregset (struct regcache *regcache, void *buf)
static void | arm_store_wmmxregset (struct regcache *regcache, const void *buf)
static void | arm_fill_vfpregset (struct regcache *regcache, void *buf)
static void | arm_store_vfpregset (struct regcache *regcache, const void *buf)
ps_err_e | ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
static void | arm_linux_init_hwbp_cap (int pid)
static int | arm_linux_get_hw_breakpoint_count (void)
static int | arm_linux_get_hw_watchpoint_count (void)
static int | arm_linux_get_hw_watchpoint_max_length (void)
static arm_hwbp_control_t | arm_hwbp_control_initialize (unsigned byte_address_select, arm_hwbp_type hwbp_type, int enable)
static int | arm_hwbp_control_is_enabled (arm_hwbp_control_t control)
static int | arm_hwbp_control_is_initialized (arm_hwbp_control_t control)
static arm_hwbp_control_t | arm_hwbp_control_disable (arm_hwbp_control_t control)
static int | arm_linux_hw_breakpoint_equal (const struct arm_linux_hw_breakpoint *p1, const struct arm_linux_hw_breakpoint *p2)
static arm_hwbp_type | raw_bkpt_type_to_arm_hwbp_type (enum raw_bkpt_type raw_type)
static int | arm_linux_hw_point_initialize (enum raw_bkpt_type raw_type, CORE_ADDR addr, int len, struct arm_linux_hw_breakpoint *p)
static void | update_registers_callback (thread_info *thread, int watch, int i)
static int | arm_supports_z_point_type (char z_type)
static int | arm_insert_point (enum raw_bkpt_type type, CORE_ADDR addr, int len, struct raw_breakpoint *bp)
static int | arm_remove_point (enum raw_bkpt_type type, CORE_ADDR addr, int len, struct raw_breakpoint *bp)
static int | arm_stopped_by_watchpoint (void)
static CORE_ADDR | arm_stopped_data_address (void)
static struct arch_process_info * | arm_new_process (void)
static void | arm_delete_process (struct arch_process_info *info)
static void | arm_new_thread (struct lwp_info *lwp)
static void | arm_delete_thread (struct arch_lwp_info *arch_lwp)
static void | arm_new_fork (struct process_info *parent, struct process_info *child)
static void | arm_prepare_to_resume (struct lwp_info *lwp)
static CORE_ADDR | arm_sigreturn_next_pc (struct regcache *regcache, int svc_number, int *is_thumb)
static int | arm_get_hwcap (unsigned long *valp)
static const struct target_desc * | arm_read_description (void)
static void | arm_arch_setup (void)
static std::vector< CORE_ADDR > | arm_gdbserver_get_next_pcs (struct regcache *regcache)
static int | arm_supports_hardware_single_step (void)
static void | arm_get_syscall_trapinfo (struct regcache *regcache, int *sysno)
static const struct regs_info * | arm_regs_info (void)
void | initialize_low_arch (void)

## Variables
const struct target_desc * | tdesc_arm
const struct target_desc * | tdesc_arm_with_iwmmxt
const struct target_desc * | tdesc_arm_with_vfpv2
const struct target_desc * | tdesc_arm_with_vfpv3
struct {
unsigned char arch
unsigned char max_wp_length
unsigned char wp_count
unsigned char bp_count
} | arm_linux_hwbp_cap
static int | arm_regmap []
static struct arm_get_next_pcs_ops | get_next_pcs_ops
static struct regset_info | arm_regsets []
static struct regsets_info | arm_regsets_info
static struct usrregs_info | arm_usrregs_info
static struct regs_info | regs_info_arm
struct linux_target_ops | the_low_target

## Macro Definition Documentation

## ◆ arm_num_regs

#define arm_num_regs 26

Definition at line 133 of file linux-arm-low.c.

Referenced by arm_cannot_fetch_register(), arm_cannot_store_register(), arm_fill_wmmxregset(), and arm_store_wmmxregset().

## ◆ HWCAP_IWMMXT

#define HWCAP_IWMMXT 512

Definition at line 124 of file linux-arm-low.c.

Referenced by arm_read_description().

## ◆ HWCAP_NEON

#define HWCAP_NEON 4096

Definition at line 125 of file linux-arm-low.c.

Referenced by arm_read_description().

## ◆ HWCAP_VFP

#define HWCAP_VFP 64

Definition at line 123 of file linux-arm-low.c.

Referenced by arm_read_description().

## ◆ HWCAP_VFPv3

#define HWCAP_VFPv3 8192

Definition at line 126 of file linux-arm-low.c.

Referenced by arm_read_description().

## ◆ HWCAP_VFPv3D16

#define HWCAP_VFPv3D16 16384

Definition at line 127 of file linux-arm-low.c.

Referenced by arm_read_description().

## ◆ MAX_BPTS

#define MAX_BPTS 32

Definition at line 100 of file linux-arm-low.c.

Referenced by arm_linux_init_hwbp_cap(), arm_new_fork(), and arm_new_thread().

## ◆ MAX_WPTS

#define MAX_WPTS 32

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

Referenced by arm_linux_init_hwbp_cap(), arm_new_fork(), and arm_new_thread().

## ◆ PTRACE_GET_THREAD_AREA

#define PTRACE_GET_THREAD_AREA 22

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

Referenced by ps_get_thread_area().

## ◆ PTRACE_GETHBPREGS

#define PTRACE_GETHBPREGS 29

Definition at line 64 of file linux-arm-low.c.

Referenced by arm_linux_init_hwbp_cap().

## ◆ PTRACE_GETVFPREGS

#define PTRACE_GETVFPREGS 27

Definition at line 59 of file linux-arm-low.c.

Referenced by arm_read_description().

## ◆ PTRACE_GETWMMXREGS

#define PTRACE_GETWMMXREGS 18

Definition at line 54 of file linux-arm-low.c.

## ◆ PTRACE_SETHBPREGS

#define PTRACE_SETHBPREGS 30

Definition at line 65 of file linux-arm-low.c.

Referenced by arm_prepare_to_resume().

## ◆ PTRACE_SETVFPREGS

#define PTRACE_SETVFPREGS 28

Definition at line 60 of file linux-arm-low.c.

## ◆ PTRACE_SETWMMXREGS

#define PTRACE_SETWMMXREGS 19

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

## Typedef Documentation

## ◆ arm_hwbp_control_t

typedef unsigned int arm_hwbp_control_t

Definition at line 87 of file linux-arm-low.c.

## Enumeration Type Documentation

## ◆ arm_hwbp_type

enum arm_hwbp_type

Enumerator
arm_hwbp_break |
arm_hwbp_load |
arm_hwbp_store |
arm_hwbp_access |

Definition at line 78 of file linux-arm-low.c.

## Function Documentation

## ◆ arm_arch_setup()

static void arm_arch_setup | ( | void |  | ) |
| static

Definition at line 920 of file linux-arm-low.c.

References arm_read_description(), current_process(), current_thread, have_ptrace_getregset, lwpid_of(), ptrace(), PTRACE_GETREGSET, and process_info::tdesc.

## ◆ arm_cannot_fetch_register()

static int arm_cannot_fetch_register | ( | int | regno | ) |
| static

Definition at line 170 of file linux-arm-low.c.

References arm_num_regs.

## ◆ arm_cannot_store_register()

static int arm_cannot_store_register | ( | int | regno | ) |
| static

Definition at line 164 of file linux-arm-low.c.

References arm_num_regs.

## ◆ arm_delete_process()

static void arm_delete_process | ( | struct arch_process_info * | info | ) |
| static

Definition at line 642 of file linux-arm-low.c.

References xfree().

## ◆ arm_delete_thread()

static void arm_delete_thread | ( | struct arch_lwp_info * | arch_lwp | ) |
| static

Definition at line 665 of file linux-arm-low.c.

References xfree().

## ◆ arm_fill_vfpregset()

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

Definition at line 210 of file linux-arm-low.c.

References arm_fill_vfpregset_num(), regcache::tdesc, tdesc_arm_with_neon, tdesc_arm_with_vfpv2, and tdesc_arm_with_vfpv3.

## ◆ arm_fill_wmmxregset()

static void arm_fill_wmmxregset | ( | struct regcache * | regcache,
|  | void * | buf
| ) |  |
| static

Definition at line 176 of file linux-arm-low.c.

References arm_num_regs, collect_register(), regcache::tdesc, and tdesc_arm_with_iwmmxt.

## ◆ arm_gdbserver_get_next_pcs()

static std::vector<CORE_ADDR> arm_gdbserver_get_next_pcs | ( | struct regcache * | regcache | ) |
| static

Definition at line 941 of file linux-arm-low.c.

References get_next_pcs_ops.

## ◆ arm_get_hwcap()

static int arm_get_hwcap | ( | unsigned long * | valp | ) |
| static

Definition at line 851 of file linux-arm-low.c.

References alloca(), offset, target_ops::read_auxv, and the_target.

Referenced by arm_read_description().

## ◆ arm_get_syscall_trapinfo()

static void arm_get_syscall_trapinfo | ( | struct regcache * | regcache,
|  | int * | sysno
| ) |  |
| static

Definition at line 967 of file linux-arm-low.c.

References arm_is_thumb_mode(), collect_register_by_name(), target_ops::read_memory, the_target, and UNKNOWN_SYSCALL.

## ◆ arm_hwbp_control_disable()

static arm_hwbp_control_t arm_hwbp_control_disable | ( | arm_hwbp_control_t | control | ) |
| static

Definition at line 366 of file linux-arm-low.c.

Referenced by arm_remove_point().

## ◆ arm_hwbp_control_initialize()

static arm_hwbp_control_t arm_hwbp_control_initialize | ( | unsigned | byte_address_select,
|  | arm_hwbp_type | hwbp_type,
|  | int | enable
| ) |  |
| static

Definition at line 339 of file linux-arm-low.c.

References arm_hwbp_break, and gdb_assert.

Referenced by arm_linux_hw_point_initialize().

## ◆ arm_hwbp_control_is_enabled()

static int arm_hwbp_control_is_enabled | ( | arm_hwbp_control_t | control | ) |
| static

Definition at line 352 of file linux-arm-low.c.

Referenced by arm_insert_point(), and arm_prepare_to_resume().

## ◆ arm_hwbp_control_is_initialized()

static int arm_hwbp_control_is_initialized | ( | arm_hwbp_control_t | control | ) |
| static

Definition at line 359 of file linux-arm-low.c.

Referenced by arm_prepare_to_resume().

## ◆ arm_insert_point()

static int arm_insert_point | ( | enum raw_bkpt_type | type,
|  | CORE_ADDR | addr,
|  | int | len,
|  | struct raw_breakpoint * | bp
| ) |  |
| static

Definition at line 500 of file linux-arm-low.c.

References process_info_private::arch_private, arm_hwbp_control_is_enabled(), arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arm_linux_hw_point_initialize(), arch_process_info::bpts, arm_linux_hw_breakpoint::control, current_process(), current_thread, for_each_thread(), thread_info::id, ptid_t::pid(), process_info::priv, update_registers_callback(), and arch_process_info::wpts.

## ◆ arm_linux_get_hw_breakpoint_count()

static int arm_linux_get_hw_breakpoint_count | ( | void |  | ) |
| static

Definition at line 315 of file linux-arm-low.c.

References arm_linux_hwbp_cap.

Referenced by arm_insert_point(), arm_prepare_to_resume(), and arm_remove_point().

## ◆ arm_linux_get_hw_watchpoint_count()

static int arm_linux_get_hw_watchpoint_count | ( | void |  | ) |
| static

Definition at line 322 of file linux-arm-low.c.

References arm_linux_hwbp_cap.

Referenced by arm_insert_point(), arm_prepare_to_resume(), arm_remove_point(), and arm_stopped_by_watchpoint().

## ◆ arm_linux_get_hw_watchpoint_max_length()

static int arm_linux_get_hw_watchpoint_max_length | ( | void |  | ) |
| static

Definition at line 329 of file linux-arm-low.c.

References arm_linux_hwbp_cap.

Referenced by arm_linux_hw_point_initialize().

## ◆ arm_linux_hw_breakpoint_equal()

static int arm_linux_hw_breakpoint_equal | ( | const struct arm_linux_hw_breakpoint * | p1,
|  | const struct arm_linux_hw_breakpoint * | p2
| ) |  |
| static

Definition at line 373 of file linux-arm-low.c.

References arm_linux_hw_breakpoint::address, and arm_linux_hw_breakpoint::control.

Referenced by arm_remove_point().

## ◆ arm_linux_hw_point_initialize()

static int arm_linux_hw_point_initialize | ( | enum raw_bkpt_type | raw_type,
|  | CORE_ADDR | addr,
|  | int | len,
|  | struct arm_linux_hw_breakpoint * | p
| ) |  |
| static

Definition at line 405 of file linux-arm-low.c.

References arm_linux_hw_breakpoint::address, arm_hwbp_break, arm_hwbp_control_initialize(), arm_linux_get_hw_watchpoint_max_length(), arm_linux_hw_breakpoint::control, max_wp_length, and raw_bkpt_type_to_arm_hwbp_type().

Referenced by arm_insert_point(), and arm_remove_point().

## ◆ arm_linux_init_hwbp_cap()

static void arm_linux_init_hwbp_cap | ( | int | pid | ) |
| static

Definition at line 292 of file linux-arm-low.c.

References arm_linux_hwbp_cap, internal_error(), MAX_BPTS, MAX_WPTS, ptrace(), and PTRACE_GETHBPREGS.

Referenced by arm_read_description().

## ◆ arm_new_fork()

static void arm_new_fork | ( | struct process_info * | parent,
|  | struct process_info * | child
| ) |  |
| static

Definition at line 671 of file linux-arm-low.c.

References process_info_private::arch_private, lwp_info::arch_private, arch_lwp_info::bpts_changed, find_lwp_pid(), gdb_assert, MAX_BPTS, MAX_WPTS, process_info::pid, process_info::priv, and arch_lwp_info::wpts_changed.

## ◆ arm_new_process()

static struct arch_process_info* arm_new_process | ( | void |  | ) |
| static

Definition at line 633 of file linux-arm-low.c.

References XCNEW.

## ◆ arm_new_thread()

static void arm_new_thread | ( | struct lwp_info * | lwp | ) |
| static

Definition at line 649 of file linux-arm-low.c.

References lwp_info::arch_private, arch_lwp_info::bpts_changed, MAX_BPTS, MAX_WPTS, arch_lwp_info::wpts_changed, and XCNEW.

## ◆ arm_prepare_to_resume()

static void arm_prepare_to_resume | ( | struct lwp_info * | lwp | ) |
| static

Definition at line 717 of file linux-arm-low.c.

References arm_linux_hw_breakpoint::address, process_info_private::arch_private, lwp_info::arch_private, arm_hwbp_control_is_enabled(), arm_hwbp_control_is_initialized(), arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arch_process_info::bpts, arm_linux_hw_breakpoint::control, errno, find_process_pid(), get_lwp_thread, lwpid_of(), perror_with_name(), pid_of(), process_info::priv, ptrace(), PTRACE_SETHBPREGS, PTRACE_TYPE_ARG3, and arch_process_info::wpts.

## ◆ arm_read_description()

static const struct target_desc* arm_read_description | ( | void |  | ) |
| static

Definition at line 873 of file linux-arm-low.c.

References arm_get_hwcap(), arm_linux_init_hwbp_cap(), current_thread, errno, free(), HWCAP_IWMMXT, HWCAP_NEON, HWCAP_VFP, HWCAP_VFPv3, HWCAP_VFPv3D16, lwpid_of(), ptrace(), PTRACE_GETVFPREGS, tdesc_arm, tdesc_arm_with_iwmmxt, tdesc_arm_with_neon, tdesc_arm_with_vfpv2, tdesc_arm_with_vfpv3, and xmalloc().

Referenced by arm_arch_setup().

## ◆ arm_regs_info()

static const struct regs_info* arm_regs_info | ( | void |  | ) |
| static

Definition at line 1034 of file linux-arm-low.c.

References current_process(), have_ptrace_getregset, regs_info_aarch32, regs_info_arm, process_info::tdesc, tdesc_arm_with_neon, and tdesc_arm_with_vfpv3.

## ◆ arm_remove_point()

static int arm_remove_point | ( | enum raw_bkpt_type | type,
|  | CORE_ADDR | addr,
|  | int | len,
|  | struct raw_breakpoint * | bp
| ) |  |
| static

Definition at line 545 of file linux-arm-low.c.

References process_info_private::arch_private, arm_hwbp_control_disable(), arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arm_linux_hw_breakpoint_equal(), arm_linux_hw_point_initialize(), arch_process_info::bpts, arm_linux_hw_breakpoint::control, current_process(), current_thread, for_each_thread(), thread_info::id, ptid_t::pid(), process_info::priv, update_registers_callback(), and arch_process_info::wpts.

## ◆ arm_sigreturn_next_pc()

static CORE_ADDR arm_sigreturn_next_pc | ( | struct regcache * | regcache,
|  | int | svc_number,
|  | int * | is_thumb
| ) |  |
| static

Definition at line 772 of file linux-arm-low.c.

References collect_register_by_name(), gdb_assert, target_ops::read_memory, sp, and the_target.

Referenced by get_next_pcs_syscall_next_pc().

## ◆ arm_stopped_by_watchpoint()

static int arm_stopped_by_watchpoint | ( | void |  | ) |
| static

Definition at line 590 of file linux-arm-low.c.

References lwp_info::arch_private, arm_linux_get_hw_watchpoint_count(), current_thread, errno, get_thread_lwp, lwpid_of(), ptrace(), PTRACE_GETSIGINFO, and arch_lwp_info::stopped_data_address.

## ◆ arm_stopped_data_address()

static CORE_ADDR arm_stopped_data_address | ( | void |  | ) |
| static

Definition at line 625 of file linux-arm-low.c.

References lwp_info::arch_private, current_thread, get_thread_lwp, and arch_lwp_info::stopped_data_address.

## ◆ arm_store_vfpregset()

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

Definition at line 233 of file linux-arm-low.c.

References arm_store_vfpregset_num(), regcache::tdesc, tdesc_arm_with_neon, tdesc_arm_with_vfpv2, and tdesc_arm_with_vfpv3.

## ◆ arm_store_wmmxregset()

static void arm_store_wmmxregset | ( | struct regcache * | regcache,
|  | const void * | buf
| ) |  |
| static

Definition at line 193 of file linux-arm-low.c.

References arm_num_regs, supply_register(), regcache::tdesc, and tdesc_arm_with_iwmmxt.

## ◆ arm_supports_hardware_single_step()

static int arm_supports_hardware_single_step | ( | void |  | ) |
| static

Definition at line 959 of file linux-arm-low.c.

## ◆ arm_supports_z_point_type()

static int arm_supports_z_point_type | ( | char | z_type | ) |
| static

Definition at line 482 of file linux-arm-low.c.

References Z_PACKET_ACCESS_WP, Z_PACKET_HW_BP, Z_PACKET_READ_WP, Z_PACKET_SW_BP, and Z_PACKET_WRITE_WP.

## ◆ get_next_pcs_addr_bits_remove()

static CORE_ADDR get_next_pcs_addr_bits_remove | ( | struct arm_get_next_pcs * | self,
|  | CORE_ADDR | val
| ) |  |
| static

Definition at line 227 of file linux-arm-low.c.

## ◆ get_next_pcs_is_thumb()

static int get_next_pcs_is_thumb | ( | struct arm_get_next_pcs * | self | ) |
| static

Definition at line 250 of file linux-arm-low.c.

References arm_is_thumb_mode().

## ◆ get_next_pcs_read_memory_unsigned_integer()

static ULONGEST get_next_pcs_read_memory_unsigned_integer | ( | CORE_ADDR | memaddr,
|  | int | len,
|  | int | byte_order
| ) |  |
| static

Definition at line 259 of file linux-arm-low.c.

References target_read_memory().

## ◆ get_next_pcs_syscall_next_pc()

static CORE_ADDR get_next_pcs_syscall_next_pc | ( | struct arm_get_next_pcs * | self | ) |
| static

Definition at line 802 of file linux-arm-low.c.

References arm_is_thumb_mode(), arm_sigreturn_next_pc(), collect_register(), regcache_read_pc(), and target_read_memory().

## ◆ init_registers_arm()

void init_registers_arm | ( | void |  | ) |

Referenced by initialize_low_arch().

## ◆ init_registers_arm_with_iwmmxt()

void init_registers_arm_with_iwmmxt | ( | void |  | ) |

Referenced by initialize_low_arch().

## ◆ init_registers_arm_with_vfpv2()

void init_registers_arm_with_vfpv2 | ( | void |  | ) |

Referenced by initialize_low_arch().

## ◆ init_registers_arm_with_vfpv3()

void init_registers_arm_with_vfpv3 | ( | void |  | ) |

Referenced by initialize_low_arch().

## ◆ initialize_low_arch()

void initialize_low_arch | ( | void |  | ) |

Definition at line 1085 of file linux-arm-low.c.

References arm_regsets_info, init_registers_arm(), init_registers_arm_with_iwmmxt(), init_registers_arm_with_vfpv2(), init_registers_arm_with_vfpv3(), and initialize_low_arch_aarch32().

## ◆ ps_get_thread_area()

ps_err_e ps_get_thread_area | ( | struct ps_prochandle * | ph,
|  | lwpid_t | lwpid,
|  | int | idx,
|  | void ** | base
| ) |  |

Definition at line 274 of file linux-arm-low.c.

References PS_ERR, PS_OK, ptrace(), and PTRACE_GET_THREAD_AREA.

## ◆ raw_bkpt_type_to_arm_hwbp_type()

static arm_hwbp_type raw_bkpt_type_to_arm_hwbp_type | ( | enum raw_bkpt_type | raw_type | ) |
| static

Definition at line 382 of file linux-arm-low.c.

References arm_hwbp_access, arm_hwbp_break, arm_hwbp_load, arm_hwbp_store, gdb_assert_not_reached, raw_bkpt_type_access_wp, raw_bkpt_type_hw, raw_bkpt_type_read_wp, and raw_bkpt_type_write_wp.

Referenced by arm_linux_hw_point_initialize().

## ◆ update_registers_callback()

static void update_registers_callback | ( | thread_info * | thread,
|  | int | watch,
|  | int | i
| ) |  |
| static

Definition at line 464 of file linux-arm-low.c.

References lwp_info::arch_private, arch_lwp_info::bpts_changed, get_thread_lwp, linux_stop_lwp(), lwp_info::stopped, lwp_info::thread, and arch_lwp_info::wpts_changed.

Referenced by arm_insert_point(), and arm_remove_point().

## Variable Documentation

## ◆ arch

unsigned char arch

Definition at line 71 of file linux-arm-low.c.

## ◆ arm_linux_hwbp_cap

struct { ... } arm_linux_hwbp_cap

Referenced by arm_linux_get_hw_breakpoint_count(), arm_linux_get_hw_watchpoint_count(), arm_linux_get_hw_watchpoint_max_length(), and arm_linux_init_hwbp_cap().

## ◆ arm_regmap

int arm_regmap[]
| static

Initial value:
= {
0, 4, 8, 12, 16, 20, 24, 28,
32, 36, 40, 44, 48, 52, 56, 60,
-1, -1, -1, -1, -1, -1, -1, -1, -1,
64
}

Definition at line 135 of file linux-arm-low.c.

## ◆ arm_regsets

struct regset_info arm_regsets[]
| static

Initial value:
= {
{ PTRACE_GETREGS, PTRACE_SETREGS, 0, 18 * 4,
GENERAL_REGS,
arm_fill_gregset, arm_store_gregset },
{ PTRACE_GETWMMXREGS, PTRACE_SETWMMXREGS, 0, 16 * 8 + 6 * 4,
EXTENDED_REGS,
arm_fill_wmmxregset, arm_store_wmmxregset },
{ PTRACE_GETVFPREGS, PTRACE_SETVFPREGS, 0, 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_wmmxregset
static void arm_fill_wmmxregset(struct regcache *regcache, void *buf)
Definition: linux-arm-low.c:176
PTRACE_GETVFPREGS
#define PTRACE_GETVFPREGS
Definition: linux-arm-low.c:59
PTRACE_GETWMMXREGS
#define PTRACE_GETWMMXREGS
Definition: linux-arm-low.c:54
PTRACE_SETWMMXREGS
#define PTRACE_SETWMMXREGS
Definition: linux-arm-low.c:55
arm_fill_gregset
void arm_fill_gregset(struct regcache *regcache, void *buf)
Definition: linux-aarch32-low.c:61
arm_fill_vfpregset
static void arm_fill_vfpregset(struct regcache *regcache, void *buf)
Definition: linux-arm-low.c:210
arm_store_wmmxregset
static void arm_store_wmmxregset(struct regcache *regcache, const void *buf)
Definition: linux-arm-low.c:193
PTRACE_SETVFPREGS
#define PTRACE_SETVFPREGS
Definition: linux-arm-low.c:60
arm_store_vfpregset
static void arm_store_vfpregset(struct regcache *regcache, const void *buf)
Definition: linux-arm-low.c:233

Definition at line 1000 of file linux-arm-low.c.

## ◆ arm_regsets_info

struct regsets_info arm_regsets_info
| static

Initial value:
=
{
arm_regsets,
0,
NULL,
}
arm_regsets
static struct regset_info arm_regsets[]
Definition: linux-arm-low.c:1000

Definition at line 1013 of file linux-arm-low.c.

Referenced by initialize_low_arch().

## ◆ arm_usrregs_info

struct usrregs_info arm_usrregs_info
| static

Initial value:
=
{
arm_num_regs,
arm_regmap,
}
arm_num_regs
#define arm_num_regs
Definition: linux-arm-low.c:133
arm_regmap
static int arm_regmap[]
Definition: linux-arm-low.c:135

Definition at line 1020 of file linux-arm-low.c.

## ◆ bp_count

unsigned char bp_count

Definition at line 74 of file linux-arm-low.c.

## ◆ get_next_pcs_ops

struct arm_get_next_pcs_ops get_next_pcs_ops
| static

Initial value:
= {
get_next_pcs_read_memory_unsigned_integer,
get_next_pcs_syscall_next_pc,
get_next_pcs_addr_bits_remove,
get_next_pcs_is_thumb,
arm_linux_get_next_pcs_fixup,
}
get_next_pcs_syscall_next_pc
static CORE_ADDR get_next_pcs_syscall_next_pc(struct arm_get_next_pcs *self)
Definition: linux-arm-low.c:802
get_next_pcs_addr_bits_remove
static CORE_ADDR get_next_pcs_addr_bits_remove(struct arm_get_next_pcs *self, CORE_ADDR val)
Definition: linux-arm-low.c:227
get_next_pcs_read_memory_unsigned_integer
static ULONGEST get_next_pcs_read_memory_unsigned_integer(CORE_ADDR memaddr, int len, int byte_order)
Definition: linux-arm-low.c:259
get_next_pcs_is_thumb
static int get_next_pcs_is_thumb(struct arm_get_next_pcs *self)
Definition: linux-arm-low.c:250

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

Referenced by arm_gdbserver_get_next_pcs().

## ◆ max_wp_length

unsigned char max_wp_length

Definition at line 72 of file linux-arm-low.c.

Referenced by arm_linux_hw_point_initialize().

## ◆ regs_info_arm

struct regs_info regs_info_arm
| static

Initial value:
=
{
NULL,
&arm_usrregs_info,
&arm_regsets_info
}
arm_usrregs_info
static struct usrregs_info arm_usrregs_info
Definition: linux-arm-low.c:1020
arm_regsets_info
static struct regsets_info arm_regsets_info
Definition: linux-arm-low.c:1013

Definition at line 1026 of file linux-arm-low.c.

Referenced by arm_regs_info().

## ◆ tdesc_arm

const struct target_desc* tdesc_arm

Referenced by arm_read_description().

## ◆ tdesc_arm_with_iwmmxt

const struct target_desc* tdesc_arm_with_iwmmxt

Referenced by arm_fill_wmmxregset(), arm_read_description(), and arm_store_wmmxregset().

## ◆ tdesc_arm_with_vfpv2

const struct target_desc* tdesc_arm_with_vfpv2

Referenced by arm_fill_vfpregset(), arm_read_description(), and arm_store_vfpregset().

## ◆ tdesc_arm_with_vfpv3

const struct target_desc* tdesc_arm_with_vfpv3

Referenced by arm_fill_vfpregset(), arm_read_description(), arm_regs_info(), and arm_store_vfpregset().

## ◆ the_low_target

struct linux_target_ops the_low_target

Definition at line 1045 of file linux-arm-low.c.

## ◆ wp_count

unsigned char wp_count

Definition at line 73 of file linux-arm-low.c.