smp_call wait / backend work
[akaros.git] / kern / trap.h
1 /* See COPYRIGHT for copyright information. */
2
3 #ifndef ROS_KERN_TRAP_H
4 #define ROS_KERN_TRAP_H
5 #ifndef ROS_KERNEL
6 # error "This is an ROS kernel header; user programs should not #include it"
7 #endif
8
9 #include <inc/trap.h>
10 #include <inc/mmu.h>
11
12 // func ptr for interrupt service routines
13 typedef void (*isr_t)(trapframe_t* tf);
14
15 /* The kernel's interrupt descriptor table */
16 extern gatedesc_t idt[];
17
18 void idt_init(void);
19 void register_interrupt_handler(isr_t (COUNT(256)table)[], uint8_t isr, isr_t handler);
20 void (IN_HANDLER print_regs)(push_regs_t *regs);
21 void (IN_HANDLER print_trapframe)(trapframe_t *tf);
22 void (IN_HANDLER page_fault_handler)(trapframe_t *tf);
23 void backtrace(trapframe_t *tf);
24
25 #endif /* ROS_KERN_TRAP_H */