GDBserver
Classes | Defines | Functions | Variables
/home/stan/gdb/src/gdb/gdbserver/linux-sparc-low.c File Reference
#include "server.h"
#include "linux-low.h"
#include <sys/ptrace.h>
#include "gdb_proc_service.h"

Go to the source code of this file.

Classes

struct  regs_range_t

Defines

#define BIAS   2047
#define INSN_SIZE   4
#define SPARC_R_REGS_NUM   32
#define SPARC_F_REGS_NUM   48
#define SPARC_CONTROL_REGS_NUM   6
#define sparc_num_regs   (SPARC_R_REGS_NUM + SPARC_F_REGS_NUM + SPARC_CONTROL_REGS_NUM)
#define N_GREGS_RANGES   (sizeof (gregs_ranges) / sizeof (struct regs_range_t))
#define N_FPREGS_RANGES   (sizeof (fpregs_ranges) / sizeof (struct regs_range_t))
#define sparc_breakpoint_len   INSN_SIZE

Functions

void init_registers_sparc64 (void)
static int sparc_cannot_store_register (int regno)
static int sparc_cannot_fetch_register (int regno)
static void sparc_fill_gregset_to_stack (struct regcache *regcache, const void *buf)
static void sparc_fill_gregset (struct regcache *regcache, void *buf)
static void sparc_fill_fpregset (struct regcache *regcache, void *buf)
static void sparc_store_gregset_from_stack (struct regcache *regcache, const void *buf)
static void sparc_store_gregset (struct regcache *regcache, const void *buf)
static void sparc_store_fpregset (struct regcache *regcache, const void *buf)
static CORE_ADDR sparc_get_pc (struct regcache *regcache)
static int sparc_breakpoint_at (CORE_ADDR where)
static CORE_ADDR sparc_reinsert_addr (void)
static void sparc_arch_setup (void)
static struct regs_infosparc_regs_info (void)
void initialize_low_arch (void)

Variables

static int sparc_regmap []
static struct regs_range_t gregs_ranges []
static struct regs_range_t fpregs_ranges []
struct target_desctdesc_sparc64
int debug_threads
static const unsigned char sparc_breakpoint [INSN_SIZE]
static struct regset_info sparc_regsets []
static struct regsets_info sparc_regsets_info
static struct usrregs_info sparc_usrregs_info
static struct regs_info regs_info
struct linux_target_ops the_low_target

Define Documentation

#define BIAS   2047
#define INSN_SIZE   4

Definition at line 36 of file linux-sparc-low.c.

Referenced by sparc_breakpoint_at().

#define N_FPREGS_RANGES   (sizeof (fpregs_ranges) / sizeof (struct regs_range_t))

Definition at line 99 of file linux-sparc-low.c.

Referenced by sparc_fill_fpregset(), and sparc_store_fpregset().

#define N_GREGS_RANGES   (sizeof (gregs_ranges) / sizeof (struct regs_range_t))

Definition at line 92 of file linux-sparc-low.c.

Referenced by sparc_fill_gregset(), and sparc_store_gregset().

Definition at line 241 of file linux-sparc-low.c.

#define SPARC_CONTROL_REGS_NUM   6

Definition at line 40 of file linux-sparc-low.c.

#define SPARC_F_REGS_NUM   48

Definition at line 39 of file linux-sparc-low.c.

Definition at line 42 of file linux-sparc-low.c.

Referenced by sparc_cannot_fetch_register(), and sparc_cannot_store_register().

#define SPARC_R_REGS_NUM   32

Definition at line 38 of file linux-sparc-low.c.


Function Documentation

void init_registers_sparc64 ( void  )

Referenced by initialize_low_arch().

void initialize_low_arch ( void  )

Definition at line 336 of file linux-sparc-low.c.

References init_registers_sparc64().

static void sparc_arch_setup ( void  ) [static]

Definition at line 274 of file linux-sparc-low.c.

References current_process(), and process_info::tdesc.

static int sparc_breakpoint_at ( CORE_ADDR  where) [static]
static int sparc_cannot_fetch_register ( int  regno) [static]

Definition at line 112 of file linux-sparc-low.c.

References sparc_num_regs, and sparc_regmap.

static int sparc_cannot_store_register ( int  regno) [static]

