⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regssimsolaris.h

📁 IXP425的BSP代码
💻 H
字号:
/* regsSimsolaris.h - simsolaris registers header *//* Copyright 1995 Wind River Systems, Inc. *//*modification history--------------------01c,30dec97,dbt  added common names for registers01b,27oct95,ism  cleanup01a,12jun95,ism  written*/#ifndef __INCregsSimsolarish#define __INCregsSimsolarish#ifdef __cplusplusextern "C" {#endif#ifndef _ASMLANGUAGE#define NGREG 19#define SPARC_MAXREGWINDOW  31      /* max windows in SPARC arch. */#define REG_PSR (0)#define REG_PC  (1)#define REG_nPC (2)#define REG_Y   (3)#define REG_G1  (4)#define REG_G2  (5)#define REG_G3  (6)#define REG_G4  (7)#define REG_G5  (8)#define REG_G6  (9)#define REG_G7  (10)#define REG_O0  (11)#define REG_O1  (12)#define REG_O2  (13)#define REG_O3  (14)#define REG_O4  (15)#define REG_O5  (16)#define REG_O6  (17)#define REG_O7  (18)typedef struct solaris_ucontext  /* solaris-required context structure    */    {    unsigned long             uc_flags;    struct solaris_ucontext   *uc_link;    unsigned long             uc_sigmask[4];    struct        {        char        *ss_sp;        int         ss_size;        int         ss_flags;        } uc_stack;    struct        {        int         gregs[NGREG];        struct            {            int     wbcnt;            int     *spbuf[SPARC_MAXREGWINDOW];            struct		{                int rw_local[8];                int rw_in[8];        	} wbuf[SPARC_MAXREGWINDOW];            } *gwins; /* POSSIBLE pointer to register windows */        struct	    {    	    union		{                           /* FPU floating point regs */                unsigned    fpu_regs[32];   /* 32 singles */                double      fpu_dregs[16];  /* 16 doubles */                } fpu_fr;    	    void           *fpu_q;          /* ptr to array of FQ entries */    	    unsigned        fpu_fsr;        /* FPU status register */    	    unsigned char   fpu_qcnt;       /* # of entries in saved FQ */    	    unsigned char   fpu_q_entrysize;/* # of bytes per FQ entry */    	    unsigned char   fpu_en;         /* flag signifying fpu in use */            } fpregs;        long        filler[21];        } uc_mcontext;    long                   uc_filler[23];    } solaris_ucontext_t;typedef struct		/* sparcsim Register Set */    {    void *reg_pc;	/* pc to retore */    void *reg_npc;	/* next pc to restore */    int   reg_psr;	/* psr to restore */    int   reg_wbcnt;	/* number of outstanding windows (always 0!) */    int   reg_tbr;	/* not used for sim */    int   reg_y;    int   reg_onstack;	/* sigstack state to restore (instead of pCpContext) */    int   reg_mask[4];	/* signal mask to restore (instead of pAsrSet) */    int   reg_global[8];    int   reg_out[8];    int   reg_local[8];    int   reg_in[8];    union	{	int solaris_context[112]; /* Solaris 2.4 u_context=448 bytes */	solaris_ucontext_t aris;	} sol;    } REG_SET;/* some common names for registers */#undef pc#define pc	reg_pc#define reg_sp	reg_out[6]#define reg_fp	reg_in[6]#undef spReg#define spReg	reg_out[6]#define REG_SET_PC      0x00            /* Program Counter */#define REG_SET_NPC     0x04            /* Next Program Counter */#define REG_SET_PSR     0x08            /* Processor Status Register */#define REG_SET_WIM     0x0C            /* Window Invalid Mask */#define REG_SET_TBR     0x10            /* Trap Base Register */#define REG_SET_Y       0x14            /* Y Register *//*#define REG_SET_pCP     0x18           / * Coprocessor Pointer *//*#define REG_SET_pASR    0x1C           / * Pointer to ASRs (%asr1 - %asr31) */#define REG_SET_GLOBALS 0x2C            /* Global Registers (%R0  - %R7)  */#define REG_SET_OUTS    0x4C            /* Out Registers    (%R8  - %R15) */#define REG_SET_LOCALS  0x6C            /* Local Registers  (%R16 - %R23) */#define REG_SET_INS     0x8C            /* In Registers     (%R24 - %R31) */#define REG_SET_GLOBAL(n)   (REG_SET_GLOBALS + (4 * (n)))#define REG_SET_OUT(n)      (REG_SET_OUTS + (4 * (n)))#define REG_SET_LOCAL(n)    (REG_SET_LOCALS + (4 * (n)))#define REG_SET_IN(n)       (REG_SET_INS + (4 * (n)))#define pREG_COPROCESSOR(n)	(4 * (n))#define pREG_ASR(n)      	(4 * (n))#define PC_OFFSET	REG_SET_PC	/* referenced by pc() in usrLib */#endif  /* _ASMLANGUAGE */#ifdef __cplusplus}#endif#endif /* __INCregsSimsolarish */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -