GDB (xrefs)
Loading...
Searching...
No Matches
Macros | Enumerations | Functions | Variables
sparc-linux-tdep.c File Reference
#include "defs.h"
#include "dwarf2/frame.h"
#include "frame.h"
#include "frame-unwind.h"
#include "gdbtypes.h"
#include "regset.h"
#include "gdbarch.h"
#include "gdbcore.h"
#include "osabi.h"
#include "regcache.h"
#include "solib-svr4.h"
#include "symtab.h"
#include "trad-frame.h"
#include "tramp-frame.h"
#include "xml-syscall.h"
#include "linux-tdep.h"
#include "sparc-tdep.h"

Go to the source code of this file.

Macros

#define XML_SYSCALL_FILENAME_SPARC32   "syscalls/sparc-linux.xml"
 
#define PSR_SYSCALL   0x00004000
 

Enumerations

enum  {
  SPARC_LINUX_SIGEMT = 7 , SPARC_LINUX_SIGBUS = 10 , SPARC_LINUX_SIGSYS = 12 , SPARC_LINUX_SIGURG = 16 ,
  SPARC_LINUX_SIGSTOP = 17 , SPARC_LINUX_SIGTSTP = 18 , SPARC_LINUX_SIGCONT = 19 , SPARC_LINUX_SIGCHLD = 20 ,
  SPARC_LINUX_SIGIO = 23 , SPARC_LINUX_SIGPOLL = SPARC_LINUX_SIGIO , SPARC_LINUX_SIGLOST = 29 , SPARC_LINUX_SIGPWR = SPARC_LINUX_SIGLOST ,
  SPARC_LINUX_SIGUSR1 = 30 , SPARC_LINUX_SIGUSR2 = 31
}
 

Functions

static void sparc32_linux_sigframe_init (const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
 
static CORE_ADDR sparc32_linux_step_trap (frame_info_ptr frame, unsigned long insn)
 
static void sparc32_linux_supply_core_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
 
static void sparc32_linux_collect_core_gregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
 
static void sparc32_linux_supply_core_fpregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)
 
static void sparc32_linux_collect_core_fpregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
 
static void sparc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
 
static LONGEST sparc32_linux_get_syscall_number (struct gdbarch *gdbarch, thread_info *thread)
 
static enum gdb_signal sparc32_linux_gdb_signal_from_target (struct gdbarch *gdbarch, int signal)
 
static int sparc32_linux_gdb_signal_to_target (struct gdbarch *gdbarch, enum gdb_signal signal)
 
static void sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
void _initialize_sparc_linux_tdep ()
 

Variables

static const struct tramp_frame sparc32_linux_sigframe
 
static const struct tramp_frame sparc32_linux_rt_sigframe
 
const struct sparc_gregmap sparc32_linux_core_gregmap
 
static const struct regset sparc32_linux_gregset
 
static const struct regset sparc32_linux_fpregset
 

Macro Definition Documentation

◆ PSR_SYSCALL

#define PSR_SYSCALL   0x00004000

Definition at line 251 of file sparc-linux-tdep.c.

◆ XML_SYSCALL_FILENAME_SPARC32

#define XML_SYSCALL_FILENAME_SPARC32   "syscalls/sparc-linux.xml"

Definition at line 38 of file sparc-linux-tdep.c.

Referenced by sparc32_linux_init_abi().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
SPARC_LINUX_SIGEMT 
SPARC_LINUX_SIGBUS 
SPARC_LINUX_SIGSYS 
SPARC_LINUX_SIGURG 
SPARC_LINUX_SIGSTOP 
SPARC_LINUX_SIGTSTP 
SPARC_LINUX_SIGCONT 
SPARC_LINUX_SIGCHLD 
SPARC_LINUX_SIGIO 
SPARC_LINUX_SIGPOLL 
SPARC_LINUX_SIGLOST 
SPARC_LINUX_SIGPWR 
SPARC_LINUX_SIGUSR1 
SPARC_LINUX_SIGUSR2 

Definition at line 100 of file sparc-linux-tdep.c.

Function Documentation

◆ _initialize_sparc_linux_tdep()

void _initialize_sparc_linux_tdep ( )

◆ sparc32_linux_collect_core_fpregset()

static void sparc32_linux_collect_core_fpregset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * fpregs,
size_t len )
static

