summaryrefslogtreecommitdiff
path: root/utils/libmach/uregi.h
diff options
context:
space:
mode:
authorRichard Miller <miller.research@gmail.com>2020-11-09 11:33:44 +0000
committerRichard Miller <miller.research@gmail.com>2020-11-09 11:33:44 +0000
commit2a571cc0ece4073eb56d5ccfc3e061a09a353e13 (patch)
tree7daccd0dac9144a55a00570e3fb11af7f0862659 /utils/libmach/uregi.h
parented97654bd7a11d480b44505c8300d06b42e5fefe (diff)
Add riscv and riscv64 support to libmach
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;
+};