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

Go to the source code of this file.

Macros

#define cris_num_regs   49
 
#define PTRACE_GET_THREAD_AREA   25
 
#define cris_breakpoint_len   2
 

Functions

void init_registers_crisv32 (void)
 
static CORE_ADDR cris_get_pc (struct regcache *regcache)
 
static void cris_set_pc (struct regcache *regcache, CORE_ADDR pc)
 
static int cris_breakpoint_at (CORE_ADDR where)
 
static CORE_ADDR cris_reinsert_addr (void)
 
static void cris_write_data_breakpoint (struct regcache *regcache, int bp, unsigned long start, unsigned long end)
 
static int cris_supports_z_point_type (char z_type)
 
static int cris_insert_point (enum raw_bkpt_type type, CORE_ADDR addr, int len, struct raw_breakpoint *bp)
 
static int cris_remove_point (enum raw_bkpt_type type, CORE_ADDR addr, int len, struct raw_breakpoint *bp)
 
static int cris_stopped_by_watchpoint (void)
 
static CORE_ADDR cris_stopped_data_address (void)
 
ps_err_e ps_get_thread_area (const struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
 
static void cris_fill_gregset (struct regcache *regcache, void *buf)
 
static void cris_store_gregset (struct regcache *regcache, const void *buf)
 
static void cris_arch_setup (void)
 
static const struct regs_infocris_regs_info (void)
 
void initialize_low_arch (void)
 

Variables

const struct target_desctdesc_crisv32
 
static int cris_regmap []
 
int debug_threads
 
static const unsigned short cris_breakpoint = 0xe938
 
static struct regset_info cris_regsets []
 
static struct regsets_info cris_regsets_info
 
static struct usrregs_info cris_usrregs_info
 
static struct regs_info regs_info
 
struct linux_target_ops the_low_target
 

Macro Definition Documentation

#define cris_breakpoint_len   2

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

Referenced by cris_breakpoint_at().

#define cris_num_regs   49

Definition at line 28 of file linux-crisv32-low.c.

Referenced by cris_fill_gregset(), and cris_store_gregset().

#define PTRACE_GET_THREAD_AREA   25

Definition at line 31 of file linux-crisv32-low.c.

Referenced by ps_get_thread_area().

Function Documentation

static void cris_arch_setup ( void  )
static

Definition at line 377 of file linux-crisv32-low.c.

References current_process(), process_info::tdesc, and tdesc_crisv32.

static int cris_breakpoint_at ( CORE_ADDR  where)
static
static void cris_fill_gregset ( struct regcache regcache,
void *  buf 
)
static

Definition at line 353 of file linux-crisv32-low.c.

References collect_register(), cris_num_regs, and cris_regmap.

static CORE_ADDR cris_get_pc ( struct regcache regcache)
static

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

References collect_register_by_name(), debug_printf(), and debug_threads.

static int cris_insert_point ( enum raw_bkpt_type  type,
CORE_ADDR  addr,
int  len,
struct raw_breakpoint bp 
)
static
static const struct regs_info* cris_regs_info ( void  )
static

Definition at line 410 of file linux-crisv32-low.c.

References regs_info.

static CORE_ADDR cris_reinsert_addr ( void  )
static
static int cris_remove_point ( enum raw_bkpt_type  type,
CORE_ADDR  addr,
int  len,
struct raw_breakpoint bp 
)
static
static void cris_set_pc ( struct regcache regcache,
CORE_ADDR  pc 
)
static

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

References supply_register_by_name().

static int cris_stopped_by_watchpoint ( void  )
static
static CORE_ADDR cris_stopped_data_address ( void  )
static
static void cris_store_gregset ( struct regcache regcache,
const void *  buf 
)
static

Definition at line 365 of file linux-crisv32-low.c.

References cris_num_regs, cris_regmap, and supply_register().

static int cris_supports_z_point_type ( char  z_type)
static

Definition at line 146 of file linux-crisv32-low.c.

References Z_PACKET_ACCESS_WP, Z_PACKET_READ_WP, and Z_PACKET_WRITE_WP.

static void cris_write_data_breakpoint ( struct regcache regcache,
int  bp,
unsigned long  start,
unsigned long  end 
)
static

Definition at line 113 of file linux-crisv32-low.c.

References supply_register_by_name().

Referenced by cris_insert_point(), and cris_remove_point().

void init_registers_crisv32 ( void  )

Referenced by initialize_low_arch().

void initialize_low_arch ( void  )

Definition at line 436 of file linux-crisv32-low.c.

References cris_regsets_info, and init_registers_crisv32().

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

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

References PS_ERR, PS_OK, and PTRACE_GET_THREAD_AREA.

Variable Documentation

const unsigned short cris_breakpoint = 0xe938
static

Definition at line 77 of file linux-crisv32-low.c.

Referenced by cris_breakpoint_at().

int cris_regmap[]
static
Initial value:
= {
1*4, 2*4, 3*4, 4*4,
5*4, 6*4, 7*4, 8*4,
9*4, 10*4, 11*4, 12*4,
13*4, 14*4, 24*4, 15*4,
-1, -1, -1, 16*4,
-1, 22*4, 23*4, 17*4,
-1, -1, 21*4, 20*4,
-1, 19*4, -1, 18*4,
25*4,
26*4, -1, -1, 29*4,
30*4, 31*4, 32*4, 33*4,
34*4, 35*4, 36*4, 37*4,
38*4, 39*4, 40*4, -1
}

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

Referenced by cris_fill_gregset(), and cris_store_gregset().

struct regset_info cris_regsets[]
static
Initial value:
= {
{ PTRACE_GETREGS, PTRACE_SETREGS, 0, cris_num_regs * 4,
{ 0, 0, 0, -1, -1, NULL, NULL }
}
static void cris_fill_gregset(struct regcache *regcache, void *buf)
#define cris_num_regs
static void cris_store_gregset(struct regcache *regcache, const void *buf)

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

struct regsets_info cris_regsets_info
static
Initial value:
=
{
0,
NULL,
}
static struct regset_info cris_regsets[]

Definition at line 389 of file linux-crisv32-low.c.

Referenced by initialize_low_arch().

struct usrregs_info cris_usrregs_info
static
Initial value:
=
{
}
#define cris_num_regs
static int cris_regmap[]

Definition at line 396 of file linux-crisv32-low.c.

int debug_threads

Definition at line 24 of file debug.c.

Referenced by cris_get_pc().

struct regs_info regs_info
static
Initial value:
=
{
NULL,
}
static struct regsets_info cris_regsets_info
static struct usrregs_info cris_usrregs_info

Definition at line 402 of file linux-crisv32-low.c.

Referenced by cris_regs_info().

const struct target_desc* tdesc_crisv32

Referenced by cris_arch_setup().

struct linux_target_ops the_low_target
Initial value:
= {
NULL,
NULL,
NULL,
(const unsigned char *) &cris_breakpoint,
0,
}
static int cris_insert_point(enum raw_bkpt_type type, CORE_ADDR addr, int len, struct raw_breakpoint *bp)
static CORE_ADDR cris_get_pc(struct regcache *regcache)
static CORE_ADDR cris_stopped_data_address(void)
static const struct regs_info * cris_regs_info(void)
static int cris_remove_point(enum raw_bkpt_type type, CORE_ADDR addr, int len, struct raw_breakpoint *bp)
static void cris_arch_setup(void)
static const unsigned short cris_breakpoint
#define cris_breakpoint_len
static CORE_ADDR cris_reinsert_addr(void)
static int cris_breakpoint_at(CORE_ADDR where)
static int cris_stopped_by_watchpoint(void)
static int cris_supports_z_point_type(char z_type)
static void cris_set_pc(struct regcache *regcache, CORE_ADDR pc)

Definition at line 415 of file linux-crisv32-low.c.