/* Linux-specific definitions: */
/* Define various structure offsets to simplify cross-compilation. */
/* The first three 64-bit words in a signal frame contain the signal
number, siginfo pointer, and sigcontext pointer passed to the
signal handler. We use this to locate the sigcontext pointer. */
#define LINUX_SIGFRAME_ARG2_OFF 0x10
#define LINUX_SC_FLAGS_OFF 0x000
#define LINUX_SC_NAT_OFF 0x008
#define LINUX_SC_STACK_OFF 0x010
#define LINUX_SC_IP_OFF 0x028
#define LINUX_SC_CFM_OFF 0x030
#define LINUX_SC_UM_OFF 0x038
#define LINUX_SC_AR_RSC_OFF 0x040
#define LINUX_SC_AR_BSP_OFF 0x048
#define LINUX_SC_AR_RNAT_OFF 0x050
#define LINUX_SC_AR_CCV 0x058
#define LINUX_SC_AR_UNAT_OFF 0x060
#define LINUX_SC_AR_FPSR_OFF 0x068
#define LINUX_SC_AR_PFS_OFF 0x070
#define LINUX_SC_AR_LC_OFF 0x078
#define LINUX_SC_PR_OFF 0x080
#define LINUX_SC_BR_OFF 0x088
#define LINUX_SC_GR_OFF 0x0c8
#define LINUX_SC_FR_OFF 0x1d0
#define LINUX_SC_RBS_BASE_OFF 0x9d0
#define LINUX_SC_LOADRS_OFF 0x9d8
#define LINUX_SC_AR_CSD_OFF 0x9e0
#define LINUX_SC_AR_SSD_OFF 0x9e8
#define LINUX_SC_MASK 0xa50
/* Layout of old Linux kernel interrupt frame (struct pt_regs). */
#define LINUX_OLD_PT_IPSR_OFF 0x000
#define LINUX_OLD_PT_IIP_OFF 0x008
#define LINUX_OLD_PT_IFS_OFF 0x010
#define LINUX_OLD_PT_UNAT_OFF 0x018
#define LINUX_OLD_PT_PFS_OFF 0x020
#define LINUX_OLD_PT_RSC_OFF 0x028
#define LINUX_OLD_PT_RNAT_OFF 0x030
#define LINUX_OLD_PT_BSPSTORE_OFF 0x038
#define LINUX_OLD_PT_PR_OFF 0x040
#define LINUX_OLD_PT_B6_OFF 0x048
#define LINUX_OLD_PT_LOADRS_OFF 0x050
#define LINUX_OLD_PT_R1_OFF 0x058
#define LINUX_OLD_PT_R2_OFF 0x060
#define LINUX_OLD_PT_R3_OFF 0x068
#define LINUX_OLD_PT_R12_OFF 0x070
#define LINUX_OLD_PT_R13_OFF 0x078
#define LINUX_OLD_PT_R14_OFF 0x080
#define LINUX_OLD_PT_R15_OFF 0x088
#define LINUX_OLD_PT_R8_OFF 0x090
#define LINUX_OLD_PT_R9_OFF 0x098
#define LINUX_OLD_PT_R10_OFF 0x0a0
#define LINUX_OLD_PT_R11_OFF 0x0a8
#define LINUX_OLD_PT_R16_OFF 0x0b0
#define LINUX_OLD_PT_R17_OFF 0x0b8
#define LINUX_OLD_PT_R18_OFF 0x0c0
#define LINUX_OLD_PT_R19_OFF 0x0c8
#define LINUX_OLD_PT_R20_OFF 0x0d0
#define LINUX_OLD_PT_R21_OFF 0x0d8
#define LINUX_OLD_PT_R22_OFF 0x0e0
#define LINUX_OLD_PT_R23_OFF 0x0e8
#define LINUX_OLD_PT_R24_OFF 0x0f0
#define LINUX_OLD_PT_R25_OFF 0x0f8
#define LINUX_OLD_PT_R26_OFF 0x100
#define LINUX_OLD_PT_R27_OFF 0x108
#define LINUX_OLD_PT_R28_OFF 0x110
#define LINUX_OLD_PT_R29_OFF 0x118
#define LINUX_OLD_PT_R30_OFF 0x120
#define LINUX_OLD_PT_R31_OFF 0x128
#define LINUX_OLD_PT_CCV_OFF 0x130
#define LINUX_OLD_PT_FPSR_OFF 0x138
#define LINUX_OLD_PT_B0_OFF 0x140
#define LINUX_OLD_PT_B7_OFF 0x148
#define LINUX_OLD_PT_F6_OFF 0x150
#define LINUX_OLD_PT_F7_OFF 0x160
#define LINUX_OLD_PT_F8_OFF 0x170
#define LINUX_OLD_PT_F9_OFF 0x180
/* Layout of new Linux kernel interrupt frame (struct pt_regs). */
#define LINUX_PT_B6_OFF 0
#define LINUX_PT_B7_OFF 8
#define LINUX_PT_CSD_OFF 16
#define LINUX_PT_SSD_OFF 24
#define LINUX_PT_R8_OFF 32
#define LINUX_PT_R9_OFF 40
#define LINUX_PT_R10_OFF 48
#define LINUX_PT_R11_OFF 56
#define LINUX_PT_IPSR_OFF 64
#define LINUX_PT_IIP_OFF 72
#define LINUX_PT_IFS_OFF 80
#define LINUX_PT_UNAT_OFF 88
#define LINUX_PT_PFS_OFF 96
#define LINUX_PT_RSC_OFF 104
#define LINUX_PT_RNAT_OFF 112
#define LINUX_PT_BSPSTORE_OFF 120
#define LINUX_PT_PR_OFF 128
#define LINUX_PT_B0_OFF 136
#define LINUX_PT_LOADRS_OFF 144
#define LINUX_PT_R1_OFF 152
#define LINUX_PT_R12_OFF 160
#define LINUX_PT_R13_OFF 168
#define LINUX_PT_FPSR_OFF 176
#define LINUX_PT_R15_OFF 184
#define LINUX_PT_R14_OFF 192
#define LINUX_PT_R2_OFF 200
#define LINUX_PT_R3_OFF 208
#define LINUX_PT_R16_OFF 216
#define LINUX_PT_R17_OFF 224
#define LINUX_PT_R18_OFF 232
#define LINUX_PT_R19_OFF 240
#define LINUX_PT_R20_OFF 248
#define LINUX_PT_R21_OFF 256
#define LINUX_PT_R22_OFF 264
#define LINUX_PT_R23_OFF 272
#define LINUX_PT_R24_OFF 280
#define LINUX_PT_R25_OFF 288
#define LINUX_PT_R26_OFF 296
#define LINUX_PT_R27_OFF 304
#define LINUX_PT_R28_OFF 312
#define LINUX_PT_R29_OFF 320
#define LINUX_PT_R30_OFF 328
#define LINUX_PT_R31_OFF 336
#define LINUX_PT_CCV_OFF 344
#define LINUX_PT_F6_OFF 352
#define LINUX_PT_F7_OFF 368
#define LINUX_PT_F8_OFF 384
#define LINUX_PT_F9_OFF 400
#define LINUX_PT_F10_OFF 416
#define LINUX_PT_F11_OFF 432
#define LINUX_PT_P_NONSYS 5 /* must match pNonSys in entry.h */