/ kernel / src / arch / x86 / exceptions.rs
exceptions.rs
 1  use x86_64::structures::idt::{InterruptStackFrame, PageFaultErrorCode};
 2  
 3  pub extern "x86-interrupt" fn divide_by_zero(_stack_frame: InterruptStackFrame) {
 4      todo!();
 5  }
 6  
 7  pub extern "x86-interrupt" fn debug(_stack_frame: InterruptStackFrame) {
 8      todo!();
 9  }
10  
11  pub extern "x86-interrupt" fn non_maskable_interrupt(_stack_frame: InterruptStackFrame) {
12      todo!();
13  }
14  
15  pub extern "x86-interrupt" fn breakpoint_handler(_stack_frame: InterruptStackFrame) {}
16  
17  pub extern "x86-interrupt" fn overflow(_stack_frame: InterruptStackFrame) {
18      todo!();
19  }
20  
21  pub extern "x86-interrupt" fn bound_range_exceeded(_stack_frame: InterruptStackFrame) {
22      todo!();
23  }
24  
25  pub extern "x86-interrupt" fn invalid_opcode(_stack_frame: InterruptStackFrame) {
26      todo!();
27  }
28  
29  pub extern "x86-interrupt" fn device_not_available(_stack_frame: InterruptStackFrame) {
30      todo!();
31  }
32  
33  pub extern "x86-interrupt" fn double_fault(_stack_frame: InterruptStackFrame, _err: u64) -> ! {
34      panic!();
35  }
36  
37  pub extern "x86-interrupt" fn invalid_tss(_stack_frame: InterruptStackFrame, _err: u64) {
38      panic!();
39  }
40  
41  pub extern "x86-interrupt" fn segment_not_present(_stack_frame: InterruptStackFrame, _err: u64) {
42      panic!("#NP: {:?}\nerr: {}", _stack_frame, _err);
43  }
44  
45  pub extern "x86-interrupt" fn stack_segment_fault(_stack_frame: InterruptStackFrame, _err: u64) {
46      todo!();
47  }
48  
49  pub extern "x86-interrupt" fn general_protection_fault(
50      _stack_frame: InterruptStackFrame,
51      _err: u64,
52  ) {
53      todo!();
54  }
55  
56  pub extern "x86-interrupt" fn page_fault(
57      _stack_frame: InterruptStackFrame,
58      _err: PageFaultErrorCode,
59  ) {
60      loop {}
61  }
62  
63  pub extern "x86-interrupt" fn x87_floating_point(_stack_frame: InterruptStackFrame) {
64      todo!();
65  }
66  
67  pub extern "x86-interrupt" fn alignment_check(_stack_frame: InterruptStackFrame, _err: u64) {
68      todo!();
69  }
70  
71  pub extern "x86-interrupt" fn machine_check(_stack_frame: InterruptStackFrame) -> ! {
72      panic!();
73  }
74  
75  pub extern "x86-interrupt" fn simd_fp(_stack_frame: InterruptStackFrame) {
76      todo!();
77  }
78  
79  pub extern "x86-interrupt" fn virtualization(_stack_frame: InterruptStackFrame) {
80      todo!();
81  }
82  
83  pub extern "x86-interrupt" fn vmm_communication(_stack_frame: InterruptStackFrame, _err: u64) {
84      todo!();
85  }
86  
87  pub extern "x86-interrupt" fn security(_stack_frame: InterruptStackFrame, _err: u64) {
88      todo!();
89  }