summaryrefslogtreecommitdiff
path: root/utils/libmach/uregi.h
diff options
context:
space:
mode:
authorRichard Miller <millerresearch@gmail.com>2020-11-09 18:11:51 +0000
committerCharles Forsyth <charles.forsyth@gmail.com>2020-11-09 18:11:51 +0000
commitec7a4b742467a19160dfa5322e3e0880e4abed48 (patch)
tree523d2f81946b1e0abe4afddf1d2fce7e1525b7d7 /utils/libmach/uregi.h
parented97654bd7a11d480b44505c8300d06b42e5fefe (diff)
parent6e84dc968bc4eaf047fbefcba2f670940718dda8 (diff)
Merged in millerresearch/inferno-riscv/utils-riscv (pull request #8)
Add toolchain and libmach support for riscv and riscv64 Approved-by: Charles Forsyth <charles.forsyth@gmail.com>
Diffstat (limited to 'utils/libmach/uregi.h')
-rw-r--r--utils/libmach/uregi.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/utils/libmach/uregi.h b/utils/libmach/uregi.h
new file mode 100644
index 00000000..27d202b6
--- /dev/null
+++ b/utils/libmach/uregi.h
@@ -0,0 +1,57 @@
+struct Ureg
+{
+ union {
+ uintptr pc;
+ uintptr regs[1];
+ };
+ uintptr r1; /* link */
+ union{
+ uintptr r2;
+ uintptr sp;
+ uintptr usp;
+ };
+ uintptr r3; /* sb */
+ uintptr r4;
+ uintptr r5;
+ uintptr r6; /* up in kernel */
+ uintptr r7; /* m in kernel */
+ union{
+ uintptr r8;
+ uintptr arg;
+ uintptr ret;
+ };
+ uintptr r9;
+ uintptr r10;
+ uintptr r11;
+ uintptr r12;
+ uintptr r13;
+ uintptr r14;
+ uintptr r15;
+ uintptr r16;
+ uintptr r17;
+ uintptr r18;
+ uintptr r19;
+ uintptr r20;
+ uintptr r21;
+ uintptr r22;
+ uintptr r23;
+ uintptr r24;
+ uintptr r25;
+ uintptr r26;
+ uintptr r27;
+ uintptr r28;
+ uintptr r29;
+ uintptr r30;
+ uintptr r31;
+
+ /* csrs: generally supervisor ones */
+ uintptr status;
+ uintptr ie;
+ union {
+ uintptr cause;
+ uintptr type;
+ };
+ uintptr tval; /* faulting address */
+
+ uintptr curmode;
+};