1 #ifndef __UREG_H 2 #define __UREG_H 3 #if !defined(_PLAN9_SOURCE) 4 This header file is an extension to ANSI/POSIX 5 #endif 6 7 struct Ureg 8 { 9 union { 10 unsigned long pc; 11 unsigned long regs[1]; 12 }; 13 unsigned long r1; /* link */ 14 union{ 15 unsigned long r2; 16 unsigned long sp; 17 unsigned long usp; 18 }; 19 unsigned long r3; /* sb */ 20 unsigned long r4; 21 unsigned long r5; 22 unsigned long r6; /* up in kernel */ 23 unsigned long r7; /* m in kernel */ 24 union{ 25 unsigned long r8; 26 unsigned long arg; 27 unsigned long ret; 28 }; 29 unsigned long r9; 30 unsigned long r10; 31 unsigned long r11; 32 unsigned long r12; 33 unsigned long r13; 34 unsigned long r14; 35 unsigned long r15; 36 unsigned long r16; 37 unsigned long r17; 38 unsigned long r18; 39 unsigned long r19; 40 unsigned long r20; 41 unsigned long r21; 42 unsigned long r22; 43 unsigned long r23; 44 unsigned long r24; 45 unsigned long r25; 46 unsigned long r26; 47 unsigned long r27; 48 unsigned long r28; 49 unsigned long r29; 50 unsigned long r30; 51 unsigned long r31; 52 53 /* csrs: generally supervisor ones */ 54 unsigned long status; 55 unsigned long ie; 56 union { 57 unsigned long cause; 58 unsigned long type; 59 }; 60 unsigned long tval; /* faulting address */ 61 }; 62 63 #endif 64