Definition at line 242 of file sparc-linux-tdep.c.

References regnum, sparc32_bsd_fpregmap, and sparc32_collect_fpregset().

◆ sparc32_linux_collect_core_gregset()

static void sparc32_linux_collect_core_gregset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * gregs,
size_t len )
static

Definition at line 225 of file sparc-linux-tdep.c.

References regnum, sparc32_collect_gregset(), and sparc32_linux_core_gregmap.

◆ sparc32_linux_gdb_signal_from_target()

static enum gdb_signal sparc32_linux_gdb_signal_from_target ( struct gdbarch * gdbarch,
int signal )
static

◆ sparc32_linux_gdb_signal_to_target()

static int sparc32_linux_gdb_signal_to_target ( struct gdbarch * gdbarch,
enum gdb_signal signal )
static

◆ sparc32_linux_get_syscall_number()

static LONGEST sparc32_linux_get_syscall_number ( struct gdbarch * gdbarch,
thread_info * thread )
static

◆ sparc32_linux_init_abi()

static void sparc32_linux_init_abi ( struct gdbarch_info info,
struct gdbarch * gdbarch )
static

◆ sparc32_linux_sigframe_init()

static void sparc32_linux_sigframe_init ( const struct tramp_frame * self,
frame_info_ptr this_frame,
struct trad_frame_cache * this_cache,
CORE_ADDR func )
static

◆ sparc32_linux_step_trap()

static CORE_ADDR sparc32_linux_step_trap ( frame_info_ptr frame,
unsigned long insn )
static

◆ sparc32_linux_supply_core_fpregset()

static void sparc32_linux_supply_core_fpregset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * fpregs,
size_t len )
static

Definition at line 234 of file sparc-linux-tdep.c.

References regnum, sparc32_bsd_fpregmap, and sparc32_supply_fpregset().

◆ sparc32_linux_supply_core_gregset()

static void sparc32_linux_supply_core_gregset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * gregs,
size_t len )
static

Definition at line 216 of file sparc-linux-tdep.c.

References regnum, sparc32_linux_core_gregmap, and sparc32_supply_gregset().

◆ sparc_linux_write_pc()

static void sparc_linux_write_pc ( struct regcache * regcache,
CORE_ADDR pc )
static

Variable Documentation

◆ sparc32_linux_core_gregmap

const struct sparc_gregmap sparc32_linux_core_gregmap
Initial value:
=
{
32 * 4,
33 * 4,
34 * 4,
35 * 4,
-1,
-1,
1 * 4,
16 * 4,
4,
}

Definition at line 201 of file sparc-linux-tdep.c.

Referenced by sparc32_linux_collect_core_gregset(), and sparc32_linux_supply_core_gregset().

◆ sparc32_linux_fpregset

const struct regset sparc32_linux_fpregset
static
Initial value:
=
{
NULL,
}
static void sparc32_linux_collect_core_fpregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
static void sparc32_linux_supply_core_fpregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)

Definition at line 414 of file sparc-linux-tdep.c.

Referenced by sparc32_linux_init_abi().

◆ sparc32_linux_gregset

const struct regset sparc32_linux_gregset
static
Initial value:
=
{
NULL,
}
static void sparc32_linux_supply_core_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
static void sparc32_linux_collect_core_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)

Definition at line 407 of file sparc-linux-tdep.c.

Referenced by sparc32_linux_init_abi().

◆ sparc32_linux_rt_sigframe

const struct tramp_frame sparc32_linux_rt_sigframe
static
Initial value:
=
{
4,
{
{ 0x82102065, ULONGEST_MAX },
{ 0x91d02010, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
@ SIGTRAMP_FRAME
Definition frame.h:198
static void sparc32_linux_sigframe_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
#define TRAMP_SENTINEL_INSN
Definition tramp-frame.h:44

Definition at line 81 of file sparc-linux-tdep.c.

Referenced by sparc32_linux_init_abi(), and sparc32_linux_sigframe_init().

◆ sparc32_linux_sigframe

const struct tramp_frame sparc32_linux_sigframe
static
Initial value:
=
{
4,
{
{ 0x821020d8, ULONGEST_MAX },
{ 0x91d02010, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}

Definition at line 66 of file sparc-linux-tdep.c.

Referenced by sparc32_linux_init_abi().