GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
i386-linux-nat.c File Reference
#include "defs.h"
#include "inferior.h"
#include "gdbcore.h"
#include "regcache.h"
#include "elf/common.h"
#include "nat/gdb_ptrace.h"
#include <sys/uio.h>
#include "gregset.h"
#include "gdb_proc_service.h"
#include "i386-linux-nat.h"
#include "i387-tdep.h"
#include "i386-tdep.h"
#include "i386-linux-tdep.h"
#include "gdbsupport/x86-xstate.h"
#include "x86-linux-nat.h"
#include "nat/linux-ptrace.h"
#include "inf-ptrace.h"

Go to the source code of this file.

Classes

struct  i386_linux_nat_target
 

Macros

#define GETREGS_SUPPLIES(regno)    ((0 <= (regno) && (regno) <= 15) || (regno) == I386_LINUX_ORIG_EAX_REGNUM)
 
#define GETFPXREGS_SUPPLIES(regno)    (I386_ST0_REGNUM <= (regno) && (regno) < I386_SSE_NUM_REGS)
 
#define GETXSTATEREGS_SUPPLIES(regno)    (I386_ST0_REGNUM <= (regno) && (regno) < I386_PKEYS_NUM_REGS)
 
#define LINUX_SYSCALL_LEN   (sizeof linux_syscall)
 
#define LINUX_SYSCALL_REGNUM   I386_EAX_REGNUM
 
#define SYS_sigreturn   0x77
 
#define SYS_rt_sigreturn   0xad
 
#define LINUX_SIGCONTEXT_EFLAGS_OFFSET   (64)
 

Functions

static void fetch_register (struct regcache *regcache, int regno)
 
static void store_register (const struct regcache *regcache, int regno)
 
void supply_gregset (struct regcache *regcache, const elf_gregset_t *gregsetp)
 
void fill_gregset (const struct regcache *regcache, elf_gregset_t *gregsetp, int regno)
 
static void fetch_regs (struct regcache *regcache, int tid)
 
static void store_regs (const struct regcache *regcache, int tid, int regno)
 
void supply_fpregset (struct regcache *regcache, const elf_fpregset_t *fpregsetp)
 
void fill_fpregset (const struct regcache *regcache, elf_fpregset_t *fpregsetp, int regno)
 
static void fetch_fpregs (struct regcache *regcache, int tid)
 
static void store_fpregs (const struct regcache *regcache, int tid, int regno)
 
static int fetch_xstateregs (struct regcache *regcache, int tid)
 
static int store_xstateregs (const struct regcache *regcache, int tid, int regno)
 
static int fetch_fpxregs (struct regcache *regcache, int tid)
 
static int store_fpxregs (const struct regcache *regcache, int tid, int regno)
 
ps_err_e ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
 
void _initialize_i386_linux_nat ()
 

Variables

static i386_linux_nat_target the_i386_linux_nat_target
 
int have_ptrace_getregs
 
int have_ptrace_getfpxregs
 
static const unsigned char linux_syscall [] = { 0xcd, 0x80 }
 

Macro Definition Documentation

◆ GETFPXREGS_SUPPLIES

#define GETFPXREGS_SUPPLIES ( regno)     (I386_ST0_REGNUM <= (regno) && (regno) < I386_SSE_NUM_REGS)

◆ GETREGS_SUPPLIES

#define GETREGS_SUPPLIES ( regno)     ((0 <= (regno) && (regno) <= 15) || (regno) == I386_LINUX_ORIG_EAX_REGNUM)

◆ GETXSTATEREGS_SUPPLIES

#define GETXSTATEREGS_SUPPLIES ( regno)     (I386_ST0_REGNUM <= (regno) && (regno) < I386_PKEYS_NUM_REGS)

◆ LINUX_SIGCONTEXT_EFLAGS_OFFSET

#define LINUX_SIGCONTEXT_EFLAGS_OFFSET   (64)

