GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
rs6000-aix-tdep.c File Reference
#include "defs.h"
#include "osabi.h"
#include "regcache.h"
#include "regset.h"
#include "gdbtypes.h"
#include "gdbcore.h"
#include "target.h"
#include "value.h"
#include "infcall.h"
#include "objfiles.h"
#include "breakpoint.h"
#include "ppc-tdep.h"
#include "rs6000-aix-tdep.h"
#include "xcoffread.h"
#include "solib.h"
#include "solib-aix.h"
#include "target-float.h"
#include "gdbsupport/xml-utils.h"
#include "trad-frame.h"
#include "frame-unwind.h"

Go to the source code of this file.

Classes

struct  ldinfo_field
 
struct  ld_info_desc
 
struct  ld_info
 

Macros

#define SIG_FRAME_PC_OFFSET   96
 
#define SIG_FRAME_LR_OFFSET   108
 
#define SIG_FRAME_FP_OFFSET   284
 
#define SIG_FRAME_LR_OFFSET64   424
 
#define SIG_FRAME_FP_OFFSET64   168
 
#define AIX_TEXT_SEGMENT_BASE   0x10000000
 

Functions

static struct trad_frame_cacheaix_sighandle_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
static void aix_sighandle_frame_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id)
 
static struct valueaix_sighandle_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum)
 
static int aix_sighandle_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
 
static void rs6000_aix_supply_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
 
static void rs6000_aix_collect_regset (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
 
static void rs6000_aix_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
static CORE_ADDR rs6000_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr)
 
static enum return_value_convention rs6000_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static CORE_ADDR rs6000_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
 
static CORE_ADDR branch_dest (struct regcache *regcache, int opcode, int instr, CORE_ADDR pc, CORE_ADDR safety)
 
static std::vector< CORE_ADDR > rs6000_software_single_step (struct regcache *regcache)
 
static const char * rs6000_aix_auto_wide_charset (void)
 
static enum gdb_osabi rs6000_aix_osabi_sniffer (bfd *abfd)
 
static struct ld_info rs6000_aix_extract_ld_info (struct gdbarch *gdbarch, const gdb_byte *ldi_buf)
 
static void rs6000_aix_shared_library_to_xml (struct ld_info *ldi, struct obstack *obstack)
 
ULONGEST rs6000_aix_ld_info_to_xml (struct gdbarch *gdbarch, const gdb_byte *ldi_buf, gdb_byte *readbuf, ULONGEST offset, ULONGEST len, int close_ldinfo_fd)
 
static ULONGEST rs6000_aix_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
 
static void rs6000_aix_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
void _initialize_rs6000_aix_tdep ()
 

Variables

static const struct frame_unwind aix_sighandle_frame_unwind
 
static struct ppc_reg_offsets rs6000_aix32_reg_offsets
 
static struct ppc_reg_offsets rs6000_aix64_reg_offsets
 
static const struct regset rs6000_aix32_regset
 
static const struct regset rs6000_aix64_regset
 
static const struct ld_info_desc ld_info32_desc
 
static const struct ld_info_desc ld_info64_desc
 

Macro Definition Documentation

◆ AIX_TEXT_SEGMENT_BASE

#define AIX_TEXT_SEGMENT_BASE   0x10000000

Definition at line 69 of file rs6000-aix-tdep.c.

◆ SIG_FRAME_FP_OFFSET

#define SIG_FRAME_FP_OFFSET   284

Definition at line 60 of file rs6000-aix-tdep.c.

◆ SIG_FRAME_FP_OFFSET64

#define SIG_FRAME_FP_OFFSET64   168

Definition at line 66 of file rs6000-aix-tdep.c.

◆ SIG_FRAME_LR_OFFSET

#define SIG_FRAME_LR_OFFSET   108

Definition at line 58 of file rs6000-aix-tdep.c.

◆ SIG_FRAME_LR_OFFSET64

#define SIG_FRAME_LR_OFFSET64   424

Definition at line 64 of file rs6000-aix-tdep.c.

◆ SIG_FRAME_PC_OFFSET

#define SIG_FRAME_PC_OFFSET   96

Definition at line 57 of file rs6000-aix-tdep.c.

Function Documentation

◆ _initialize_rs6000_aix_tdep()

void _initialize_rs6000_aix_tdep ( )

◆ aix_sighandle_frame_cache()

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

◆ aix_sighandle_frame_prev_register()

static struct value * aix_sighandle_frame_prev_register ( frame_info_ptr  this_frame,
void **  this_prologue_cache,
int  regnum 
)
static

◆ aix_sighandle_frame_sniffer()

static int aix_sighandle_frame_sniffer ( const struct frame_unwind self,
frame_info_ptr  this_frame,
void **  this_prologue_cache 
)
static

◆ aix_sighandle_frame_this_id()

static void aix_sighandle_frame_this_id ( frame_info_ptr  this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
)
static

◆ branch_dest()

static CORE_ADDR branch_dest ( struct regcache regcache,
int  opcode,
int  instr,
CORE_ADDR  pc,
CORE_ADDR  safety 
)
static

◆ rs6000_aix_auto_wide_charset()

static const char * rs6000_aix_auto_wide_charset ( void  )
static

Definition at line 830 of file rs6000-aix-tdep.c.

Referenced by rs6000_aix_init_osabi().

◆ rs6000_aix_collect_regset()

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

Definition at line 232 of file rs6000-aix-tdep.c.

