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 #define uvlong unsigned long long 8 9 struct Ureg 10 { 11 union { 12 uvlong pc; 13 uvlong regs[1]; 14 }; 15 uvlong r1; /* link */ 16 union{ 17 uvlong r2; 18 uvlong sp; 19 uvlong usp; 20 }; 21 uvlong r3; /* sb */ 22 uvlong r4; 23 uvlong r5; 24 uvlong r6; /* up in kernel */ 25 uvlong r7; /* m in kernel */ 26 union{ 27 uvlong r8; 28 uvlong arg; 29 uvlong ret; 30 }; 31 uvlong r9; 32 uvlong r10; 33 uvlong r11; 34 uvlong r12; 35 uvlong r13; 36 uvlong r14; 37 uvlong r15; 38 uvlong r16; 39 uvlong r17; 40 uvlong r18; 41 uvlong r19; 42 uvlong r20; 43 uvlong r21; 44 uvlong r22; 45 uvlong r23; 46 uvlong r24; 47 uvlong r25; 48 uvlong r26; 49 uvlong r27; 50 uvlong r28; 51 uvlong r29; 52 uvlong r30; 53 uvlong r31; 54 55 /* csrs: generally supervisor ones */ 56 uvlong status; 57 uvlong ie; 58 union { 59 uvlong cause; 60 uvlong type; 61 }; 62 uvlong tval; /* faulting address */ 63 64 uvlong curmode; 65 }; 66 67 #endif 68