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

Go to the source code of this file.

Macros

#define I386_FBSD_SIZEOF_GREGSET   (19 * 4)
 
#define I386_FBSD_SIZEOF_SEGBASES_REGSET   (2 * 4)
 
#define I386_SIGFRAME_UCONTEXT_OFFSET   32
 
#define I386_UCONTEXT_MCONTEXT_OFFSET   16
 
#define I386_SIZEOF_MCONTEXT_T   640
 

Functions

static void i386_fbsd_sigframe_init (const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
 
uint64_t i386_fbsd_core_read_xsave_info (bfd *abfd, x86_xsave_layout &layout)
 
bool i386_fbsd_core_read_x86_xsave_layout (struct gdbarch *gdbarch, x86_xsave_layout &layout)
 
static const struct target_desci386fbsd_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
 
static void i386fbsd_supply_xstateregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *xstateregs, size_t len)
 
static void i386fbsd_collect_xstateregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *xstateregs, size_t len)
 
static void i386fbsd_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
static CORE_ADDR i386fbsd_get_thread_local_address (struct gdbarch *gdbarch, ptid_t ptid, CORE_ADDR lm_addr, CORE_ADDR offset)
 
static void i386fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
void _initialize_i386fbsd_tdep ()
 

Variables

static const struct regcache_map_entry i386_fbsd_gregmap []
 
static const struct regcache_map_entry i386_fbsd_segbases_regmap []
 
static const struct regcache_map_entry i386_fbsd_mcregmap []
 
const struct regset i386_fbsd_gregset
 
const struct regset i386_fbsd_segbases_regset
 
static const struct tramp_frame i386_fbsd_sigframe
 
static const struct tramp_frame i386_fbsd64_sigframe
 
static const struct regset i386fbsd_xstateregset
 

Macro Definition Documentation

◆ I386_FBSD_SIZEOF_GREGSET

#define I386_FBSD_SIZEOF_GREGSET   (19 * 4)

Definition at line 36 of file i386-fbsd-tdep.c.

Referenced by i386fbsd_iterate_over_regset_sections().

◆ I386_FBSD_SIZEOF_SEGBASES_REGSET

#define I386_FBSD_SIZEOF_SEGBASES_REGSET   (2 * 4)

Definition at line 39 of file i386-fbsd-tdep.c.

Referenced by i386fbsd_iterate_over_regset_sections().

◆ I386_SIGFRAME_UCONTEXT_OFFSET

#define I386_SIGFRAME_UCONTEXT_OFFSET   32

Definition at line 151 of file i386-fbsd-tdep.c.

Referenced by i386_fbsd_sigframe_init().

◆ I386_SIZEOF_MCONTEXT_T

#define I386_SIZEOF_MCONTEXT_T   640

Definition at line 153 of file i386-fbsd-tdep.c.

Referenced by i386_fbsd_sigframe_init().

◆ I386_UCONTEXT_MCONTEXT_OFFSET

#define I386_UCONTEXT_MCONTEXT_OFFSET   16

Definition at line 152 of file i386-fbsd-tdep.c.

Referenced by i386_fbsd_sigframe_init().

Function Documentation

◆ _initialize_i386fbsd_tdep()

void _initialize_i386fbsd_tdep ( )

◆ i386_fbsd_core_read_x86_xsave_layout()

bool i386_fbsd_core_read_x86_xsave_layout ( struct gdbarch * gdbarch,
x86_xsave_layout & layout )

Definition at line 278 of file i386-fbsd-tdep.c.

References core_bfd, and i386_fbsd_core_read_xsave_info().

Referenced by amd64fbsd_init_abi(), and i386fbsd_init_abi().

◆ i386_fbsd_core_read_xsave_info()

uint64_t i386_fbsd_core_read_xsave_info ( bfd * abfd,
x86_xsave_layout & layout )

◆ i386_fbsd_sigframe_init()

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

◆ i386fbsd_collect_xstateregset()

static void i386fbsd_collect_xstateregset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * xstateregs,
size_t len )
static

Definition at line 311 of file i386-fbsd-tdep.c.

References i387_collect_xsave(), and regnum.

◆ i386fbsd_core_read_description()

static const struct target_desc * i386fbsd_core_read_description ( struct gdbarch * gdbarch,
struct target_ops * target,
bfd * abfd )
static

Definition at line 287 of file i386-fbsd-tdep.c.

References i386_fbsd_core_read_xsave_info(), and i386_target_description().

Referenced by i386fbsd_init_abi().

◆ i386fbsd_get_thread_local_address()

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

◆ i386fbsd_init_abi()

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

◆ i386fbsd_iterate_over_regset_sections()

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

◆ i386fbsd_supply_xstateregset()

static void i386fbsd_supply_xstateregset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * xstateregs,
size_t len )
static

Definition at line 301 of file i386-fbsd-tdep.c.

References i387_supply_xsave(), and regnum.

Variable Documentation

◆ i386_fbsd64_sigframe

