|
miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
|
#include <miniOS/types.h>

Go to the source code of this file.
Classes | |
| struct | idt_entry_t |
| struct | idt_descriptor_t |
Typedefs | |
| typedef void | idt_handler_func(void *interrupt_stack_frame) |
Functions | |
| struct idt_entry_t | __attribute__ ((packed)) |
| void | idt_init () |
| void | idt_reload (void) |
| void | idt_set_handler (uint8_t type, addr_t handler_addr, unsigned int dpl, uint8_t gate_type) |
| void | irq_set_handler (uint8_t irq, idt_handler_func *fn) |
| #define EXCEPT_ALIGNMENT_CHECK 17 |
| #define EXCEPT_BOUND_RANGE_EXCEDEED 5 |
| #define EXCEPT_BREAKPOINT 3 |
| #define EXCEPT_COPROCESSOR_SEGMENT_OVERRUN 9 |
| #define EXCEPT_DEBUG 1 |
| #define EXCEPT_DEVICE_NOT_AVAILABLE 7 |
| #define EXCEPT_DIVIDE_ERROR 0 |
| #define EXCEPT_DOUBLE_FAULT 8 |
| #define EXCEPT_FLOATING_POINT_ERROR 16 |
| #define EXCEPT_GENERAL_PROTECTION 13 |
| #define EXCEPT_INTEL_RESERVED_1 15 |
| #define EXCEPT_INTEL_RESERVED_10 27 |
| #define EXCEPT_INTEL_RESERVED_11 28 |
| #define EXCEPT_INTEL_RESERVED_12 29 |
| #define EXCEPT_INTEL_RESERVED_13 30 |
| #define EXCEPT_INTEL_RESERVED_14 31 |
| #define EXCEPT_INTEL_RESERVED_2 19 |
| #define EXCEPT_INTEL_RESERVED_3 20 |
| #define EXCEPT_INTEL_RESERVED_4 21 |
| #define EXCEPT_INTEL_RESERVED_5 22 |
| #define EXCEPT_INTEL_RESERVED_6 23 |
| #define EXCEPT_INTEL_RESERVED_7 24 |
| #define EXCEPT_INTEL_RESERVED_8 25 |
| #define EXCEPT_INTEL_RESERVED_9 26 |
| #define EXCEPT_INVALID_OPCODE 6 |
| #define EXCEPT_INVALID_TSS 10 |
| #define EXCEPT_MACHINE_CHECK 18 |
| #define EXCEPT_NMI_INTERRUPT 2 |
| #define EXCEPT_OVERFLOW 4 |
| #define EXCEPT_PAGE_FAULT 14 |
| #define EXCEPT_SEGMENT_NOT_PRESENT 11 |
| #define EXCEPT_STACK_SEGMENT_FAULT 12 |
| #define IDT_CALL_GATE (0b1100) |
| #define IDT_INTERRUPT_GATE (0b1110) |
| #define IDT_TRAP_GATE (0b1111) |
| #define IRQ_AVAILABLE_1 10 |
| #define IRQ_AVAILABLE_2 11 |
| #define IRQ_COM1 4 |
| #define IRQ_COM2 3 |
| #define IRQ_COPROCESSOR 13 |
| #define IRQ_FLOPPY 6 |
| #define IRQ_KEYBOARD 1 |
| #define IRQ_LPT1 7 |
| #define IRQ_LPT2 5 |
| #define IRQ_PRIMARY_IDE 14 |
| #define IRQ_PS2_MOUSE 12 |
| #define IRQ_RT_CLOCK 8 |
| #define IRQ_SECONDARY_IDE 15 |
| #define IRQ_TIMER 0 |
| #define MASTER_PIC 9 |
| #define NR_EXCEPTIONS 32 |
| #define NR_IRQS 16 |
| #define PIC1_CMD 0x20 |
| #define PIC1_DATA 0x21 |
| #define PIC2_CMD 0xA0 |
| #define PIC2_DATA 0xA1 |
| #define PIC_EOI 0x20 |
| #define SLAVE_PIC 2 |
| typedef void idt_handler_func(void *interrupt_stack_frame) |
| struct idt_entry_t __attribute__ | ( | (packed) | ) |
| void idt_init | ( | ) |


| void idt_reload | ( | void | ) |




| void irq_set_handler | ( | uint8_t | irq, |
| idt_handler_func * | fn ) |


| uint8_t dpl |
| uint8_t irq_stack_index |
| struct idt_entry_t* offset |
| uint32_t offset_high |
| uint16_t offset_low |
| uint16_t offset_middle |
| uint8_t present |
| uint16_t selector |
| uint16_t size |
| uint8_t type |
| uint8_t zero1 |
| uint8_t zero2 |
| uint32_t zero3 |