GDB (xrefs)
Loading...
Searching...
No Matches
Macros | Enumerations | Functions | Variables
mips-linux-tdep.c File Reference
#include "defs.h"
#include "gdbcore.h"
#include "target.h"
#include "solib-svr4.h"
#include "osabi.h"
#include "mips-tdep.h"
#include "frame.h"
#include "regcache.h"
#include "trad-frame.h"
#include "tramp-frame.h"
#include "gdbtypes.h"
#include "objfiles.h"
#include "solib.h"
#include "solist.h"
#include "symtab.h"
#include "target-descriptions.h"
#include "regset.h"
#include "mips-linux-tdep.h"
#include "glibc-tdep.h"
#include "linux-tdep.h"
#include "xml-syscall.h"
#include "gdbsupport/gdb_signals.h"
#include "features/mips-linux.c"
#include "features/mips-dsp-linux.c"
#include "features/mips64-linux.c"
#include "features/mips64-dsp-linux.c"

Go to the source code of this file.

Macros

#define MIPS_LINUX_JB_ELEMENT_SIZE   4
 
#define MIPS_LINUX_JB_PC   0
 
#define MIPS64_LINUX_JB_PC   0
 
#define MIPS_NR_LINUX   4000
 
#define MIPS_NR_N64_LINUX   5000
 
#define MIPS_NR_N32_LINUX   6000
 
#define MIPS_NR_sigreturn   MIPS_NR_LINUX + 119
 
#define MIPS_NR_rt_sigreturn   MIPS_NR_LINUX + 193
 
#define MIPS_NR_N64_rt_sigreturn   MIPS_NR_N64_LINUX + 211
 
#define MIPS_NR_N32_rt_sigreturn   MIPS_NR_N32_LINUX + 211
 
#define MIPS_INST_LI_V0_SIGRETURN   0x24020000 + MIPS_NR_sigreturn
 
#define MIPS_INST_LI_V0_RT_SIGRETURN   0x24020000 + MIPS_NR_rt_sigreturn
 
#define MIPS_INST_LI_V0_N64_RT_SIGRETURN   0x24020000 + MIPS_NR_N64_rt_sigreturn
 
#define MIPS_INST_LI_V0_N32_RT_SIGRETURN   0x24020000 + MIPS_NR_N32_rt_sigreturn
 
#define MIPS_INST_SYSCALL   0x0000000c
 
#define MICROMIPS_INST_LI_V0   0x3040
 
#define MICROMIPS_INST_POOL32A   0x0000
 
#define MICROMIPS_INST_SYSCALL   0x8b7c
 
#define SIGFRAME_SIGCONTEXT_OFFSET   (6 * 4)
 
#define RTSIGFRAME_SIGINFO_SIZE   128
 
#define STACK_T_SIZE   (3 * 4)
 
#define UCONTEXT_SIGCONTEXT_OFFSET   (2 * 4 + STACK_T_SIZE + 4)
 
#define RTSIGFRAME_SIGCONTEXT_OFFSET
 
#define SIGCONTEXT_PC   (1 * 8)
 
#define SIGCONTEXT_REGS   (2 * 8)
 
#define SIGCONTEXT_FPREGS   (34 * 8)
 
#define SIGCONTEXT_FPCSR   (66 * 8 + 4)
 
#define SIGCONTEXT_DSPCTL   (68 * 8 + 0)
 
#define SIGCONTEXT_HI   (69 * 8)
 
#define SIGCONTEXT_LO   (70 * 8)
 
#define SIGCONTEXT_CAUSE   (71 * 8 + 0)
 
#define SIGCONTEXT_BADVADDR   (71 * 8 + 4)
 
#define SIGCONTEXT_HI1   (71 * 8 + 0)
 
#define SIGCONTEXT_LO1   (71 * 8 + 4)
 
#define SIGCONTEXT_HI2   (72 * 8 + 0)
 
#define SIGCONTEXT_LO2   (72 * 8 + 4)
 
#define SIGCONTEXT_HI3   (73 * 8 + 0)
 
#define SIGCONTEXT_LO3   (73 * 8 + 4)
 
#define SIGCONTEXT_REG_SIZE   8
 
#define N32_STACK_T_SIZE   STACK_T_SIZE
 
#define N64_STACK_T_SIZE   (2 * 8 + 4)
 
#define N32_UCONTEXT_SIGCONTEXT_OFFSET   (2 * 4 + N32_STACK_T_SIZE + 4)
 
