GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions | Variables
frv-linux-tdep.c File Reference
#include "defs.h"
#include "gdbcore.h"
#include "target.h"
#include "frame.h"
#include "osabi.h"
#include "regcache.h"
#include "elf-bfd.h"
#include "elf/frv.h"
#include "frv-tdep.h"
#include "trad-frame.h"
#include "frame-unwind.h"
#include "regset.h"
#include "linux-tdep.h"
#include "gdbarch.h"

Go to the source code of this file.

Classes

struct  frv_elf_gregset_t
 
struct  frv_elf_fpregset_t
 

Macros

#define FRV_ELF_NGREG   (46 + 2)
 

Typedefs

typedef unsigned char frv_elf_greg_t[4]
 
typedef unsigned char frv_elf_fpreg_t[4]
 

Enumerations

enum  { NORMAL_SIGTRAMP = 1 , RT_SIGTRAMP = 2 }
 

Functions

static int frv_linux_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name)
 
static LONGEST frv_linux_sigcontext_reg_addr (frame_info_ptr this_frame, int regno, CORE_ADDR *sc_addr_cache_ptr)
 
static struct trad_frame_cachefrv_linux_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
static void frv_linux_sigtramp_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuefrv_linux_sigtramp_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static int frv_linux_sigtramp_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
 
static void frv_linux_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
 
static void frv_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
static void frv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
static enum gdb_osabi frv_linux_elf_osabi_sniffer (bfd *abfd)
 
void _initialize_frv_linux_tdep ()
 

Variables

static const int frv_instr_size = 4
 
static const struct frame_unwind frv_linux_sigtramp_frame_unwind
 
static const struct regcache_map_entry frv_linux_gregmap []
 
static const struct regcache_map_entry frv_linux_fpregmap []
 
static const struct regset frv_linux_gregset
 
static const struct regset frv_linux_fpregset
 

Macro Definition Documentation

◆ FRV_ELF_NGREG

#define FRV_ELF_NGREG   (46 + 2)

Definition at line 348 of file frv-linux-tdep.c.

Typedef Documentation

◆ frv_elf_fpreg_t

typedef unsigned char frv_elf_fpreg_t[4]

Definition at line 352 of file frv-linux-tdep.c.

◆ frv_elf_greg_t

typedef unsigned char frv_elf_greg_t[4]

Definition at line 349 of file frv-linux-tdep.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
NORMAL_SIGTRAMP 
RT_SIGTRAMP 

Definition at line 39 of file frv-linux-tdep.c.

Function Documentation

◆ _initialize_frv_linux_tdep()

void _initialize_frv_linux_tdep ( )

◆ frv_linux_elf_osabi_sniffer()

static enum gdb_osabi frv_linux_elf_osabi_sniffer ( bfd * abfd)
static

Definition at line 470 of file frv-linux-tdep.c.

References GDB_OSABI_LINUX, and GDB_OSABI_UNKNOWN.

Referenced by _initialize_frv_linux_tdep().

◆ frv_linux_init_abi()

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

◆ frv_linux_iterate_over_regset_sections()

static void frv_linux_iterate_over_regset_sections ( struct gdbarch * gdbarch,
iterate_over_regset_sections_cb * cb,
void * cb_data,
const struct regcache * regcache )
static

Definition at line 445 of file frv-linux-tdep.c.

References frv_linux_fpregset, and frv_linux_gregset.

Referenced by frv_linux_init_abi().

◆ frv_linux_pc_in_sigtramp()

static int frv_linux_pc_in_sigtramp ( struct gdbarch * gdbarch,
CORE_ADDR pc,
const char * name )
static

◆ frv_linux_sigcontext_reg_addr()

static LONGEST frv_linux_sigcontext_reg_addr ( frame_info_ptr this_frame,
int regno,
CORE_ADDR * sc_addr_cache_ptr )
static

◆ frv_linux_sigtramp_frame_cache()

static struct trad_frame_cache * frv_linux_sigtramp_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ frv_linux_sigtramp_frame_prev_register()

static struct value * frv_linux_sigtramp_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

◆ frv_linux_sigtramp_frame_sniffer()

static int frv_linux_sigtramp_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_cache )
static

◆ frv_linux_sigtramp_frame_this_id()

static void frv_linux_sigtramp_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ frv_linux_supply_gregset()

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

