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 }