GDB (xrefs)
Loading...
Searching...
No Matches
Macros | Functions | Variables
riscv-fbsd-tdep.c File Reference
#include "defs.h"
#include "fbsd-tdep.h"
#include "osabi.h"
#include "riscv-tdep.h"
#include "riscv-fbsd-tdep.h"
#include "solib-svr4.h"
#include "target.h"
#include "trad-frame.h"
#include "tramp-frame.h"
#include "gdbarch.h"
#include "inferior.h"

Go to the source code of this file.

Macros

#define RISCV_SIGFRAME_UCONTEXT_OFFSET   80
 
#define RISCV_UCONTEXT_MCONTEXT_OFFSET   16
 
#define RISCV_MCONTEXT_FLAG_FP_VALID   0x1
 

Functions

static void riscv_fbsd_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
static void riscv_fbsd_sigframe_init (const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
 
static CORE_ADDR riscv_fbsd_get_thread_local_address (struct gdbarch *gdbarch, ptid_t ptid, CORE_ADDR lm_addr, CORE_ADDR offset)
 
static void riscv_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
void _initialize_riscv_fbsd_tdep ()
 

Variables

static const struct regcache_map_entry riscv_fbsd_gregmap []
 
static const struct regcache_map_entry riscv_fbsd_fpregmap []
 
const struct regset riscv_fbsd_gregset
 
const struct regset riscv_fbsd_fpregset
 
static const struct tramp_frame riscv_fbsd_sigframe
 

Macro Definition Documentation

◆ RISCV_MCONTEXT_FLAG_FP_VALID

#define RISCV_MCONTEXT_FLAG_FP_VALID   0x1

Definition at line 105 of file riscv-fbsd-tdep.c.

Referenced by riscv_fbsd_sigframe_init().

◆ RISCV_SIGFRAME_UCONTEXT_OFFSET

#define RISCV_SIGFRAME_UCONTEXT_OFFSET   80

Definition at line 103 of file riscv-fbsd-tdep.c.

Referenced by riscv_fbsd_sigframe_init().

◆ RISCV_UCONTEXT_MCONTEXT_OFFSET

#define RISCV_UCONTEXT_MCONTEXT_OFFSET   16

Definition at line 104 of file riscv-fbsd-tdep.c.

Referenced by riscv_fbsd_sigframe_init().

Function Documentation

◆ _initialize_riscv_fbsd_tdep()

void _initialize_riscv_fbsd_tdep ( )

◆ riscv_fbsd_get_thread_local_address()

static CORE_ADDR riscv_fbsd_get_thread_local_address ( struct gdbarch * gdbarch,
ptid_t ptid,
CORE_ADDR lm_addr,
CORE_ADDR offset )
static

◆ riscv_fbsd_init_abi()

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

◆ riscv_fbsd_iterate_over_regset_sections()

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

◆ riscv_fbsd_sigframe_init()

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

Variable Documentation

◆ riscv_fbsd_fpregmap

const struct regcache_map_entry riscv_fbsd_fpregmap[]
static
Initial value:
=
{
{ 32, RISCV_FIRST_FP_REGNUM, 16 },
{ 1, RISCV_CSR_FCSR_REGNUM, 8 },
{ 0 }
}
@ RISCV_FIRST_FP_REGNUM
Definition riscv-tdep.h:43

Definition at line 49 of file riscv-fbsd-tdep.c.

Referenced by riscv_fbsd_sigframe_init().

◆ riscv_fbsd_fpregset

const struct regset riscv_fbsd_fpregset
Initial value:
=
{
}
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition regcache.c:1273
static const struct regcache_map_entry riscv_fbsd_fpregmap[]
void riscv_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *regs, size_t len)

Definition at line 63 of file riscv-fbsd-tdep.c.

Referenced by riscv_fbsd_nat_target::fetch_registers(), riscv_fbsd_iterate_over_regset_sections(), and riscv_fbsd_nat_target::store_registers().

◆ riscv_fbsd_gregmap

const struct regcache_map_entry riscv_fbsd_gregmap[]
static
Initial value:
=
{
{ 1, RISCV_RA_REGNUM, 0 },
{ 1, RISCV_SP_REGNUM, 0 },
{ 1, RISCV_GP_REGNUM, 0 },
{ 1, RISCV_TP_REGNUM, 0 },
{ 3, 5, 0 },
{ 4, 28, 0 },
{ 2, RISCV_FP_REGNUM, 0 },
{ 10, 18, 0 },
{ 8, RISCV_A0_REGNUM, 0 },
{ 1, RISCV_PC_REGNUM, 0 },
{ 1, RISCV_CSR_SSTATUS_REGNUM, 0 },
{ 0 }
}
@ RISCV_GP_REGNUM
Definition riscv-tdep.h:33
@ RISCV_TP_REGNUM
Definition riscv-tdep.h:34
@ RISCV_RA_REGNUM
Definition riscv-tdep.h:31
@ RISCV_FP_REGNUM
Definition riscv-tdep.h:35
@ RISCV_SP_REGNUM
Definition riscv-tdep.h:32
@ RISCV_A0_REGNUM
Definition riscv-tdep.h:36
@ RISCV_PC_REGNUM
Definition riscv-tdep.h:39

Definition at line 33 of file riscv-fbsd-tdep.c.

Referenced by riscv_fbsd_sigframe_init().

◆ riscv_fbsd_gregset

const struct regset riscv_fbsd_gregset

◆ riscv_fbsd_sigframe

const struct tramp_frame riscv_fbsd_sigframe
static
Initial value:
=
{
2,
{
{0x850a, ULONGEST_MAX},
{0x0513, ULONGEST_MAX},
{0x0505, ULONGEST_MAX},
{0x0293, ULONGEST_MAX},
{0x1a10, ULONGEST_MAX},
{0x0073, ULONGEST_MAX},
{0x0000, ULONGEST_MAX},
{TRAMP_SENTINEL_INSN, ULONGEST_MAX}
},
}
@ SIGTRAMP_FRAME
Definition frame.h:198
static void riscv_fbsd_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 146 of file riscv-fbsd-tdep.c.

Referenced by riscv_fbsd_init_abi().