* same with xv6
[mascara-docs.git] / i386 / standford / 2004 / src / lab4 / kern / trap.h
bloba44e207c20d32f6e7176f08f64075938341228de
1 /* See COPYRIGHT for copyright information. */
3 #ifndef _KERN_TRAP_H_
4 #define _KERN_TRAP_H_
6 #include <inc/trap.h>
7 #include <inc/mmu.h>
10 /* The user trap frame is always at the top of the kernel stack */
11 #define UTF ((struct Trapframe*)(KSTACKTOP-sizeof(struct Trapframe)))
13 /* The kernel's interrupt descriptor table */
14 extern struct Gatedesc idt[];
17 * Page fault modes inside kernel.
19 #define PFM_NONE 0x0 // No page faults expected. Must be a kernel bug
20 #define PFM_KILL 0x1 // On fault kill user process.
22 extern u_int page_fault_mode;
25 void idt_init(void);
26 void print_trapframe(struct Trapframe *tf);
27 void page_fault_handler(struct Trapframe *);
28 void backtrace(struct Trapframe *);
30 #endif /* _KERN_TRAP_H_ */