IRQ routing
[akaros.git] / kern / arch / riscv / trap.h
index fe53eb5..0336a8f 100644 (file)
@@ -2,9 +2,9 @@
 #define ROS_ARCH_TRAP_H
 
 #ifdef __riscv64
-# define SIZEOF_TRAPFRAME_T (36*8)
+# define SIZEOF_HW_TRAPFRAME (36*8)
 #else
-# define SIZEOF_TRAPFRAME_T (36*4)
+# define SIZEOF_HW_TRAPFRAME (36*4)
 #endif
 
 #ifndef __ASSEMBLER__
 /* Kernel message interrupt vector.  ignored, for the most part */
 #define I_KERNEL_MSG 255
 
+/* For kernel contexts, when we save/restore/move them around. */
+struct kernel_ctx {
+       /* RISCV's current pop_kernel_ctx assumes the hw_tf is the first member */
+       struct hw_trapframe             hw_tf;
+};
+
 static inline bool in_kernel(struct hw_trapframe *hw_tf)
 {
        return hw_tf->sr & SR_PS;