#define N64_UCONTEXT_SIGCONTEXT_OFFSET   (2 * 8 + N64_STACK_T_SIZE + 4)
 
#define N32_SIGFRAME_SIGCONTEXT_OFFSET
 
#define N64_SIGFRAME_SIGCONTEXT_OFFSET
 
#define N64_SIGCONTEXT_REGS   (0 * 8)
 
#define N64_SIGCONTEXT_FPREGS   (32 * 8)
 
#define N64_SIGCONTEXT_HI   (64 * 8)
 
#define N64_SIGCONTEXT_HI1   (65 * 8)
 
#define N64_SIGCONTEXT_HI2   (66 * 8)
 
#define N64_SIGCONTEXT_HI3   (67 * 8)
 
#define N64_SIGCONTEXT_LO   (68 * 8)
 
#define N64_SIGCONTEXT_LO1   (69 * 8)
 
#define N64_SIGCONTEXT_LO2   (70 * 8)
 
#define N64_SIGCONTEXT_LO3   (71 * 8)
 
#define N64_SIGCONTEXT_PC   (72 * 8)
 
#define N64_SIGCONTEXT_FPCSR   (73 * 8 + 0)
 
#define N64_SIGCONTEXT_DSPCTL   (74 * 8 + 0)
 
#define N64_SIGCONTEXT_REG_SIZE   8
 

Enumerations

enum  {
  MIPS_LINUX_SIGEMT = 7 , MIPS_LINUX_SIGBUS = 10 , MIPS_LINUX_SIGSYS = 12 , MIPS_LINUX_SIGUSR1 = 16 ,
  MIPS_LINUX_SIGUSR2 = 17 , MIPS_LINUX_SIGCHLD = 18 , MIPS_LINUX_SIGCLD = MIPS_LINUX_SIGCHLD , MIPS_LINUX_SIGPWR = 19 ,
  MIPS_LINUX_SIGWINCH = 20 , MIPS_LINUX_SIGURG = 21 , MIPS_LINUX_SIGIO = 22 , MIPS_LINUX_SIGPOLL = MIPS_LINUX_SIGIO ,
  MIPS_LINUX_SIGSTOP = 23 , MIPS_LINUX_SIGTSTP = 24 , MIPS_LINUX_SIGCONT = 25 , MIPS_LINUX_SIGTTIN = 26 ,
  MIPS_LINUX_SIGTTOU = 27 , MIPS_LINUX_SIGVTALRM = 28 , MIPS_LINUX_SIGPROF = 29 , MIPS_LINUX_SIGXCPU = 30 ,
  MIPS_LINUX_SIGXFSZ = 31 , MIPS_LINUX_SIGRTMIN = 32 , MIPS_LINUX_SIGRT64 = 64 , MIPS_LINUX_SIGRTMAX = 127
}
 

Functions

static int mips_linux_get_longjmp_target (frame_info_ptr frame, CORE_ADDR *pc)
 
static void supply_32bit_reg (struct regcache *regcache, int regnum, const void *addr)
 
void mips_supply_gregset (struct regcache *regcache, const mips_elf_gregset_t *gregsetp)
 
