/* * linux/asm-sparc/reg.h * Layout of the registers as expected by gdb on the Sparc * we should replace the user.h definitions with those in * this file, we don't even use the other * -miguel * * The names of the structures, constants and aliases in this file * have the same names as the sunos ones, some programs rely on these * names (gdb for example). * */ #ifndef __SPARC_REG_H #define __SPARC_REG_H struct regs { int r_psr; #define r_ps r_psr int r_pc; int r_npc; int r_y; int r_g1; int r_g2; int r_g3; int r_g4; int r_g5; int r_g6; int r_g7; int r_o0; int r_o1; int r_o2; int r_o3; int r_o4; int r_o5; int r_o6; int r_o7; }; struct fpq { unsigned long *addr; unsigned long instr; }; struct fq { union { double whole; struct fpq fpq; } FQu; }; #define FPU_REGS_TYPE unsigned int #define FPU_FSR_TYPE unsigned struct fp_status { union { FPU_REGS_TYPE Fpu_regs[32]; double Fpu_dregs[16]; } fpu_fr; FPU_FSR_TYPE Fpu_fsr; unsigned Fpu_flags; unsigned Fpu_extra; unsigned Fpu_qcnt; struct fq Fpu_q[16]; }; #define fpu_regs f_fpstatus.fpu_fr.Fpu_regs #define fpu_dregs f_fpstatus.fpu_fr.Fpu_dregs #define fpu_fsr f_fpstatus.Fpu_fsr #define fpu_flags f_fpstatus.Fpu_flags #define fpu_extra f_fpstatus.Fpu_extra #define fpu_q f_fpstatus.Fpu_q #define fpu_qcnt f_fpstatus.Fpu_qcnt struct fpu { struct fp_status f_fpstatus; }; #endif /* __SPARC_REG_H */