GDBserver
Macros | Enumerations | Functions | Variables
linux-xtensa-low.c File Reference
#include "server.h"
#include "linux-low.h"
#include <asm/ptrace.h>
#include <xtensa-config.h>
#include "arch/xtensa.h"
#include "gdb_proc_service.h"
#include "xtensa-xtregs.c"

Go to the source code of this file.

Macros

#define XTENSA_BREAKPOINT   {0xd2,0x0f}
 
#define xtensa_breakpoint_len   2
 

Enumerations

enum  regnum {
  R_PC =0, R_PS, R_LBEG, R_LEND,
  R_LCOUNT, R_SAR, R_WS, R_WB,
  R_THREADPTR, R_A0 = 64
}
 

Functions

void init_registers_xtensa (void)
 
static void xtensa_fill_gregset (struct regcache *regcache, void *buf)
 
static void xtensa_store_gregset (struct regcache *regcache, const void *buf)
 
static void xtensa_fill_xtregset (struct regcache *regcache, void *buf)
 
static void xtensa_store_xtregset (struct regcache *regcache, const void *buf)
 
static const gdb_bytextensa_sw_breakpoint_from_kind (int kind, int *size)
 
static int xtensa_breakpoint_at (CORE_ADDR where)
 
ps_err_e ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
 
static void xtensa_arch_setup (void)
 
static int xtensa_supports_hardware_single_step (void)
 
static const struct regs_infoxtensa_regs_info (void)
 
void initialize_low_arch (void)
 

Variables

const struct target_desctdesc_xtensa
 
static struct regset_info xtensa_regsets []
 
static const gdb_byte xtensa_breakpoint [] = XTENSA_BREAKPOINT
 
static struct regsets_info xtensa_regsets_info
 
static struct regs_info regs_info
 
struct linux_target_ops the_low_target
 

Macro Definition Documentation

◆ XTENSA_BREAKPOINT

#define XTENSA_BREAKPOINT   {0xd2,0x0f}

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

◆ xtensa_breakpoint_len

#define xtensa_breakpoint_len   2

Definition at line 194 of file linux-xtensa-low.c.

Referenced by xtensa_breakpoint_at(), and xtensa_sw_breakpoint_from_kind().

Enumeration Type Documentation

◆ regnum

enum regnum
Enumerator
R_PC 
R_PS 
R_LBEG 
R_LEND 
R_LCOUNT 
R_SAR 
R_WS 
R_WB 
R_THREADPTR 
R_A0 

Definition at line 34 of file linux-xtensa-low.c.

Function Documentation

◆ init_registers_xtensa()

void init_registers_xtensa ( void  )

Referenced by initialize_low_arch().

◆ initialize_low_arch()

void initialize_low_arch ( void  )

◆ 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 219 of file linux-xtensa-low.c.

References PS_ERR, PS_OK, and ptrace().

◆ xtensa_arch_setup()

static void xtensa_arch_setup ( void  )
static

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

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

◆ xtensa_breakpoint_at()

static int xtensa_breakpoint_at ( CORE_ADDR  where)
static

◆ xtensa_fill_gregset()

static void xtensa_fill_gregset ( struct regcache regcache,
void *  buf 
)
static

◆ xtensa_fill_xtregset()

static void xtensa_fill_xtregset ( struct regcache regcache,
void *  buf 
)
static

◆ xtensa_regs_info()

static const struct regs_info* xtensa_regs_info ( void  )
static

Definition at line 264 of file linux-xtensa-low.c.

References regs_info.

◆ xtensa_store_gregset()

static void xtensa_store_gregset ( struct regcache regcache,
const void *  buf 
)
static

◆ xtensa_store_xtregset()

static void xtensa_store_xtregset ( struct regcache regcache,
const void *  buf 
)
static

◆ xtensa_supports_hardware_single_step()

static int xtensa_supports_hardware_single_step ( void  )
static

Definition at line 258 of file linux-xtensa-low.c.

◆ xtensa_sw_breakpoint_from_kind()

static const gdb_byte* xtensa_sw_breakpoint_from_kind ( int  kind,
int *  size 
)
static

Definition at line 199 of file linux-xtensa-low.c.

References xtensa_breakpoint, and xtensa_breakpoint_len.

Variable Documentation

◆ regs_info

struct regs_info regs_info
static
Initial value:
=
{
NULL,
NULL,
}
static struct regsets_info xtensa_regsets_info

Definition at line 242 of file linux-xtensa-low.c.

Referenced by xtensa_regs_info().

◆ tdesc_xtensa

const struct target_desc* tdesc_xtensa

Referenced by xtensa_arch_setup().

◆ the_low_target

struct linux_target_ops the_low_target

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

◆ xtensa_breakpoint

const gdb_byte xtensa_breakpoint[] = XTENSA_BREAKPOINT
static

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

Referenced by xtensa_breakpoint_at(), and xtensa_sw_breakpoint_from_kind().

◆ xtensa_regsets

struct regset_info xtensa_regsets[]
static
Initial value:
= {
{ PTRACE_GETREGS, PTRACE_SETREGS, 0, sizeof (elf_gregset_t),
GENERAL_REGS,
{ PTRACE_GETXTREGS, PTRACE_SETXTREGS, 0, XTENSA_ELF_XTREG_SIZE,
EXTENDED_REGS,
NULL_REGSET
}
#define XTENSA_ELF_XTREG_SIZE
Definition: xtensa-xtregs.c:31
static void xtensa_fill_xtregset(struct regcache *regcache, void *buf)
static void xtensa_fill_gregset(struct regcache *regcache, void *buf)
static void xtensa_store_xtregset(struct regcache *regcache, const void *buf)
static void xtensa_store_gregset(struct regcache *regcache, const void *buf)

Definition at line 177 of file linux-xtensa-low.c.

◆ xtensa_regsets_info

struct regsets_info xtensa_regsets_info
static
Initial value:
=
{
0,
NULL,
}
static struct regset_info xtensa_regsets[]

Definition at line 235 of file linux-xtensa-low.c.

Referenced by initialize_low_arch().