Definition at line 643 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::low_resume().

◆ LINUX_SYSCALL_LEN

#define LINUX_SYSCALL_LEN   (sizeof linux_syscall)

Definition at line 627 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::low_resume().

◆ LINUX_SYSCALL_REGNUM

#define LINUX_SYSCALL_REGNUM   I386_EAX_REGNUM

Definition at line 630 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::low_resume().

◆ SYS_rt_sigreturn

#define SYS_rt_sigreturn   0xad

Definition at line 639 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::low_resume().

◆ SYS_sigreturn

#define SYS_sigreturn   0x77

Definition at line 636 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::low_resume().

Function Documentation

◆ _initialize_i386_linux_nat()

void _initialize_i386_linux_nat ( )

Definition at line 718 of file i386-linux-nat.c.

References add_inf_child_target(), linux_target, and the_i386_linux_nat_target.

◆ fetch_fpregs()

static void fetch_fpregs ( struct regcache * regcache,
int tid )
static

Definition at line 312 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::fetch_registers().

◆ fetch_fpxregs()

static int fetch_fpxregs ( struct regcache * regcache,
int tid )
static

Definition at line 444 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::fetch_registers().

◆ fetch_register()

static void fetch_register ( struct regcache * regcache,
int regno )
static

◆ fetch_regs()

static void fetch_regs ( struct regcache * regcache,
int tid )
static

Definition at line 248 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::fetch_registers().

◆ fetch_xstateregs()

static int fetch_xstateregs ( struct regcache * regcache,
int tid )
static

◆ fill_fpregset()

void fill_fpregset ( const struct regcache * regcache,
elf_fpregset_t * fpregsetp,
int regno )

Definition at line 270 of file i386-linux-nat.c.

References i387_collect_fsave().

◆ fill_gregset()

void fill_gregset ( const struct regcache * regcache,
elf_gregset_t * gregsetp,
int regno )

◆ ps_get_thread_area()

ps_err_e ps_get_thread_area ( struct ps_prochandle * ph,
lwpid_t lwpid,
int idx,
void ** base )

Definition at line 606 of file i386-linux-nat.c.

References x86_linux_get_thread_area().

◆ store_fpregs()

static void store_fpregs ( const struct regcache * regcache,
int tid,
int regno )
static

Definition at line 317 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::store_registers().

◆ store_fpxregs()

static int store_fpxregs ( const struct regcache * regcache,
int tid,
int regno )
static

Definition at line 450 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::store_registers().

◆ store_register()

static void store_register ( const struct regcache * regcache,
int regno )
static

◆ store_regs()

static void store_regs ( const struct regcache * regcache,
int tid,
int regno )
static

Definition at line 249 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::store_registers().

◆ store_xstateregs()

static int store_xstateregs ( const struct regcache * regcache,
int tid,
int regno )
static

◆ supply_fpregset()

void supply_fpregset ( struct regcache * regcache,
const elf_fpregset_t * fpregsetp )

Definition at line 260 of file i386-linux-nat.c.

References i387_supply_fsave().

◆ supply_gregset()

void supply_gregset ( struct regcache * regcache,
const elf_gregset_t * gregsetp )

Variable Documentation

◆ have_ptrace_getfpxregs

int have_ptrace_getfpxregs
Initial value:
=
0

Definition at line 93 of file i386-linux-nat.c.

Referenced by x86_linux_nat_target::read_description().

◆ have_ptrace_getregs

int have_ptrace_getregs

◆ linux_syscall

const unsigned char linux_syscall[] = { 0xcd, 0x80 }
static

Definition at line 625 of file i386-linux-nat.c.

Referenced by i386_linux_nat_target::low_resume().

◆ the_i386_linux_nat_target

i386_linux_nat_target the_i386_linux_nat_target
static

Definition at line 50 of file i386-linux-nat.c.

Referenced by _initialize_i386_linux_nat().