GDBserver
Classes | Macros | Functions | Variables
linux-tic6x-low.c File Reference
#include "server.h"
#include "linux-low.h"
#include <sys/ptrace.h>
#include <endian.h>
#include "gdb_proc_service.h"
#include <asm/ptrace.h>

Go to the source code of this file.

Classes

union  tic6x_register
 

Macros

#define PTRACE_GET_THREAD_AREA   25
 
#define TIC6X_NUM_REGS   69
 
#define tic6x_breakpoint_len   4
 

Functions

void init_registers_tic6x_c64xp_linux (void)
 
void init_registers_tic6x_c64x_linux (void)
 
void init_registers_tic6x_c62x_linux (void)
 
static const struct target_desctic6x_read_description (void)
 
static int tic6x_cannot_fetch_register (int regno)
 
static int tic6x_cannot_store_register (int regno)
 
static CORE_ADDR tic6x_get_pc (struct regcache *regcache)
 
static void tic6x_set_pc (struct regcache *regcache, CORE_ADDR pc)
 
static int tic6x_breakpoint_at (CORE_ADDR where)
 
ps_err_e ps_get_thread_area (const struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
 
static void tic6x_collect_register (struct regcache *regcache, int regno, union tic6x_register *reg)
 
static void tic6x_supply_register (struct regcache *regcache, int regno, const union tic6x_register *reg)
 
static void tic6x_fill_gregset (struct regcache *regcache, void *buf)
 
static void tic6x_store_gregset (struct regcache *regcache, const void *buf)
 
static void tic6x_arch_setup (void)
 
static const struct regs_infotic6x_regs_info (void)
 
void initialize_low_arch (void)
 

Variables

const struct target_desctdesc_tic6x_c64xp_linux
 
const struct target_desctdesc_tic6x_c64x_linux
 
const struct target_desctdesc_tic6x_c62x_linux
 
static int tic6x_regmap_c64xp []
 
static int tic6x_regmap_c64x []
 
static int tic6x_regmap_c62x []
 
struct linux_target_ops the_low_target
 
static int * tic6x_regmap
 
static unsigned int tic6x_breakpoint
 
static struct usrregs_info tic6x_usrregs_info
 
static struct regset_info tic6x_regsets []
 
static struct regsets_info tic6x_regsets_info
 
static struct regs_info regs_info
 

Macro Definition Documentation

#define PTRACE_GET_THREAD_AREA   25

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

Referenced by ps_get_thread_area().

#define tic6x_breakpoint_len   4

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

#define TIC6X_NUM_REGS   69

Definition at line 35 of file linux-tic6x-low.c.

Referenced by tic6x_fill_gregset(), and tic6x_store_gregset().

Function Documentation

void init_registers_tic6x_c62x_linux ( void  )

Referenced by initialize_low_arch().

void init_registers_tic6x_c64x_linux ( void  )

Referenced by initialize_low_arch().

void init_registers_tic6x_c64xp_linux ( void  )

Referenced by initialize_low_arch().

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

Definition at line 269 of file linux-tic6x-low.c.

References PS_ERR, PS_OK, and PTRACE_GET_THREAD_AREA.

static void tic6x_arch_setup ( void  )
static
static int tic6x_breakpoint_at ( CORE_ADDR  where)
static

Definition at line 253 of file linux-tic6x-low.c.

References target_ops::read_memory, the_target, and tic6x_breakpoint.

static int tic6x_cannot_fetch_register ( int  regno)
static

Definition at line 221 of file linux-tic6x-low.c.

References tic6x_regmap.

static int tic6x_cannot_store_register ( int  regno)
static

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

References tic6x_regmap.

static void tic6x_collect_register ( struct regcache regcache,
int  regno,
union tic6x_register reg 
)
static

Definition at line 284 of file linux-tic6x-low.c.

References collect_register(), and tic6x_register::reg32.

Referenced by tic6x_fill_gregset().

static void tic6x_fill_gregset ( struct regcache regcache,
void *  buf 
)
static
static CORE_ADDR tic6x_get_pc ( struct regcache regcache)
static
static const struct target_desc* tic6x_read_description ( void  )
static
static const struct regs_info* tic6x_regs_info ( void  )
static

Definition at line 357 of file linux-tic6x-low.c.

References regs_info.

static void tic6x_set_pc ( struct regcache regcache,
CORE_ADDR  pc 
)
static
static void tic6x_store_gregset ( struct regcache regcache,
const void *  buf 
)
static
static void tic6x_supply_register ( struct regcache regcache,
int  regno,
const union tic6x_register reg 
)
static

Definition at line 294 of file linux-tic6x-low.c.

References tic6x_register::buf, offset, and supply_register().

Referenced by tic6x_store_gregset().

Variable Documentation

struct regs_info regs_info
static
Initial value:
=
{
NULL,
}
static struct usrregs_info tic6x_usrregs_info
static struct regsets_info tic6x_regsets_info

Definition at line 349 of file linux-tic6x-low.c.

Referenced by tic6x_regs_info().

const struct target_desc* tdesc_tic6x_c62x_linux

Referenced by tic6x_read_description().

const struct target_desc* tdesc_tic6x_c64x_linux

Referenced by tic6x_read_description().

const struct target_desc* tdesc_tic6x_c64xp_linux

Referenced by tic6x_read_description().

struct linux_target_ops the_low_target
Initial value:
= {
NULL,
(const unsigned char *) &tic6x_breakpoint,
NULL,
0,
}
static int tic6x_cannot_fetch_register(int regno)
static const struct regs_info * tic6x_regs_info(void)
static CORE_ADDR tic6x_get_pc(struct regcache *regcache)
#define tic6x_breakpoint_len
static unsigned int tic6x_breakpoint
static int tic6x_cannot_store_register(int regno)
static void tic6x_set_pc(struct regcache *regcache, CORE_ADDR pc)
static int tic6x_breakpoint_at(CORE_ADDR where)
static void tic6x_arch_setup(void)

Definition at line 362 of file linux-tic6x-low.c.

unsigned int tic6x_breakpoint
static

Definition at line 173 of file linux-tic6x-low.c.

Referenced by tic6x_breakpoint_at(), and tic6x_read_description().

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

Definition at line 98 of file linux-tic6x-low.c.

Referenced by tic6x_read_description().

int tic6x_regmap_c64x[]
static
Initial value:
= {
51, 50, 53, 52, 55, 54, 57, 56,
59, 58, 61, 60, 63, 62, 65, 64,
21, 20, 23, 22, 25, 24, 27, 26,
29, 28, 31, 30, 33, 32, 67, 66,
3, 2,
35, 34, 37, 36, 39, 38, 41, 40,
43, 42, 45, 44, 47, 46, 49, 48,
5, 4, 7, 6, 9, 8, 11, 10,
13, 12, 15, 14, 17, 16, 19, 18,
-1, -1, -1
}

Definition at line 80 of file linux-tic6x-low.c.

Referenced by tic6x_read_description().

int tic6x_regmap_c64xp[]
static
Initial value:
= {
53, 52, 55, 54, 57, 56, 59, 58,
61, 60, 63, 62, 65, 64, 67, 66,
23, 22, 25, 24, 27, 26, 29, 28,
31, 30, 33, 32, 35, 34, 69, 68,
5, 4,
37, 36, 39, 38, 41, 40, 43, 42,
45, 44, 47, 46, 49, 48, 51, 50,
7, 6, 9, 8, 11, 10, 13, 12,
15, 14, 17, 16, 19, 18, 21, 20,
1, 2, 3
}

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

Referenced by tic6x_read_description().

struct regset_info tic6x_regsets[]
static
Initial value:
= {
{ PTRACE_GETREGS, PTRACE_SETREGS, 0, TIC6X_NUM_REGS * 4, GENERAL_REGS,
{ 0, 0, 0, -1, -1, NULL, NULL }
}
static void tic6x_fill_gregset(struct regcache *regcache, void *buf)
#define TIC6X_NUM_REGS
static void tic6x_store_gregset(struct regcache *regcache, const void *buf)

Definition at line 324 of file linux-tic6x-low.c.

struct regsets_info tic6x_regsets_info
static
Initial value:
=
{
0,
NULL,
}
static struct regset_info tic6x_regsets[]

Definition at line 336 of file linux-tic6x-low.c.

Referenced by initialize_low_arch().

static struct usrregs_info tic6x_usrregs_info
static
Initial value:
=
{
NULL,
}
#define TIC6X_NUM_REGS

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

Referenced by tic6x_read_description().