fn default() -> Self {
        // Our IdtTable starts out with 256 'NULL' descriptors
        let mut table = IdtTable([Descriptor64::NULL; IDT_SIZE]);

        idt_set!(table.0, DIVIDE_ERROR_VECTOR, isr_handler0, 0);
        idt_set!(table.0, DEBUG_VECTOR, isr_handler1, 2);
        idt_set!(table.0, NONMASKABLE_INTERRUPT_VECTOR, isr_handler2, 0);
        idt_set!(table.0, BREAKPOINT_VECTOR, isr_handler3, 2);
        idt_set!(table.0, OVERFLOW_VECTOR, isr_handler4, 0);
        idt_set!(table.0, BOUND_RANGE_EXCEEDED_VECTOR, isr_handler5, 0);
        idt_set!(table.0, INVALID_OPCODE_VECTOR, isr_handler6, 0);
        idt_set!(table.0, DEVICE_NOT_AVAILABLE_VECTOR, isr_handler7, 0);
        // For double-faults, we use the
        // _early handler to abort in any case:
        idt_set!(table.0, DOUBLE_FAULT_VECTOR, isr_handler_early8, 1);
        idt_set!(table.0, COPROCESSOR_SEGMENT_OVERRUN_VECTOR, isr_handler9, 0);
        idt_set!(table.0, INVALID_TSS_VECTOR, isr_handler10, 0);
        idt_set!(table.0, SEGMENT_NOT_PRESENT_VECTOR, isr_handler11, 0);
        idt_set!(table.0, STACK_SEGEMENT_FAULT_VECTOR, isr_handler12, 0);
        idt_set!(table.0, GENERAL_PROTECTION_FAULT_VECTOR, isr_handler13, 0);
        idt_set!(table.0, PAGE_FAULT_VECTOR, isr_handler14, 0);

        idt_set!(table.0, X87_FPU_VECTOR, isr_handler16, 0);
        idt_set!(table.0, ALIGNMENT_CHECK_VECTOR, isr_handler17, 0);
        // For machine-check exceptions, we use the
        // _early handler to abort in any case:
        idt_set!(table.0, MACHINE_CHECK_VECTOR, isr_handler_early18, 1);
        idt_set!(table.0, SIMD_FLOATING_POINT_VECTOR, isr_handler19, 0);
        idt_set!(table.0, VIRTUALIZATION_VECTOR, isr_handler20, 0);
        idt_set!(table.0, 30, isr_handler30, 0);

        // PIC interrupts:
        idt_set!(table.0, 32, isr_handler32, 0);
        idt_set!(table.0, 33, isr_handler33, 0);
        idt_set!(table.0, 34, isr_handler34, 0);
        idt_set!(table.0, 35, isr_handler35, 0);
        idt_set!(table.0, 36, isr_handler36, 0);
        idt_set!(table.0, 37, isr_handler37, 0);
        idt_set!(table.0, 38, isr_handler38, 0);
        idt_set!(table.0, 39, isr_handler39, 0);
        idt_set!(table.0, 40, isr_handler40, 0);
        idt_set!(table.0, 41, isr_handler41, 0);
        idt_set!(table.0, 42, isr_handler42, 0);
        idt_set!(table.0, 43, isr_handler43, 0);
        idt_set!(table.0, 44, isr_handler44, 0);
        idt_set!(table.0, 45, isr_handler45, 0);
        idt_set!(table.0, 46, isr_handler46, 0);
        idt_set!(table.0, 47, isr_handler47, 0);

        idt_set!(table.0, TLB_WORK_PENDING as usize, isr_handler251, 0);
        idt_set!(table.0, MLNR_GC_INIT as usize, isr_handler250, 0);
        idt_set!(table.0, apic::TSC_TIMER_VECTOR as usize, isr_handler252, 0);

        table
    }
/// Initializes the given IdtTable by populating it with external
/// IRQ handler functions as declared by `isr.S`.
Initializes the given IdtTable by populating it with external
IRQ handler functions as declared by `isr.S`.
Initializes the given IdtTable by populating it with external IRQ handler functions as declared by ` isr . S ` .
fn default() -> Self {
        // Our IdtTable starts out with 256 'NULL' descriptors
        let mut table = IdtTable([Descriptor64::NULL; IDT_SIZE]);
        idt_set!(table.0, DIVIDE_ERROR_VECTOR, isr_handler0, 0);
        idt_set!(table.0, DEBUG_VECTOR, isr_handler1, 2);
        idt_set!(table.0, NONMASKABLE_INTERRUPT_VECTOR, isr_handler2, 0);
        idt_set!(table.0, BREAKPOINT_VECTOR, isr_handler3, 2);
        idt_set!(table.0, OVERFLOW_VECTOR, isr_handler4, 0);
        idt_set!(table.0, BOUND_RANGE_EXCEEDED_VECTOR, isr_handler5, 0);
        idt_set!(table.0, INVALID_OPCODE_VECTOR, isr_handler6, 0);
        idt_set!(table.0, DEVICE_NOT_AVAILABLE_VECTOR, isr_handler7, 0);
        // For double-faults, we use the
        // _early handler to abort in any case:
        idt_set!(table.0, DOUBLE_FAULT_VECTOR, isr_handler_early8, 1);
        idt_set!(table.0, COPROCESSOR_SEGMENT_OVERRUN_VECTOR, isr_handler9, 0);
        idt_set!(table.0, INVALID_TSS_VECTOR, isr_handler10, 0);
        idt_set!(table.0, SEGMENT_NOT_PRESENT_VECTOR, isr_handler11, 0);
        idt_set!(table.0, STACK_SEGEMENT_FAULT_VECTOR, isr_handler12, 0);
        idt_set!(table.0, GENERAL_PROTECTION_FAULT_VECTOR, isr_handler13, 0);
        idt_set!(table.0, PAGE_FAULT_VECTOR, isr_handler14, 0);
        idt_set!(table.0, X87_FPU_VECTOR, isr_handler16, 0);
        idt_set!(table.0, ALIGNMENT_CHECK_VECTOR, isr_handler17, 0);
        // For machine-check exceptions, we use the
        // _early handler to abort in any case:
        idt_set!(table.0, MACHINE_CHECK_VECTOR, isr_handler_early18, 1);
        idt_set!(table.0, SIMD_FLOATING_POINT_VECTOR, isr_handler19, 0);
        idt_set!(table.0, VIRTUALIZATION_VECTOR, isr_handler20, 0);
        idt_set!(table.0, 30, isr_handler30, 0);
        // PIC interrupts:
        idt_set!(table.0, 32, isr_handler32, 0);
        idt_set!(table.0, 33, isr_handler33, 0);
        idt_set!(table.0, 34, isr_handler34, 0);
        idt_set!(table.0, 35, isr_handler35, 0);
        idt_set!(table.0, 36, isr_handler36, 0);
        idt_set!(table.0, 37, isr_handler37, 0);
        idt_set!(table.0, 38, isr_handler38, 0);
        idt_set!(table.0, 39, isr_handler39, 0);
        idt_set!(table.0, 40, isr_handler40, 0);
        idt_set!(table.0, 41, isr_handler41, 0);
        idt_set!(table.0, 42, isr_handler42, 0);
        idt_set!(table.0, 43, isr_handler43, 0);
        idt_set!(table.0, 44, isr_handler44, 0);
        idt_set!(table.0, 45, isr_handler45, 0);
        idt_set!(table.0, 46, isr_handler46, 0);
        idt_set!(table.0, 47, isr_handler47, 0);
        idt_set!(table.0, TLB_WORK_PENDING as usize, isr_handler251, 0);
        idt_set!(table.0, MLNR_GC_INIT as usize, isr_handler250, 0);
        idt_set!(table.0, apic::TSC_TIMER_VECTOR as usize, isr_handler252, 0);
        table
    }
