GDBserver
|
#include <asm/ptrace.h>
#include "gdbsupport/break-common.h"
Go to the source code of this file.
Classes | |
struct | mips32_watch_regs |
struct | mips64_watch_regs |
struct | pt_watch_regs |
struct | mips_watchpoint |
Macros | |
#define | MAX_DEBUG_REGISTER 8 |
#define | PTRACE_GET_WATCH_REGS 0xd0 |
#define | PTRACE_SET_WATCH_REGS 0xd1 |
#define | W_BIT 0 |
#define | R_BIT 1 |
#define | I_BIT 2 |
#define | W_MASK (1 << W_BIT) |
#define | R_MASK (1 << R_BIT) |
#define | I_MASK (1 << I_BIT) |
#define | IRW_MASK (I_MASK | R_MASK | W_MASK) |
Enumerations | |
enum | pt_watch_style { pt_watch_style_mips32 , pt_watch_style_mips64 } |
Functions | |
struct mips32_watch_regs | __attribute__ ((aligned(8))) |
uint32_t | mips_linux_watch_get_num_valid (struct pt_watch_regs *regs) |
uint32_t | mips_linux_watch_get_irw_mask (struct pt_watch_regs *regs, int n) |
CORE_ADDR | mips_linux_watch_get_watchlo (struct pt_watch_regs *regs, int n) |
void | mips_linux_watch_set_watchlo (struct pt_watch_regs *regs, int n, CORE_ADDR value) |
uint32_t | mips_linux_watch_get_watchhi (struct pt_watch_regs *regs, int n) |
void | mips_linux_watch_set_watchhi (struct pt_watch_regs *regs, int n, uint16_t value) |
int | mips_linux_watch_try_one_watch (struct pt_watch_regs *regs, CORE_ADDR addr, int len, uint32_t irw) |
void | mips_linux_watch_populate_regs (struct mips_watchpoint *current_watches, struct pt_watch_regs *regs) |
uint32_t | mips_linux_watch_type_to_irw (enum target_hw_bp_type type) |
int | mips_linux_read_watch_registers (long lwpid, struct pt_watch_regs *watch_readback, int *watch_readback_valid, int force) |
Variables | |
uint32_t | watchlo [MAX_DEBUG_REGISTER] |
uint16_t | watchhi [MAX_DEBUG_REGISTER] |
uint16_t | watch_masks [MAX_DEBUG_REGISTER] |
uint32_t | num_valid |
struct pt_watch_regs | __attribute__ |
#define I_BIT 2 |
Definition at line 81 of file mips-linux-watch.h.
#define I_MASK (1 << I_BIT) |
Definition at line 85 of file mips-linux-watch.h.
Definition at line 87 of file mips-linux-watch.h.
Referenced by mips_linux_watch_get_irw_mask(), and mips_linux_watch_try_one_watch().
#define MAX_DEBUG_REGISTER 8 |
Definition at line 24 of file mips-linux-watch.h.
#define PTRACE_GET_WATCH_REGS 0xd0 |
Definition at line 30 of file mips-linux-watch.h.
Referenced by mips_linux_read_watch_registers().
#define PTRACE_SET_WATCH_REGS 0xd1 |
Definition at line 31 of file mips-linux-watch.h.
#define R_BIT 1 |
Definition at line 80 of file mips-linux-watch.h.
#define R_MASK (1 << R_BIT) |
Definition at line 84 of file mips-linux-watch.h.
Referenced by mips_linux_watch_type_to_irw().
#define W_BIT 0 |
Definition at line 79 of file mips-linux-watch.h.
#define W_MASK (1 << W_BIT) |
Definition at line 83 of file mips-linux-watch.h.
Referenced by mips_linux_watch_type_to_irw().
enum pt_watch_style |
Enumerator | |
---|---|
pt_watch_style_mips32 | |
pt_watch_style_mips64 |
Definition at line 33 of file mips-linux-watch.h.
struct mips32_watch_regs __attribute__ | ( | (aligned(8)) | ) |
int mips_linux_read_watch_registers | ( | long | lwpid, |
struct pt_watch_regs * | watch_readback, | ||
int * | watch_readback_valid, | ||
int | force ) |
Definition at line 154 of file mips-linux-watch.c.
References pt_watch_regs::mips32, pt_watch_regs::mips64, mips32_watch_regs::num_valid, mips64_watch_regs::num_valid, pt_watch_style_mips32, pt_watch_style_mips64, ptrace, PTRACE_GET_WATCH_REGS, and pt_watch_regs::style.
uint32_t mips_linux_watch_get_irw_mask | ( | struct pt_watch_regs * | regs, |
int | n ) |
Definition at line 26 of file mips-linux-watch.c.
References IRW_MASK, pt_watch_regs::mips32, pt_watch_regs::mips64, pt_watch_style_mips32, pt_watch_style_mips64, pt_watch_regs::style, mips32_watch_regs::watch_masks, and mips64_watch_regs::watch_masks.
Referenced by mips_linux_watch_try_one_watch().
uint32_t mips_linux_watch_get_num_valid | ( | struct pt_watch_regs * | regs | ) |
Definition at line 59 of file mips-linux-watch.c.
References pt_watch_regs::mips32, pt_watch_regs::mips64, mips32_watch_regs::num_valid, mips64_watch_regs::num_valid, pt_watch_style_mips32, pt_watch_style_mips64, and pt_watch_regs::style.
Referenced by mips_linux_watch_populate_regs(), and mips_linux_watch_try_one_watch().
uint32_t mips_linux_watch_get_watchhi | ( | struct pt_watch_regs * | regs, |
int | n ) |
Definition at line 115 of file mips-linux-watch.c.
References pt_watch_regs::mips32, pt_watch_regs::mips64, pt_watch_style_mips32, pt_watch_style_mips64, pt_watch_regs::style, mips32_watch_regs::watchhi, and mips64_watch_regs::watchhi.
Referenced by mips_linux_watch_try_one_watch().
CORE_ADDR mips_linux_watch_get_watchlo | ( | struct pt_watch_regs * | regs, |
int | n ) |
Definition at line 76 of file mips-linux-watch.c.
References pt_watch_regs::mips32, pt_watch_regs::mips64, pt_watch_style_mips32, pt_watch_style_mips64, pt_watch_regs::style, mips32_watch_regs::watchlo, and mips64_watch_regs::watchlo.
Referenced by mips_linux_watch_try_one_watch().
void mips_linux_watch_populate_regs | ( | struct mips_watchpoint * | current_watches, |
struct pt_watch_regs * | regs ) |
Definition at line 318 of file mips-linux-watch.c.
References mips_watchpoint::len, mips_linux_watch_get_num_valid(), mips_linux_watch_set_watchhi(), mips_linux_watch_set_watchlo(), mips_linux_watch_try_one_watch(), and mips_linux_watch_type_to_irw().
void mips_linux_watch_set_watchhi | ( | struct pt_watch_regs * | regs, |
int | n, | ||
uint16_t | value ) |
Definition at line 132 of file mips-linux-watch.c.
References pt_watch_regs::mips32, pt_watch_regs::mips64, pt_watch_style_mips32, pt_watch_style_mips64, pt_watch_regs::style, mips32_watch_regs::watchhi, and mips64_watch_regs::watchhi.
Referenced by mips_linux_watch_populate_regs(), and mips_linux_watch_try_one_watch().
void mips_linux_watch_set_watchlo | ( | struct pt_watch_regs * | regs, |
int | n, | ||
CORE_ADDR | value ) |
Definition at line 93 of file mips-linux-watch.c.
References pt_watch_regs::mips32, pt_watch_regs::mips64, pt_watch_style_mips32, pt_watch_style_mips64, pt_watch_regs::style, mips32_watch_regs::watchlo, and mips64_watch_regs::watchlo.
Referenced by mips_linux_watch_populate_regs(), and mips_linux_watch_try_one_watch().
int mips_linux_watch_try_one_watch | ( | struct pt_watch_regs * | regs, |
CORE_ADDR | addr, | ||
int | len, | ||
uint32_t | irw ) |
Definition at line 229 of file mips-linux-watch.c.
References fill_mask(), get_reg_mask(), IRW_MASK, mips_linux_watch_get_irw_mask(), mips_linux_watch_get_num_valid(), mips_linux_watch_get_watchhi(), mips_linux_watch_get_watchlo(), mips_linux_watch_set_watchhi(), and mips_linux_watch_set_watchlo().
Referenced by mips_linux_watch_populate_regs().
uint32_t mips_linux_watch_type_to_irw | ( | enum target_hw_bp_type | type | ) |
Definition at line 194 of file mips-linux-watch.c.
References R_MASK, and W_MASK.
Referenced by mips_linux_watch_populate_regs().
struct pt_watch_regs __attribute__ |
uint32_t num_valid |
Definition at line 11 of file mips-linux-watch.h.
uint16_t watch_masks |
Definition at line 9 of file mips-linux-watch.h.
uint16_t watchhi |
Definition at line 2 of file mips-linux-watch.h.
uint64_t watchlo |
Definition at line 0 of file mips-linux-watch.h.