static void mips_supply_gregset_wrapper (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
 
void mips_fill_gregset (const struct regcache *regcache, mips_elf_gregset_t *gregsetp, int regno)
 
static void mips_fill_gregset_wrapper (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
 
static int mips64_linux_get_longjmp_target (frame_info_ptr frame, CORE_ADDR *pc)
 
static void supply_64bit_reg (struct regcache *regcache, int regnum, const gdb_byte *buf)
 
void mips64_supply_gregset (struct regcache *regcache, const mips64_elf_gregset_t *gregsetp)
 
static void mips64_supply_gregset_wrapper (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
 
void mips64_fill_gregset (const struct regcache *regcache, mips64_elf_gregset_t *gregsetp, int regno)
 
static void mips64_fill_gregset_wrapper (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
 
void mips64_supply_fpregset (struct regcache *regcache, const mips64_elf_fpregset_t *fpregsetp)
 
static void mips64_supply_fpregset_wrapper (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
 
void mips64_fill_fpregset (const struct regcache *regcache, mips64_elf_fpregset_t *fpregsetp, int regno)
 
static void mips64_fill_fpregset_wrapper (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
 
static void mips_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
static const struct target_descmips_linux_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
 
static int mips_linux_in_dynsym_stub (CORE_ADDR pc)
 
static int mips_linux_in_dynsym_resolve_code (CORE_ADDR pc)
 
static CORE_ADDR mips_linux_skip_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static void mips_linux_o32_sigframe_init (const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
 
static void mips_linux_n32n64_sigframe_init (const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
 
static int mips_linux_sigframe_validate (const struct tramp_frame *self, frame_info_ptr this_frame, CORE_ADDR *pc)
 
static int micromips_linux_sigframe_validate (const struct tramp_frame *self, frame_info_ptr this_frame, CORE_ADDR *pc)
 
static void mips_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
 
int mips_linux_restart_reg_p (struct gdbarch *gdbarch)
 
static CORE_ADDR mips_linux_syscall_next_pc (frame_info_ptr frame)
 
static LONGEST mips_linux_get_syscall_number (struct gdbarch *gdbarch, thread_info *thread)
 
static int mips_gdb_signal_to_target (struct gdbarch *gdbarch, enum gdb_signal signal)
 
static enum gdb_signal mips_gdb_signal_from_target (struct gdbarch *gdbarch, int signal)
 
static void mips_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
void _initialize_mips_linux_tdep ()
 

Variables

static struct target_so_ops mips_svr4_so_ops
 
static const struct regset mips_linux_gregset
 
static const struct regset mips64_linux_gregset
 
static const struct regset mips64_linux_fpregset
 
static const struct tramp_frame mips_linux_o32_sigframe
 
static const struct tramp_frame mips_linux_o32_rt_sigframe
 
static const struct tramp_frame mips_linux_n32_rt_sigframe
 
static const struct tramp_frame mips_linux_n64_rt_sigframe
 
static const struct tramp_frame micromips_linux_o32_sigframe
 
static const struct tramp_frame micromips_linux_o32_rt_sigframe
 
static const struct tramp_frame micromips_linux_n32_rt_sigframe
 
static const struct tramp_frame micromips_linux_n64_rt_sigframe
 

Macro Definition Documentation

◆ MICROMIPS_INST_LI_V0

#define MICROMIPS_INST_LI_V0   0x3040

Definition at line 748 of file mips-linux-tdep.c.

◆ MICROMIPS_INST_POOL32A

#define MICROMIPS_INST_POOL32A   0x0000

Definition at line 749 of file mips-linux-tdep.c.

◆ MICROMIPS_INST_SYSCALL

#define MICROMIPS_INST_SYSCALL   0x8b7c

Definition at line 750 of file mips-linux-tdep.c.

◆ MIPS64_LINUX_JB_PC

#define MIPS64_LINUX_JB_PC   0

Definition at line 246 of file mips-linux-tdep.c.

Referenced by mips64_linux_get_longjmp_target().

◆ MIPS_INST_LI_V0_N32_RT_SIGRETURN

#define MIPS_INST_LI_V0_N32_RT_SIGRETURN   0x24020000 + MIPS_NR_N32_rt_sigreturn

Definition at line 745 of file mips-linux-tdep.c.

◆ MIPS_INST_LI_V0_N64_RT_SIGRETURN

#define MIPS_INST_LI_V0_N64_RT_SIGRETURN   0x24020000 + MIPS_NR_N64_rt_sigreturn

Definition at line 744 of file mips-linux-tdep.c.

◆ MIPS_INST_LI_V0_RT_SIGRETURN

#define MIPS_INST_LI_V0_RT_SIGRETURN   0x24020000 + MIPS_NR_rt_sigreturn

Definition at line 743 of file mips-linux-tdep.c.

◆ MIPS_INST_LI_V0_SIGRETURN

#define MIPS_INST_LI_V0_SIGRETURN   0x24020000 + MIPS_NR_sigreturn

Definition at line 742 of file mips-linux-tdep.c.

◆ MIPS_INST_SYSCALL

#define MIPS_INST_SYSCALL   0x0000000c

Definition at line 746 of file mips-linux-tdep.c.

◆ MIPS_LINUX_JB_ELEMENT_SIZE

#define MIPS_LINUX_JB_ELEMENT_SIZE   4

Definition at line 92 of file mips-linux-tdep.c.

Referenced by mips_linux_get_longjmp_target().

◆ MIPS_LINUX_JB_PC

#define MIPS_LINUX_JB_PC   0

Definition at line 93 of file mips-linux-tdep.c.

Referenced by mips_linux_get_longjmp_target().

◆ MIPS_NR_LINUX

#define MIPS_NR_LINUX   4000

Definition at line 733 of file mips-linux-tdep.c.

◆ MIPS_NR_N32_LINUX

#define MIPS_NR_N32_LINUX   6000

Definition at line 735 of file mips-linux-tdep.c.

◆ MIPS_NR_N32_rt_sigreturn

#define MIPS_NR_N32_rt_sigreturn   MIPS_NR_N32_LINUX + 211

Definition at line 740 of file mips-linux-tdep.c.

Referenced by mips_linux_syscall_next_pc().

◆ MIPS_NR_N64_LINUX

#define MIPS_NR_N64_LINUX   5000

Definition at line 734 of file mips-linux-tdep.c.

◆ MIPS_NR_N64_rt_sigreturn

#define MIPS_NR_N64_rt_sigreturn   MIPS_NR_N64_LINUX + 211

Definition at line 739 of file mips-linux-tdep.c.

Referenced by mips_linux_syscall_next_pc().

◆ MIPS_NR_rt_sigreturn

#define MIPS_NR_rt_sigreturn   MIPS_NR_LINUX + 193

Definition at line 738 of file mips-linux-tdep.c.

Referenced by mips_linux_syscall_next_pc().

◆ MIPS_NR_sigreturn

#define MIPS_NR_sigreturn   MIPS_NR_LINUX + 119

Definition at line 737 of file mips-linux-tdep.c.

Referenced by mips_linux_syscall_next_pc().

◆ N32_SIGFRAME_SIGCONTEXT_OFFSET

#define N32_SIGFRAME_SIGCONTEXT_OFFSET
Value:
#define RTSIGFRAME_SIGINFO_SIZE
#define SIGFRAME_SIGCONTEXT_OFFSET
#define N32_UCONTEXT_SIGCONTEXT_OFFSET

Definition at line 1127 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N32_STACK_T_SIZE

#define N32_STACK_T_SIZE   STACK_T_SIZE

Definition at line 1123 of file mips-linux-tdep.c.

◆ N32_UCONTEXT_SIGCONTEXT_OFFSET

#define N32_UCONTEXT_SIGCONTEXT_OFFSET   (2 * 4 + N32_STACK_T_SIZE + 4)

Definition at line 1125 of file mips-linux-tdep.c.

◆ N64_SIGCONTEXT_DSPCTL

#define N64_SIGCONTEXT_DSPCTL   (74 * 8 + 0)

Definition at line 1146 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_FPCSR

#define N64_SIGCONTEXT_FPCSR   (73 * 8 + 0)

Definition at line 1145 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_FPREGS

#define N64_SIGCONTEXT_FPREGS   (32 * 8)

Definition at line 1135 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_HI

#define N64_SIGCONTEXT_HI   (64 * 8)

Definition at line 1136 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_HI1

#define N64_SIGCONTEXT_HI1   (65 * 8)

Definition at line 1137 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_HI2

#define N64_SIGCONTEXT_HI2   (66 * 8)

Definition at line 1138 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_HI3

#define N64_SIGCONTEXT_HI3   (67 * 8)

Definition at line 1139 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_LO

#define N64_SIGCONTEXT_LO   (68 * 8)

Definition at line 1140 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_LO1

#define N64_SIGCONTEXT_LO1   (69 * 8)

Definition at line 1141 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_LO2

#define N64_SIGCONTEXT_LO2   (70 * 8)

Definition at line 1142 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_LO3

#define N64_SIGCONTEXT_LO3   (71 * 8)

Definition at line 1143 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_PC

#define N64_SIGCONTEXT_PC   (72 * 8)

Definition at line 1144 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_REG_SIZE

#define N64_SIGCONTEXT_REG_SIZE   8

Definition at line 1148 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGCONTEXT_REGS

#define N64_SIGCONTEXT_REGS   (0 * 8)

Definition at line 1134 of file mips-linux-tdep.c.

Referenced by mips_linux_n32n64_sigframe_init().

◆ N64_SIGFRAME_SIGCONTEXT_OFFSET

#define N64_SIGFRAME_SIGCONTEXT_OFFSET

◆ N64_STACK_T_SIZE

#define N64_STACK_T_SIZE   (2 * 8 + 4)

Definition at line 1124 of file mips-linux-tdep.c.

◆ N64_UCONTEXT_SIGCONTEXT_OFFSET

#define N64_UCONTEXT_SIGCONTEXT_OFFSET   (2 * 8 + N64_STACK_T_SIZE + 4)

Definition at line 1126 of file mips-linux-tdep.c.

◆ RTSIGFRAME_SIGCONTEXT_OFFSET

#define RTSIGFRAME_SIGCONTEXT_OFFSET

◆ RTSIGFRAME_SIGINFO_SIZE

#define RTSIGFRAME_SIGINFO_SIZE   128

Definition at line 932 of file mips-linux-tdep.c.

◆ SIGCONTEXT_BADVADDR

#define SIGCONTEXT_BADVADDR   (71 * 8 + 4)

Definition at line 947 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_CAUSE

#define SIGCONTEXT_CAUSE   (71 * 8 + 0)

Definition at line 946 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_DSPCTL

#define SIGCONTEXT_DSPCTL   (68 * 8 + 0)

Definition at line 943 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_FPCSR

#define SIGCONTEXT_FPCSR   (66 * 8 + 4)

Definition at line 942 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_FPREGS

#define SIGCONTEXT_FPREGS   (34 * 8)

Definition at line 941 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_HI

#define SIGCONTEXT_HI   (69 * 8)

Definition at line 944 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_HI1

#define SIGCONTEXT_HI1   (71 * 8 + 0)

Definition at line 948 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_HI2

#define SIGCONTEXT_HI2   (72 * 8 + 0)

Definition at line 950 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_HI3

#define SIGCONTEXT_HI3   (73 * 8 + 0)

Definition at line 952 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_LO

#define SIGCONTEXT_LO   (70 * 8)

Definition at line 945 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_LO1

#define SIGCONTEXT_LO1   (71 * 8 + 4)

Definition at line 949 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_LO2

#define SIGCONTEXT_LO2   (72 * 8 + 4)

Definition at line 951 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_LO3

#define SIGCONTEXT_LO3   (73 * 8 + 4)

Definition at line 953 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_PC

#define SIGCONTEXT_PC   (1 * 8)

Definition at line 939 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_REG_SIZE

#define SIGCONTEXT_REG_SIZE   8

Definition at line 955 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGCONTEXT_REGS

#define SIGCONTEXT_REGS   (2 * 8)

Definition at line 940 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ SIGFRAME_SIGCONTEXT_OFFSET

#define SIGFRAME_SIGCONTEXT_OFFSET   (6 * 4)

Definition at line 930 of file mips-linux-tdep.c.

Referenced by mips_linux_o32_sigframe_init().

◆ STACK_T_SIZE

#define STACK_T_SIZE   (3 * 4)

Definition at line 933 of file mips-linux-tdep.c.

◆ UCONTEXT_SIGCONTEXT_OFFSET

#define UCONTEXT_SIGCONTEXT_OFFSET   (2 * 4 + STACK_T_SIZE + 4)

Definition at line 934 of file mips-linux-tdep.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MIPS_LINUX_SIGEMT 
MIPS_LINUX_SIGBUS 
MIPS_LINUX_SIGSYS 
MIPS_LINUX_SIGUSR1 
MIPS_LINUX_SIGUSR2 
MIPS_LINUX_SIGCHLD 
MIPS_LINUX_SIGCLD 
MIPS_LINUX_SIGPWR 
MIPS_LINUX_SIGWINCH 
MIPS_LINUX_SIGURG 
MIPS_LINUX_SIGIO 
MIPS_LINUX_SIGPOLL 
MIPS_LINUX_SIGSTOP 
MIPS_LINUX_SIGTSTP 
MIPS_LINUX_SIGCONT 
MIPS_LINUX_SIGTTIN 
MIPS_LINUX_SIGTTOU 
MIPS_LINUX_SIGVTALRM 
MIPS_LINUX_SIGPROF 
MIPS_LINUX_SIGXCPU 
MIPS_LINUX_SIGXFSZ 
MIPS_LINUX_SIGRTMIN 
MIPS_LINUX_SIGRT64 
MIPS_LINUX_SIGRTMAX 

Definition at line 57 of file mips-linux-tdep.c.

Function Documentation

◆ _initialize_mips_linux_tdep()

void _initialize_mips_linux_tdep ( )

◆ micromips_linux_sigframe_validate()

static int micromips_linux_sigframe_validate ( const struct tramp_frame * self,
frame_info_ptr this_frame,
CORE_ADDR * pc )
static

◆ mips64_fill_fpregset()

void mips64_fill_fpregset ( const struct regcache * regcache,
mips64_elf_fpregset_t * fpregsetp,
int regno )

◆ mips64_fill_fpregset_wrapper()

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

Definition at line 508 of file mips-linux-tdep.c.

References mips64_fill_fpregset(), and regnum.

◆ mips64_fill_gregset()

void mips64_fill_gregset ( const struct regcache * regcache,
mips64_elf_gregset_t * gregsetp,
int regno )

◆ mips64_fill_gregset_wrapper()

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

Definition at line 391 of file mips-linux-tdep.c.

References mips64_fill_gregset(), and regnum.

◆ mips64_linux_get_longjmp_target()

static int mips64_linux_get_longjmp_target ( frame_info_ptr frame,
CORE_ADDR * pc )
static

◆ mips64_supply_fpregset()

void mips64_supply_fpregset ( struct regcache * regcache,
const mips64_elf_fpregset_t * fpregsetp )

◆ mips64_supply_fpregset_wrapper()

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

Definition at line 444 of file mips-linux-tdep.c.

References mips64_supply_fpregset().

◆ mips64_supply_gregset()

void mips64_supply_gregset ( struct regcache * regcache,
const mips64_elf_gregset_t * gregsetp )

◆ mips64_supply_gregset_wrapper()

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

Definition at line 327 of file mips-linux-tdep.c.

References mips64_supply_gregset().

◆ mips_fill_gregset()

void mips_fill_gregset ( const struct regcache * regcache,
mips_elf_gregset_t * gregsetp,
int regno )

◆ mips_fill_gregset_wrapper()

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

Definition at line 227 of file mips-linux-tdep.c.

References mips_fill_gregset(), and regnum.

◆ mips_gdb_signal_from_target()

static enum gdb_signal mips_gdb_signal_from_target ( struct gdbarch * gdbarch,
int signal )
static

◆ mips_gdb_signal_to_target()

static int mips_gdb_signal_to_target ( struct gdbarch * gdbarch,
enum gdb_signal signal )
static

◆ mips_linux_core_read_description()

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

Definition at line 557 of file mips-linux-tdep.c.

References mips_tdesc_gp32, and mips_tdesc_gp64.

Referenced by mips_linux_init_abi().

◆ mips_linux_get_longjmp_target()

static int mips_linux_get_longjmp_target ( frame_info_ptr frame,
CORE_ADDR * pc )
static

◆ mips_linux_get_syscall_number()

static LONGEST mips_linux_get_syscall_number ( struct gdbarch * gdbarch,
thread_info * thread )
static

◆ mips_linux_in_dynsym_resolve_code()

static int mips_linux_in_dynsym_resolve_code ( CORE_ADDR pc)
static

Definition at line 672 of file mips-linux-tdep.c.

References mips_linux_in_dynsym_stub(), and svr4_in_dynsym_resolve_code().

Referenced by mips_linux_init_abi().

◆ mips_linux_in_dynsym_stub()

static int mips_linux_in_dynsym_stub ( CORE_ADDR pc)
static

◆ mips_linux_init_abi()

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

Definition at line 1523 of file mips-linux-tdep.c.

References floatformats_ieee_quad, gdbarch_num_regs(), target_so_ops::in_dynsym_resolve_code, linux_ilp32_fetch_link_map_offsets(), linux_init_abi(), linux_lp64_fetch_link_map_offsets(), micromips_linux_n32_rt_sigframe, micromips_linux_n64_rt_sigframe, micromips_linux_o32_rt_sigframe, micromips_linux_o32_sigframe, mips64_linux_get_longjmp_target(), MIPS_ABI_N32, MIPS_ABI_N64, MIPS_ABI_O32, mips_gdb_signal_from_target(), mips_gdb_signal_to_target(), mips_linux_core_read_description(), mips_linux_get_longjmp_target(), mips_linux_get_syscall_number(), mips_linux_in_dynsym_resolve_code(), mips_linux_iterate_over_regset_sections(), mips_linux_n32_rt_sigframe, mips_linux_n64_rt_sigframe, mips_linux_o32_rt_sigframe, mips_linux_o32_sigframe, mips_linux_skip_resolver(), mips_linux_syscall_next_pc(), mips_linux_write_pc(), MIPS_RESTART_REGNUM, mips_software_single_step(), mips_svr4_so_ops, set_gdbarch_core_read_description(), set_gdbarch_fetch_tls_load_module_address(), set_gdbarch_gdb_signal_from_target(), set_gdbarch_gdb_signal_to_target(), set_gdbarch_get_longjmp_target(), set_gdbarch_get_syscall_number(), set_gdbarch_iterate_over_regset_sections(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_skip_solib_resolver(), set_gdbarch_so_ops(), set_gdbarch_software_single_step(), set_gdbarch_write_pc(), set_solib_svr4_fetch_link_map_offsets(), set_xml_syscall_file_name(), svr4_fetch_objfile_link_map(), svr4_so_ops, mips_gdbarch_tdep::syscall_next_pc, tdesc_data, tdesc_find_feature(), tdesc_numbered_register(), and tramp_frame_prepend_unwinder().

Referenced by _initialize_mips_linux_tdep().

◆ mips_linux_iterate_over_regset_sections()

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

◆ mips_linux_n32n64_sigframe_init()

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

◆ mips_linux_o32_sigframe_init()

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

◆ mips_linux_restart_reg_p()

int mips_linux_restart_reg_p ( struct gdbarch * gdbarch)

◆ mips_linux_sigframe_validate()

static int mips_linux_sigframe_validate ( const struct tramp_frame * self,
frame_info_ptr this_frame,
CORE_ADDR * pc )
static

Definition at line 1236 of file mips-linux-tdep.c.

References mips_pc_is_mips(), and mips_regnum::pc.

◆ mips_linux_skip_resolver()

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

◆ mips_linux_syscall_next_pc()

static CORE_ADDR mips_linux_syscall_next_pc ( frame_info_ptr frame)
static

◆ mips_linux_write_pc()

static void mips_linux_write_pc ( struct regcache * regcache,
CORE_ADDR pc )
static

◆ mips_supply_gregset()

void mips_supply_gregset ( struct regcache * regcache,
const mips_elf_gregset_t * gregsetp )

◆ mips_supply_gregset_wrapper()

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

Definition at line 159 of file mips-linux-tdep.c.

References mips_supply_gregset().

◆ supply_32bit_reg()

static void supply_32bit_reg ( struct regcache * regcache,
int regnum,
const void * addr )
static

Definition at line 122 of file mips-linux-tdep.c.

References reg_buffer::raw_supply_integer(), and regnum.

Referenced by mips64_supply_fpregset(), and mips_supply_gregset().

◆ supply_64bit_reg()

static void supply_64bit_reg ( struct regcache * regcache,
int regnum,
const gdb_byte * buf )
static

Variable Documentation

◆ micromips_linux_n32_rt_sigframe

const struct tramp_frame micromips_linux_n32_rt_sigframe
static
Initial value:
= {
2,
{
{ MICROMIPS_INST_LI_V0, ULONGEST_MAX },
{ MIPS_NR_N32_rt_sigreturn, ULONGEST_MAX },
{ MICROMIPS_INST_POOL32A, ULONGEST_MAX },
{ MICROMIPS_INST_SYSCALL, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
@ SIGTRAMP_FRAME
Definition frame.h:198
#define MICROMIPS_INST_SYSCALL
static void mips_linux_n32n64_sigframe_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
#define MICROMIPS_INST_LI_V0
static int micromips_linux_sigframe_validate(const struct tramp_frame *self, frame_info_ptr this_frame, CORE_ADDR *pc)
#define MICROMIPS_INST_POOL32A
#define MIPS_NR_N32_rt_sigreturn
#define TRAMP_SENTINEL_INSN
Definition tramp-frame.h:44

Definition at line 827 of file mips-linux-tdep.c.

Referenced by mips_linux_init_abi(), and mips_linux_n32n64_sigframe_init().

◆ micromips_linux_n64_rt_sigframe

const struct tramp_frame micromips_linux_n64_rt_sigframe
static
Initial value:
= {
2,
{
{ MICROMIPS_INST_LI_V0, ULONGEST_MAX },
{ MIPS_NR_N64_rt_sigreturn, ULONGEST_MAX },
{ MICROMIPS_INST_POOL32A, ULONGEST_MAX },
{ MICROMIPS_INST_SYSCALL, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
#define MIPS_NR_N64_rt_sigreturn

Definition at line 841 of file mips-linux-tdep.c.

Referenced by mips_linux_init_abi().

◆ micromips_linux_o32_rt_sigframe

const struct tramp_frame micromips_linux_o32_rt_sigframe
static
Initial value:
= {
2,
{
{ MICROMIPS_INST_LI_V0, ULONGEST_MAX },
{ MIPS_NR_rt_sigreturn, ULONGEST_MAX },
{ MICROMIPS_INST_POOL32A, ULONGEST_MAX },
{ MICROMIPS_INST_SYSCALL, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
#define MIPS_NR_rt_sigreturn
static void mips_linux_o32_sigframe_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)

Definition at line 813 of file mips-linux-tdep.c.

Referenced by mips_linux_init_abi().

◆ micromips_linux_o32_sigframe

const struct tramp_frame micromips_linux_o32_sigframe
static
Initial value:
= {
2,
{
{ MICROMIPS_INST_LI_V0, ULONGEST_MAX },
{ MIPS_NR_sigreturn, ULONGEST_MAX },
{ MICROMIPS_INST_POOL32A, ULONGEST_MAX },
{ MICROMIPS_INST_SYSCALL, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
#define MIPS_NR_sigreturn

Definition at line 799 of file mips-linux-tdep.c.

Referenced by mips_linux_init_abi(), and mips_linux_o32_sigframe_init().

◆ mips64_linux_fpregset

const struct regset mips64_linux_fpregset
static
Initial value:
=
{
}
static void mips64_fill_fpregset_wrapper(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
static void mips64_supply_fpregset_wrapper(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)

Definition at line 527 of file mips-linux-tdep.c.

Referenced by mips_linux_iterate_over_regset_sections().

◆ mips64_linux_gregset

const struct regset mips64_linux_gregset
static
Initial value:
=
{
}
static void mips64_supply_gregset_wrapper(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
static void mips64_fill_gregset_wrapper(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)

Definition at line 522 of file mips-linux-tdep.c.

Referenced by mips_linux_iterate_over_regset_sections().

◆ mips_linux_gregset

const struct regset mips_linux_gregset
static
Initial value:
=
{
}
static void mips_fill_gregset_wrapper(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
static void mips_supply_gregset_wrapper(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)

Definition at line 517 of file mips-linux-tdep.c.

Referenced by mips_linux_iterate_over_regset_sections().

◆ mips_linux_n32_rt_sigframe

const struct tramp_frame mips_linux_n32_rt_sigframe
static
Initial value:
= {
4,
{
{ MIPS_INST_SYSCALL, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
#define MIPS_INST_LI_V0_N32_RT_SIGRETURN
#define MIPS_INST_SYSCALL
static int mips_linux_sigframe_validate(const struct tramp_frame *self, frame_info_ptr this_frame, CORE_ADDR *pc)

Definition at line 775 of file mips-linux-tdep.c.

Referenced by mips_linux_init_abi(), and mips_linux_n32n64_sigframe_init().

◆ mips_linux_n64_rt_sigframe

const struct tramp_frame mips_linux_n64_rt_sigframe
static
Initial value:
= {
4,
{
{ MIPS_INST_SYSCALL, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
#define MIPS_INST_LI_V0_N64_RT_SIGRETURN

Definition at line 787 of file mips-linux-tdep.c.

Referenced by mips_linux_init_abi().

◆ mips_linux_o32_rt_sigframe

const struct tramp_frame mips_linux_o32_rt_sigframe
static
Initial value:
= {
4,
{
{ MIPS_INST_LI_V0_RT_SIGRETURN, ULONGEST_MAX },
{ MIPS_INST_SYSCALL, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX } },
}
#define MIPS_INST_LI_V0_RT_SIGRETURN

Definition at line 764 of file mips-linux-tdep.c.

Referenced by mips_linux_init_abi().

◆ mips_linux_o32_sigframe

const struct tramp_frame mips_linux_o32_sigframe
static
Initial value:
= {
4,
{
{ MIPS_INST_LI_V0_SIGRETURN, ULONGEST_MAX },
{ MIPS_INST_SYSCALL, ULONGEST_MAX },
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
},
}
#define MIPS_INST_LI_V0_SIGRETURN

Definition at line 752 of file mips-linux-tdep.c.

Referenced by mips_linux_init_abi(), and mips_linux_o32_sigframe_init().

◆ mips_svr4_so_ops

struct target_so_ops mips_svr4_so_ops
static

Definition at line 48 of file mips-linux-tdep.c.

Referenced by mips_linux_init_abi().