fn default ( ) -> Self { // Our IdtTable starts out with 256 'NULL' descriptors let mut table = IdtTable ( [ Descriptor64 :: NULL ; IDT_SIZE ] ) ; idt_set ! ( table 0 DIVIDE_ERROR_VECTOR isr_handler0 0 ) ; idt_set ! ( table 0 DEBUG_VECTOR isr_handler1 2 ) ; idt_set ! ( table 0 NONMASKABLE_INTERRUPT_VECTOR isr_handler2 0 ) ; idt_set ! ( table 0 BREAKPOINT_VECTOR isr_handler3 2 ) ; idt_set ! ( table 0 OVERFLOW_VECTOR isr_handler4 0 ) ; idt_set ! ( table 0 BOUND_RANGE_EXCEEDED_VECTOR isr_handler5 0 ) ; idt_set ! ( table 0 INVALID_OPCODE_VECTOR isr_handler6 0 ) ; idt_set ! ( table 0 DEVICE_NOT_AVAILABLE_VECTOR isr_handler7 0 ) ; // For double-faults, we use the // _early handler to abort in any case: idt_set ! ( table 0 DOUBLE_FAULT_VECTOR isr_handler_early8 1 ) ; idt_set ! ( table 0 COPROCESSOR_SEGMENT_OVERRUN_VECTOR isr_handler9 0 ) ; idt_set ! ( table 0 INVALID_TSS_VECTOR isr_handler10 0 ) ; idt_set ! ( table 0 SEGMENT_NOT_PRESENT_VECTOR isr_handler11 0 ) ; idt_set ! ( table 0 STACK_SEGEMENT_FAULT_VECTOR isr_handler12 0 ) ; idt_set ! ( table 0 GENERAL_PROTECTION_FAULT_VECTOR isr_handler13 0 ) ; idt_set ! ( table 0 PAGE_FAULT_VECTOR isr_handler14 0 ) ; idt_set ! ( table 0 X87_FPU_VECTOR isr_handler16 0 ) ; idt_set ! ( table 0 ALIGNMENT_CHECK_VECTOR isr_handler17 0 ) ; // For machine-check exceptions, we use the // _early handler to abort in any case: idt_set ! ( table 0 MACHINE_CHECK_VECTOR isr_handler_early18 1 ) ; idt_set ! ( table 0 SIMD_FLOATING_POINT_VECTOR isr_handler19 0 ) ; idt_set ! ( table 0 VIRTUALIZATION_VECTOR isr_handler20 0 ) ; idt_set ! ( table 0 30 isr_handler30 0 ) ; // PIC interrupts: idt_set ! ( table 0 32 isr_handler32 0 ) ; idt_set ! ( table 0 33 isr_handler33 0 ) ; idt_set ! ( table 0 34 isr_handler34 0 ) ; idt_set ! ( table 0 35 isr_handler35 0 ) ; idt_set ! ( table 0 36 isr_handler36 0 ) ; idt_set ! ( table 0 37 isr_handler37 0 ) ; idt_set ! ( table 0 38 isr_handler38 0 ) ; idt_set ! ( table 0 39 isr_handler39 0 ) ; idt_set ! ( table 0 40 isr_handler40 0 ) ; idt_set ! ( table 0 41 isr_handler41 0 ) ; idt_set ! ( table 0 42 isr_handler42 0 ) ; idt_set ! ( table 0 43 isr_handler43 0 ) ; idt_set ! ( table 0 44 isr_handler44 0 ) ; idt_set ! ( table 0 45 isr_handler45 0 ) ; idt_set ! ( table 0 46 isr_handler46 0 ) ; idt_set ! ( table 0 47 isr_handler47 0 ) ; idt_set ! ( table 0 TLB_WORK_PENDING as usize isr_handler251 0 ) ; idt_set ! ( table 0 MLNR_GC_INIT as usize isr_handler250 0 ) ; idt_set ! ( table 0 apic TSC_TIMER_VECTOR as usize isr_handler252 0 ) ; table }
Initializes the given IdtTable by populating it with external
IRQ handler functions as declared by `isr.S`.
Initializes the given IdtTable by populating it with external IRQ handler functions as declared by ` isr . S ` .