xref: /plan9-contrib/riscv64/include/ape/ureg.h (revision ce95e1b3727b9cb1c223ffbed69aff21a8ced255)
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