References ppc_collect_fpregset(), ppc_collect_gregset(), and regnum.

◆ rs6000_aix_core_xfer_shared_libraries_aix()

static ULONGEST rs6000_aix_core_xfer_shared_libraries_aix ( struct gdbarch gdbarch,
gdb_byte *  readbuf,
ULONGEST  offset,
ULONGEST  len 
)
static

Definition at line 1114 of file rs6000-aix-tdep.c.

References core_bfd, and rs6000_aix_ld_info_to_xml().

Referenced by rs6000_aix_init_osabi().

◆ rs6000_aix_extract_ld_info()

static struct ld_info rs6000_aix_extract_ld_info ( struct gdbarch gdbarch,
const gdb_byte *  ldi_buf 
)
static

◆ rs6000_aix_init_osabi()

static void rs6000_aix_init_osabi ( struct gdbarch_info  info,
struct gdbarch gdbarch 
)
static

◆ rs6000_aix_iterate_over_regset_sections()

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

◆ rs6000_aix_ld_info_to_xml()

ULONGEST rs6000_aix_ld_info_to_xml ( struct gdbarch gdbarch,
const gdb_byte *  ldi_buf,
gdb_byte *  readbuf,
ULONGEST  offset,
ULONGEST  len,
int  close_ldinfo_fd 
)

◆ rs6000_aix_osabi_sniffer()

static enum gdb_osabi rs6000_aix_osabi_sniffer ( bfd *  abfd)
static

◆ rs6000_aix_shared_library_to_xml()

static void rs6000_aix_shared_library_to_xml ( struct ld_info ldi,
struct obstack *  obstack 
)
static

◆ rs6000_aix_supply_regset()

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

Definition at line 218 of file rs6000-aix-tdep.c.

References ppc_supply_fpregset(), ppc_supply_gregset(), and regnum.

◆ rs6000_convert_from_func_ptr_addr()

static CORE_ADDR rs6000_convert_from_func_ptr_addr ( struct gdbarch gdbarch,
CORE_ADDR  addr,
struct target_ops targ 
)
static

◆ rs6000_push_dummy_call()

static CORE_ADDR rs6000_push_dummy_call ( struct gdbarch gdbarch,
struct value function,
struct regcache regcache,
CORE_ADDR  bp_addr,
int  nargs,
struct value **  args,
CORE_ADDR  sp,
function_call_return_method  return_method,
CORE_ADDR  struct_addr 
)
static

◆ rs6000_return_value()

static enum return_value_convention rs6000_return_value ( struct gdbarch gdbarch,
struct value function,
struct type valtype,
struct regcache regcache,
gdb_byte *  readbuf,
const gdb_byte *  writebuf 
)
static

◆ rs6000_software_single_step()

static std::vector< CORE_ADDR > rs6000_software_single_step ( struct regcache regcache)
static

Variable Documentation

◆ aix_sighandle_frame_unwind

const struct frame_unwind aix_sighandle_frame_unwind
static
Initial value:
= {
"rs6000 aix sighandle",
NULL,
}
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
@ SIGTRAMP_FRAME
Definition frame.h:190
static int aix_sighandle_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
static struct value * aix_sighandle_frame_prev_register(frame_info_ptr this_frame, void **this_prologue_cache, int regnum)
static void aix_sighandle_frame_this_id(frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id)

Definition at line 160 of file rs6000-aix-tdep.c.

Referenced by rs6000_aix_init_osabi().

◆ ld_info32_desc

const struct ld_info_desc ld_info32_desc
static
Initial value:
=
{
{0, 4},
{4, 4},
{8, 4},
{12, 4},
{16, 4},
{20, 4},
{24, 2},
}

Definition at line 933 of file rs6000-aix-tdep.c.

Referenced by rs6000_aix_extract_ld_info().

◆ ld_info64_desc

const struct ld_info_desc ld_info64_desc
static
Initial value:
=
{
{0, 4},
{8, 4},
{16, 8},
{24, 8},
{32, 8},
{40, 8},
{48, 2},
}

Definition at line 946 of file rs6000-aix-tdep.c.

Referenced by rs6000_aix_extract_ld_info().

◆ rs6000_aix32_reg_offsets

struct ppc_reg_offsets rs6000_aix32_reg_offsets
static
Initial value:
=
{
208,
4,
4,
24,
28,
32,
36,
40,
44,
48,
336,
56,
4
}

Definition at line 172 of file rs6000-aix-tdep.c.

◆ rs6000_aix32_regset

const struct regset rs6000_aix32_regset
static
Initial value:
=
{
}
static void rs6000_aix_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
static struct ppc_reg_offsets rs6000_aix32_reg_offsets
static void rs6000_aix_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)

Definition at line 242 of file rs6000-aix-tdep.c.

Referenced by rs6000_aix_iterate_over_regset_sections().

◆ rs6000_aix64_reg_offsets

struct ppc_reg_offsets rs6000_aix64_reg_offsets
static
Initial value:
=
{
0,
8,
4,
264,
256,
288,
272,
280,
292,
-1,
312,
296,
4
}

Definition at line 192 of file rs6000-aix-tdep.c.

◆ rs6000_aix64_regset

const struct regset rs6000_aix64_regset
static
Initial value:
=
{
}
static struct ppc_reg_offsets rs6000_aix64_reg_offsets

Definition at line 249 of file rs6000-aix-tdep.c.

Referenced by rs6000_aix_iterate_over_regset_sections().