Definition at line 106 of file linux-sparc-low.c.

References sparc_num_regs, and sparc_regmap.

static void sparc_fill_fpregset ( struct regcache regcache,
void *  buf 
) [static]
static void sparc_fill_gregset ( struct regcache regcache,
void *  buf 
) [static]
static void sparc_fill_gregset_to_stack ( struct regcache regcache,
const void *  buf 
) [static]
static CORE_ADDR sparc_get_pc ( struct regcache regcache) [static]

Definition at line 229 of file linux-sparc-low.c.

References collect_register_by_name(), and debug_threads.

static struct regs_info* sparc_regs_info ( void  ) [static, read]

Definition at line 312 of file linux-sparc-low.c.

References regs_info.

static CORE_ADDR sparc_reinsert_addr ( void  ) [static]
static void sparc_store_fpregset ( struct regcache regcache,
const void *  buf 
) [static]
static void sparc_store_gregset ( struct regcache regcache,
const void *  buf 
) [static]
static void sparc_store_gregset_from_stack ( struct regcache regcache,
const void *  buf 
) [static]

Variable Documentation

Definition at line 71 of file server.c.

struct regs_range_t fpregs_ranges[] [static]
Initial value:
 {
 { 32, 79 }, 
 { 83, 83 }  
}

Definition at line 94 of file linux-sparc-low.c.

struct regs_range_t gregs_ranges[] [static]
Initial value:
 {
 {  0, 31 }, 
 { 80, 82 }, 
 { 84, 85 }  
}

Definition at line 86 of file linux-sparc-low.c.

struct regs_info regs_info [static]
Initial value:

Definition at line 304 of file linux-sparc-low.c.

Referenced by sparc_regs_info().

const unsigned char sparc_breakpoint[INSN_SIZE] [static]
Initial value:
 {
  0x91, 0xd0, 0x20, 0x01
}

Definition at line 238 of file linux-sparc-low.c.

Referenced by sparc_breakpoint_at().

int sparc_regmap[] [static]
Initial value:
 {
  
        -1,  0*8,  1*8,  2*8,  3*8,  4*8,  5*8,  6*8,    
        7*8,  8*8,  9*8, 10*8, 11*8, 12*8, 13*8, 14*8,   
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    

  
    0*4,  1*4,  2*4,  3*4,  4*4,  5*4,  6*4,  7*4,         
    8*4,  9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4,         
   16*4, 17*4, 18*4, 19*4, 20*4, 21*4, 22*4, 23*4,         
   24*4, 25*4, 26*4, 27*4, 28*4, 29*4, 30*4, 31*4,         

  
   16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8,         
   24*8, 25*8, 26*8, 27*8, 28*8, 29*8, 30*8, 31*8,         

   17 *8, 
   18 *8, 
   16 *8, 
  
   32 *8, 
      -1, 
  
   19 *8, 

}

Definition at line 50 of file linux-sparc-low.c.

Referenced by sparc_cannot_fetch_register(), sparc_cannot_store_register(), sparc_fill_fpregset(), sparc_fill_gregset(), sparc_fill_gregset_to_stack(), sparc_store_fpregset(), sparc_store_gregset(), and sparc_store_gregset_from_stack().

struct regset_info sparc_regsets[] [static]
Initial value:
 {
  { PTRACE_GETREGS, PTRACE_SETREGS, 0, sizeof (elf_gregset_t),
    GENERAL_REGS,
    sparc_fill_gregset, sparc_store_gregset },
  { PTRACE_GETFPREGS, PTRACE_SETFPREGS, 0, sizeof (fpregset_t),
    FP_REGS,
    sparc_fill_fpregset, sparc_store_fpregset },
  { 0, 0, 0, -1, -1, NULL, NULL }
}

Definition at line 279 of file linux-sparc-low.c.

struct regsets_info sparc_regsets_info [static]
Initial value:
  {
    sparc_regsets, 
    0, 
    NULL, 
  }

Definition at line 289 of file linux-sparc-low.c.

Initial value:
  {
    sparc_num_regs,
    
    NULL
  }

Definition at line 296 of file linux-sparc-low.c.

Initial value:

Definition at line 317 of file linux-sparc-low.c.

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines