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

Go to the source code of this file.

Macros

#define MIPS_FBSD_NUM_GREGS   40
 
#define MIPS_FBSD_NUM_FPREGS   34
 
#define FBSD_SYS_sigreturn   417
 
#define MIPS_INST_LI_V0_SIGRETURN   0x24020000 + FBSD_SYS_sigreturn
 
#define MIPS_INST_SYSCALL   0x0000000c
 
#define MIPS_INST_BREAK   0x0000000d
 
#define O32_SIGFRAME_UCONTEXT_OFFSET   (16)
 
#define O32_SIGSET_T_SIZE   (16)
 
#define O32_UCONTEXT_ONSTACK   (O32_SIGSET_T_SIZE)
 
#define O32_UCONTEXT_PC   (O32_UCONTEXT_ONSTACK + 4)
 
#define O32_UCONTEXT_REGS   (O32_UCONTEXT_PC + 4)
 
#define O32_UCONTEXT_SR   (O32_UCONTEXT_REGS + 4 * 32)
 
#define O32_UCONTEXT_LO   (O32_UCONTEXT_SR + 4)
 
#define O32_UCONTEXT_HI   (O32_UCONTEXT_LO + 4)
 
#define O32_UCONTEXT_FPUSED   (O32_UCONTEXT_HI + 4)
 
#define O32_UCONTEXT_FPREGS   (O32_UCONTEXT_FPUSED + 4)
 
#define O32_UCONTEXT_REG_SIZE   4
 
#define MIPS_INST_ADDIU_A0_SP_O32
 
#define N64_SIGFRAME_UCONTEXT_OFFSET   (32)
 
#define N64_SIGSET_T_SIZE   (16)
 
#define N64_UCONTEXT_ONSTACK   (N64_SIGSET_T_SIZE)
 
#define N64_UCONTEXT_PC   (N64_UCONTEXT_ONSTACK + 8)
 
#define N64_UCONTEXT_REGS   (N64_UCONTEXT_PC + 8)
 
#define N64_UCONTEXT_SR   (N64_UCONTEXT_REGS + 8 * 32)
 
#define N64_UCONTEXT_LO   (N64_UCONTEXT_SR + 8)
 
#define N64_UCONTEXT_HI   (N64_UCONTEXT_LO + 8)
 
#define N64_UCONTEXT_FPUSED   (N64_UCONTEXT_HI + 8)
 
#define N64_UCONTEXT_FPREGS   (N64_UCONTEXT_FPUSED + 8)
 
#define N64_UCONTEXT_REG_SIZE   8
 
#define MIPS_INST_ADDIU_A0_SP_N32
 
#define MIPS_INST_DADDIU_A0_SP_N64
 

Functions

static void mips_fbsd_supply_reg (struct regcache *regcache, int regnum, const void *addr, size_t len)
 
static void mips_fbsd_collect_reg (const struct regcache *regcache, int regnum, void *addr, size_t len)
 
void mips_fbsd_supply_fpregs (struct regcache *regcache, int regnum, const void *fpregs, size_t regsize)
 
void mips_fbsd_supply_gregs (struct regcache *regcache, int regnum, const void *gregs, size_t regsize)
 
void mips_fbsd_collect_fpregs (const struct regcache *regcache, int regnum, void *fpregs, size_t regsize)
 
void mips_fbsd_collect_gregs (const struct regcache *regcache, int regnum, void *gregs, size_t regsize)
 
static void mips_fbsd_supply_fpregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)
 
static void mips_fbsd_collect_fpregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
 
static void mips_fbsd_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
 
static void mips_fbsd_collect_gregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
 
static void mips_fbsd_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
static void mips_fbsd_sigframe_init (const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *cache, CORE_ADDR func)
 
static void mips64_fbsd_sigframe_init (const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *cache, CORE_ADDR func)
 
static CORE_ADDR mips_fbsd_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static struct link_map_offsetsmips_fbsd_ilp32_fetch_link_map_offsets (void)
 
static struct link_map_offsetsmips_fbsd_lp64_fetch_link_map_offsets (void)
 
static void mips_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
void _initialize_mips_fbsd_tdep ()
 

Variables