Variable Documentation

◆ frv_instr_size

const int frv_instr_size = 4
static

◆ frv_linux_fpregmap

const struct regcache_map_entry frv_linux_fpregmap[]
static
Initial value:
=
{
{ 64, first_fpr_regnum, 4 },
{ 1, fner0_regnum, 4 },
{ 1, fner1_regnum, 4 },
{ 1, msr0_regnum, 4 },
{ 1, msr1_regnum, 4 },
{ 8, acc0_regnum, 4 },
{ 1, accg0123_regnum, 4 },
{ 1, accg4567_regnum, 4 },
{ 1, fsr0_regnum, 4 },
{ 0 }
}
@ msr1_regnum
Definition frv-tdep.h:76
@ accg4567_regnum
Definition frv-tdep.h:74
@ first_fpr_regnum
Definition frv-tdep.h:42
@ acc0_regnum
Definition frv-tdep.h:71
@ fner0_regnum
Definition frv-tdep.h:79
@ fsr0_regnum
Definition frv-tdep.h:70
@ fner1_regnum
Definition frv-tdep.h:80
@ msr0_regnum
Definition frv-tdep.h:75
@ accg0123_regnum
Definition frv-tdep.h:73

Definition at line 396 of file frv-linux-tdep.c.

◆ frv_linux_fpregset

const struct regset frv_linux_fpregset
static
Initial value:
=
{
}
static const struct regcache_map_entry frv_linux_fpregmap[]
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition regcache.c:1273
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition regcache.c:1251

Definition at line 438 of file frv-linux-tdep.c.

Referenced by frv_linux_iterate_over_regset_sections().

◆ frv_linux_gregmap

const struct regcache_map_entry frv_linux_gregmap[]
static
Initial value:
=
{
{ 1, psr_regnum, 4 },
{ 1, REGCACHE_MAP_SKIP, 4 },
{ 1, ccr_regnum, 4 },
{ 1, cccr_regnum, 4 },
{ 1, lr_regnum, 4 },
{ 1, lcr_regnum, 4 },
{ 1, pc_regnum, 4 },
{ 1, REGCACHE_MAP_SKIP, 4 },
{ 1, REGCACHE_MAP_SKIP, 4 },
{ 1, REGCACHE_MAP_SKIP, 4 },
{ 1, gner0_regnum, 4 },
{ 1, gner1_regnum, 4 },
{ 1, REGCACHE_MAP_SKIP, 8 },
{ 1, tbr_regnum, 4 },
{ 31, first_gpr_regnum + 1, 4 },
{ 0 }
}
@ lr_regnum
Definition frv-tdep.h:66
@ fdpic_loadmap_interp_regnum
Definition frv-tdep.h:55
@ cccr_regnum
Definition frv-tdep.h:53
@ gner1_regnum
Definition frv-tdep.h:78
@ psr_regnum
Definition frv-tdep.h:51
@ lcr_regnum
Definition frv-tdep.h:67
@ ccr_regnum
Definition frv-tdep.h:52
@ tbr_regnum
Definition frv-tdep.h:56
@ first_gpr_regnum
Definition frv-tdep.h:34
@ pc_regnum
Definition frv-tdep.h:46
@ fdpic_loadmap_exec_regnum
Definition frv-tdep.h:54
@ gner0_regnum
Definition frv-tdep.h:77
@ REGCACHE_MAP_SKIP
Definition regcache.h:121

Definition at line 365 of file frv-linux-tdep.c.

◆ frv_linux_gregset

const struct regset frv_linux_gregset
static
Initial value:
=
{
}
static const struct regcache_map_entry frv_linux_gregmap[]
static void frv_linux_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)

Definition at line 432 of file frv-linux-tdep.c.

Referenced by frv_linux_iterate_over_regset_sections().

◆ frv_linux_sigtramp_frame_unwind

const struct frame_unwind frv_linux_sigtramp_frame_unwind
static
Initial value:
=
{
"frv linux sigtramp",
NULL,
}
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
@ SIGTRAMP_FRAME
Definition frame.h:198
static void frv_linux_sigtramp_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
static int frv_linux_sigtramp_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
static struct value * frv_linux_sigtramp_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)

Definition at line 335 of file frv-linux-tdep.c.

Referenced by frv_linux_init_abi().