xref: /plan9-contrib/riscv64/include/ureg.h (revision ce95e1b3727b9cb1c223ffbed69aff21a8ced255)
1*ce95e1b3SDavid du Colombier struct Ureg
2*ce95e1b3SDavid du Colombier {
3*ce95e1b3SDavid du Colombier 	union {
4*ce95e1b3SDavid du Colombier 		uintptr	pc;
5*ce95e1b3SDavid du Colombier 		uintptr regs[1];
6*ce95e1b3SDavid du Colombier 	};
7*ce95e1b3SDavid du Colombier 	uintptr	r1;		/* link */
8*ce95e1b3SDavid du Colombier 	union{
9*ce95e1b3SDavid du Colombier 		uintptr	r2;
10*ce95e1b3SDavid du Colombier 		uintptr	sp;
11*ce95e1b3SDavid du Colombier 		uintptr	usp;
12*ce95e1b3SDavid du Colombier 	};
13*ce95e1b3SDavid du Colombier 	uintptr	r3;		/* sb */
14*ce95e1b3SDavid du Colombier 	uintptr	r4;
15*ce95e1b3SDavid du Colombier 	uintptr	r5;
16*ce95e1b3SDavid du Colombier 	uintptr	r6;		/* up in kernel */
17*ce95e1b3SDavid du Colombier 	uintptr	r7;		/* m in kernel */
18*ce95e1b3SDavid du Colombier 	union{
19*ce95e1b3SDavid du Colombier 		uintptr	r8;
20*ce95e1b3SDavid du Colombier 		uintptr arg;
21*ce95e1b3SDavid du Colombier 		uintptr ret;
22*ce95e1b3SDavid du Colombier 	};
23*ce95e1b3SDavid du Colombier 	uintptr	r9;
24*ce95e1b3SDavid du Colombier 	uintptr	r10;
25*ce95e1b3SDavid du Colombier 	uintptr	r11;
26*ce95e1b3SDavid du Colombier 	uintptr	r12;
27*ce95e1b3SDavid du Colombier 	uintptr	r13;
28*ce95e1b3SDavid du Colombier 	uintptr	r14;
29*ce95e1b3SDavid du Colombier 	uintptr	r15;
30*ce95e1b3SDavid du Colombier 	uintptr	r16;
31*ce95e1b3SDavid du Colombier 	uintptr	r17;
32*ce95e1b3SDavid du Colombier 	uintptr	r18;
33*ce95e1b3SDavid du Colombier 	uintptr	r19;
34*ce95e1b3SDavid du Colombier 	uintptr	r20;
35*ce95e1b3SDavid du Colombier 	uintptr	r21;
36*ce95e1b3SDavid du Colombier 	uintptr	r22;
37*ce95e1b3SDavid du Colombier 	uintptr	r23;
38*ce95e1b3SDavid du Colombier 	uintptr	r24;
39*ce95e1b3SDavid du Colombier 	uintptr	r25;
40*ce95e1b3SDavid du Colombier 	uintptr	r26;
41*ce95e1b3SDavid du Colombier 	uintptr	r27;
42*ce95e1b3SDavid du Colombier 	uintptr	r28;
43*ce95e1b3SDavid du Colombier 	uintptr	r29;
44*ce95e1b3SDavid du Colombier 	uintptr	r30;
45*ce95e1b3SDavid du Colombier 	uintptr	r31;
46*ce95e1b3SDavid du Colombier 
47*ce95e1b3SDavid du Colombier 	/* csrs: generally supervisor ones */
48*ce95e1b3SDavid du Colombier 	uintptr	status;
49*ce95e1b3SDavid du Colombier 	uintptr	ie;
50*ce95e1b3SDavid du Colombier 	union {
51*ce95e1b3SDavid du Colombier 		uintptr	cause;
52*ce95e1b3SDavid du Colombier 		uintptr	type;
53*ce95e1b3SDavid du Colombier 	};
54*ce95e1b3SDavid du Colombier 	uintptr	tval;			/* faulting address */
55*ce95e1b3SDavid du Colombier 
56*ce95e1b3SDavid du Colombier 	uintptr	curmode;
57*ce95e1b3SDavid du Colombier };
58