static const struct regset mips_fbsd_gregset
 
static const struct regset mips_fbsd_fpregset
 
static const struct tramp_frame mips_fbsd_sigframe
 
static const struct tramp_frame mipsn32_fbsd_sigframe
 
static const struct tramp_frame mips64_fbsd_sigframe
 

Macro Definition Documentation

◆ FBSD_SYS_sigreturn

#define FBSD_SYS_sigreturn   417

Definition at line 256 of file mips-fbsd-tdep.c.

◆ MIPS_FBSD_NUM_FPREGS

#define MIPS_FBSD_NUM_FPREGS   34

◆ MIPS_FBSD_NUM_GREGS

#define MIPS_FBSD_NUM_GREGS   40

◆ MIPS_INST_ADDIU_A0_SP_N32

#define MIPS_INST_ADDIU_A0_SP_N32
Value:
(0x27a40000 \
#define N64_SIGFRAME_UCONTEXT_OFFSET

Definition at line 429 of file mips-fbsd-tdep.c.

◆ MIPS_INST_ADDIU_A0_SP_O32

#define MIPS_INST_ADDIU_A0_SP_O32
Value:
(0x27a40000 \
#define O32_SIGFRAME_UCONTEXT_OFFSET

Definition at line 337 of file mips-fbsd-tdep.c.

◆ MIPS_INST_BREAK

#define MIPS_INST_BREAK   0x0000000d

Definition at line 260 of file mips-fbsd-tdep.c.

◆ MIPS_INST_DADDIU_A0_SP_N64

#define MIPS_INST_DADDIU_A0_SP_N64
Value:
(0x67a40000 \

Definition at line 446 of file mips-fbsd-tdep.c.

◆ MIPS_INST_LI_V0_SIGRETURN

#define MIPS_INST_LI_V0_SIGRETURN   0x24020000 + FBSD_SYS_sigreturn

Definition at line 258 of file mips-fbsd-tdep.c.

◆ MIPS_INST_SYSCALL

#define MIPS_INST_SYSCALL   0x0000000c

Definition at line 259 of file mips-fbsd-tdep.c.

◆ N64_SIGFRAME_UCONTEXT_OFFSET

#define N64_SIGFRAME_UCONTEXT_OFFSET   (32)

Definition at line 354 of file mips-fbsd-tdep.c.

Referenced by mips64_fbsd_sigframe_init().

◆ N64_SIGSET_T_SIZE

#define N64_SIGSET_T_SIZE   (16)

Definition at line 355 of file mips-fbsd-tdep.c.

◆ N64_UCONTEXT_FPREGS

#define N64_UCONTEXT_FPREGS   (N64_UCONTEXT_FPUSED + 8)

Definition at line 364 of file mips-fbsd-tdep.c.

Referenced by mips64_fbsd_sigframe_init().

◆ N64_UCONTEXT_FPUSED

#define N64_UCONTEXT_FPUSED   (N64_UCONTEXT_HI + 8)

Definition at line 363 of file mips-fbsd-tdep.c.

Referenced by mips64_fbsd_sigframe_init().

◆ N64_UCONTEXT_HI

#define N64_UCONTEXT_HI   (N64_UCONTEXT_LO + 8)

Definition at line 362 of file mips-fbsd-tdep.c.

Referenced by mips64_fbsd_sigframe_init().

◆ N64_UCONTEXT_LO

#define N64_UCONTEXT_LO   (N64_UCONTEXT_SR + 8)

Definition at line 361 of file mips-fbsd-tdep.c.

Referenced by mips64_fbsd_sigframe_init().

◆ N64_UCONTEXT_ONSTACK

#define N64_UCONTEXT_ONSTACK   (N64_SIGSET_T_SIZE)

Definition at line 357 of file mips-fbsd-tdep.c.

◆ N64_UCONTEXT_PC

#define N64_UCONTEXT_PC   (N64_UCONTEXT_ONSTACK + 8)

Definition at line 358 of file mips-fbsd-tdep.c.

Referenced by mips64_fbsd_sigframe_init().

◆ N64_UCONTEXT_REG_SIZE

#define N64_UCONTEXT_REG_SIZE   8

Definition at line 366 of file mips-fbsd-tdep.c.

Referenced by mips64_fbsd_sigframe_init().

◆ N64_UCONTEXT_REGS

#define N64_UCONTEXT_REGS   (N64_UCONTEXT_PC + 8)

Definition at line 359 of file mips-fbsd-tdep.c.

Referenced by mips64_fbsd_sigframe_init().

◆ N64_UCONTEXT_SR

#define N64_UCONTEXT_SR   (N64_UCONTEXT_REGS + 8 * 32)

Definition at line 360 of file mips-fbsd-tdep.c.

Referenced by mips64_fbsd_sigframe_init().

◆ O32_SIGFRAME_UCONTEXT_OFFSET

#define O32_SIGFRAME_UCONTEXT_OFFSET   (16)

Definition at line 262 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_sigframe_init().

◆ O32_SIGSET_T_SIZE

#define O32_SIGSET_T_SIZE   (16)

Definition at line 263 of file mips-fbsd-tdep.c.

◆ O32_UCONTEXT_FPREGS

#define O32_UCONTEXT_FPREGS   (O32_UCONTEXT_FPUSED + 4)

Definition at line 272 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_sigframe_init().

◆ O32_UCONTEXT_FPUSED

#define O32_UCONTEXT_FPUSED   (O32_UCONTEXT_HI + 4)

Definition at line 271 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_sigframe_init().

◆ O32_UCONTEXT_HI

#define O32_UCONTEXT_HI   (O32_UCONTEXT_LO + 4)

Definition at line 270 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_sigframe_init().

◆ O32_UCONTEXT_LO

#define O32_UCONTEXT_LO   (O32_UCONTEXT_SR + 4)

Definition at line 269 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_sigframe_init().

◆ O32_UCONTEXT_ONSTACK

#define O32_UCONTEXT_ONSTACK   (O32_SIGSET_T_SIZE)

Definition at line 265 of file mips-fbsd-tdep.c.

◆ O32_UCONTEXT_PC

#define O32_UCONTEXT_PC   (O32_UCONTEXT_ONSTACK + 4)

Definition at line 266 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_sigframe_init().

◆ O32_UCONTEXT_REG_SIZE

#define O32_UCONTEXT_REG_SIZE   4

Definition at line 274 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_sigframe_init().

◆ O32_UCONTEXT_REGS

#define O32_UCONTEXT_REGS   (O32_UCONTEXT_PC + 4)

Definition at line 267 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_sigframe_init().

◆ O32_UCONTEXT_SR

#define O32_UCONTEXT_SR   (O32_UCONTEXT_REGS + 4 * 32)

Definition at line 268 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_sigframe_init().

Function Documentation

◆ _initialize_mips_fbsd_tdep()

void _initialize_mips_fbsd_tdep ( )

◆ mips64_fbsd_sigframe_init()

static void mips64_fbsd_sigframe_init ( const struct tramp_frame * self,
frame_info_ptr this_frame,
struct trad_frame_cache * cache,
CORE_ADDR func )
static

◆ mips_fbsd_collect_fpregs()

void mips_fbsd_collect_fpregs ( const struct regcache * regcache,
int regnum,
void * fpregs,
size_t regsize )

◆ mips_fbsd_collect_fpregset()

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

◆ mips_fbsd_collect_gregs()

void mips_fbsd_collect_gregs ( const struct regcache * regcache,
int regnum,
void * gregs,
size_t regsize )

◆ mips_fbsd_collect_gregset()

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

◆ mips_fbsd_collect_reg()

static void mips_fbsd_collect_reg ( const struct regcache * regcache,
int regnum,
void * addr,
size_t len )
static

Definition at line 60 of file mips-fbsd-tdep.c.

References reg_buffer::raw_collect_integer(), and regnum.

Referenced by mips_fbsd_collect_fpregs(), and mips_fbsd_collect_gregs().

◆ mips_fbsd_ilp32_fetch_link_map_offsets()

static struct link_map_offsets * mips_fbsd_ilp32_fetch_link_map_offsets ( void )
static

◆ mips_fbsd_init_abi()

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

◆ mips_fbsd_iterate_over_regset_sections()

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

◆ mips_fbsd_lp64_fetch_link_map_offsets()

static struct link_map_offsets * mips_fbsd_lp64_fetch_link_map_offsets ( void )
static

◆ mips_fbsd_sigframe_init()

static void mips_fbsd_sigframe_init ( const struct tramp_frame * self,
frame_info_ptr this_frame,
struct trad_frame_cache * cache,
CORE_ADDR func )
static

◆ mips_fbsd_skip_solib_resolver()

static CORE_ADDR mips_fbsd_skip_solib_resolver ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ mips_fbsd_supply_fpregs()

void mips_fbsd_supply_fpregs ( struct regcache * regcache,
int regnum,
const void * fpregs,
size_t regsize )

◆ mips_fbsd_supply_fpregset()

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

◆ mips_fbsd_supply_gregs()

void mips_fbsd_supply_gregs ( struct regcache * regcache,
int regnum,
const void * gregs,
size_t regsize )

◆ mips_fbsd_supply_gregset()

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

◆ mips_fbsd_supply_reg()

static void mips_fbsd_supply_reg ( struct regcache * regcache,
int regnum,
const void * addr,
size_t len )
static

Definition at line 50 of file mips-fbsd-tdep.c.

References reg_buffer::raw_supply_integer(), and regnum.

Referenced by mips_fbsd_supply_fpregs(), and mips_fbsd_supply_gregs().

Variable Documentation

◆ mips64_fbsd_sigframe

const struct tramp_frame mips64_fbsd_sigframe
static
Initial value:
=
{
{
{ MIPS_INST_DADDIU_A0_SP_N64, ULONGEST_MAX },
{ MIPS_INST_LI_V0_SIGRETURN, ULONGEST_MAX },
{ MIPS_INST_SYSCALL, ULONGEST_MAX },
{ MIPS_INST_BREAK, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
@ SIGTRAMP_FRAME
Definition frame.h:198
#define MIPS_INST_BREAK
#define MIPS_INST_DADDIU_A0_SP_N64
#define MIPS_INST_LI_V0_SIGRETURN
static void mips64_fbsd_sigframe_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *cache, CORE_ADDR func)
#define MIPS_INST_SYSCALL
@ MIPS_INSN32_SIZE
Definition mips-tdep.h:161
#define TRAMP_SENTINEL_INSN
Definition tramp-frame.h:44

Definition at line 449 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_init_abi().

◆ mips_fbsd_fpregset

const struct regset mips_fbsd_fpregset
static
Initial value:
=
{
NULL,
}
static void mips_fbsd_collect_fpregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
static void mips_fbsd_supply_fpregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)

Definition at line 231 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_iterate_over_regset_sections().

◆ mips_fbsd_gregset

const struct regset mips_fbsd_gregset
static
Initial value:
=
{
NULL,
}
static void mips_fbsd_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
static void mips_fbsd_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)

Definition at line 224 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_iterate_over_regset_sections().

◆ mips_fbsd_sigframe

const struct tramp_frame mips_fbsd_sigframe
static
Initial value:
=
{
{
{ MIPS_INST_ADDIU_A0_SP_O32, ULONGEST_MAX },
{ MIPS_INST_LI_V0_SIGRETURN, ULONGEST_MAX },
{ MIPS_INST_SYSCALL, ULONGEST_MAX },
{ MIPS_INST_BREAK, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
static void mips_fbsd_sigframe_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *cache, CORE_ADDR func)
#define MIPS_INST_ADDIU_A0_SP_O32

Definition at line 340 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_init_abi().

◆ mipsn32_fbsd_sigframe

const struct tramp_frame mipsn32_fbsd_sigframe
static
Initial value:
=
{
{
{ MIPS_INST_ADDIU_A0_SP_N32, ULONGEST_MAX },
{ MIPS_INST_LI_V0_SIGRETURN, ULONGEST_MAX },
{ MIPS_INST_SYSCALL, ULONGEST_MAX },
{ MIPS_INST_BREAK, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
#define MIPS_INST_ADDIU_A0_SP_N32

Definition at line 432 of file mips-fbsd-tdep.c.

Referenced by mips_fbsd_init_abi().