Kthread infrastructure
[akaros.git] / kern / arch / sparc / trap.h
index 2b0163d..ac98bcc 100644 (file)
@@ -32,12 +32,20 @@ static inline bool in_kernel(struct trapframe *tf)
 }
 
 /* Needs to leave room for a trapframe at the top of the stack. */
-static inline void set_stack_pointer(uintptr_t sp)
+static inline void __attribute__((always_inline))
+set_stack_pointer(uintptr_t sp)
 {
        sp = sp - SIZEOF_TRAPFRAME_T;
        asm volatile("mov %0,%%sp" : : "r"(sp));
 }
 
+/* Save's the current kernel context into tf, setting the PC to the end of this
+ * function. */
+static inline void save_kernel_tf(struct trapframe *tf)
+{
+       /* TODO: save the registers, stack pointer, and have the PC pt to the end */
+}
+
 #endif /* !__ASSEMBLER__ */
 
 #endif /* !ROS_INC_ARCH_TRAP_H */