const struct tramp_frame i386_fbsd64_sigframe
static
Initial value:
=
{
1,
{
{0x8d, ULONGEST_MAX},
{0x44, ULONGEST_MAX},
{0x24, ULONGEST_MAX},
{0x20, ULONGEST_MAX},
{0x50, ULONGEST_MAX},
{0xb8, ULONGEST_MAX},
{0xa1, ULONGEST_MAX},
{0x01, ULONGEST_MAX},
{0x00, ULONGEST_MAX},
{0x00, ULONGEST_MAX},
{0x50, ULONGEST_MAX},
{0xcd, ULONGEST_MAX},
{0x80, ULONGEST_MAX},
{TRAMP_SENTINEL_INSN, ULONGEST_MAX}
},
}
@ SIGTRAMP_FRAME
Definition frame.h:198
static void i386_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 221 of file i386-fbsd-tdep.c.

Referenced by i386fbsd_init_abi().

◆ i386_fbsd_gregmap

const struct regcache_map_entry i386_fbsd_gregmap[]
static
Initial value:
=
{
{ 1, I386_FS_REGNUM, 4 },
{ 1, I386_ES_REGNUM, 4 },
{ 1, I386_DS_REGNUM, 4 },
{ 1, I386_EDI_REGNUM, 0 },
{ 1, I386_ESI_REGNUM, 0 },
{ 1, I386_EBP_REGNUM, 0 },
{ 1, REGCACHE_MAP_SKIP, 4 },
{ 1, I386_EBX_REGNUM, 0 },
{ 1, I386_EDX_REGNUM, 0 },
{ 1, I386_ECX_REGNUM, 0 },
{ 1, I386_EAX_REGNUM, 0 },
{ 1, REGCACHE_MAP_SKIP, 4 },
{ 1, REGCACHE_MAP_SKIP, 4 },
{ 1, I386_EIP_REGNUM, 0 },
{ 1, I386_CS_REGNUM, 4 },
{ 1, I386_EFLAGS_REGNUM, 0 },
{ 1, I386_ESP_REGNUM, 0 },
{ 1, I386_SS_REGNUM, 4 },
{ 1, I386_GS_REGNUM, 4 },
{ 0 }
}
@ I386_EFLAGS_REGNUM
Definition i386-tdep.h:290
@ I386_ESI_REGNUM
Definition i386-tdep.h:287
@ I386_FS_REGNUM
Definition i386-tdep.h:295
@ I386_ECX_REGNUM
Definition i386-tdep.h:282
@ I386_GS_REGNUM
Definition i386-tdep.h:296
@ I386_EIP_REGNUM
Definition i386-tdep.h:289
@ I386_EBP_REGNUM
Definition i386-tdep.h:286
@ I386_ES_REGNUM
Definition i386-tdep.h:294
@ I386_CS_REGNUM
Definition i386-tdep.h:291
@ I386_EAX_REGNUM
Definition i386-tdep.h:281
@ I386_SS_REGNUM
Definition i386-tdep.h:292
@ I386_EDX_REGNUM
Definition i386-tdep.h:283
@ I386_ESP_REGNUM
Definition i386-tdep.h:285
@ I386_EBX_REGNUM
Definition i386-tdep.h:284
@ I386_DS_REGNUM
Definition i386-tdep.h:293
@ I386_EDI_REGNUM
Definition i386-tdep.h:288
@ REGCACHE_MAP_SKIP
Definition regcache.h:121

Definition at line 43 of file i386-fbsd-tdep.c.

◆ i386_fbsd_gregset

const struct regset i386_fbsd_gregset
Initial value:
=
{
}
static const struct regcache_map_entry i386_fbsd_gregmap[]
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 111 of file i386-fbsd-tdep.c.

Referenced by i386_fbsd_nat_target::fetch_registers(), i386fbsd_iterate_over_regset_sections(), and i386_fbsd_nat_target::store_registers().

◆ i386_fbsd_mcregmap

const struct regcache_map_entry i386_fbsd_mcregmap[]
static

Definition at line 77 of file i386-fbsd-tdep.c.

Referenced by i386_fbsd_sigframe_init().

◆ i386_fbsd_segbases_regmap

const struct regcache_map_entry i386_fbsd_segbases_regmap[]
static
Initial value:
=
{
{ 1, I386_FSBASE_REGNUM, 0 },
{ 1, I386_GSBASE_REGNUM, 0 },
{ 0 }
}
@ I386_GSBASE_REGNUM
Definition i386-tdep.h:311
@ I386_FSBASE_REGNUM
Definition i386-tdep.h:310

Definition at line 67 of file i386-fbsd-tdep.c.

◆ i386_fbsd_segbases_regset

const struct regset i386_fbsd_segbases_regset
Initial value:
=
{
}
static const struct regcache_map_entry i386_fbsd_segbases_regmap[]

Definition at line 116 of file i386-fbsd-tdep.c.

Referenced by i386fbsd_iterate_over_regset_sections().

◆ i386_fbsd_sigframe

const struct tramp_frame i386_fbsd_sigframe
static

Definition at line 181 of file i386-fbsd-tdep.c.

Referenced by i386fbsd_init_abi().

◆ i386fbsd_xstateregset

const struct regset i386fbsd_xstateregset
static
Initial value:
=
{
NULL,
}
static void i386fbsd_collect_xstateregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *xstateregs, size_t len)
static void i386fbsd_supply_xstateregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *xstateregs, size_t len)

Definition at line 320 of file i386-fbsd-tdep.c.

Referenced by i386fbsd_iterate_over_regset_sections().