MicrOS
idt_entry.h
Go to the documentation of this file.
1 #ifndef IDT_ENTRY_H
2 #define IDT_ENTRY_H
3 
4 #include <stdint.h>
5 
6 /*
7 IDF entry gate types:
8  - task - hardware multitasking things
9  - interrupt - jump to the specified function
10  - trap - similar to interrupt, but without disabling other interrupts
11 */
12 typedef enum idt_entrygatetype
13 {
14  Task_16Bit = 0x5,
16  Trap_16Bit = 0x7,
17 
19  Trap_32Bit = 0xF
21 
22 typedef struct idt_entry
23 {
24  uint16_t offset_0_15;
25  uint16_t selector;
26  uint8_t reserved;
27  uint8_t type : 4;
28  uint8_t storage_segment : 1;
29  uint8_t privilege_level : 2;
30  uint8_t present : 1;
31  uint16_t offset_16_31;
32 } __attribute__((packed)) idt_entry;
33 
34 #endif
Definition: idt_entry.h:16
uint8_t present
Definition: idt_entry.h:30
uint8_t reserved
Definition: idt_entry.h:26
Definition: idt_entry.h:18
uint16_t selector
Definition: idt_entry.h:25
Definition: idt_entry.h:19
Definition: idt_entry.h:14
idt_entrygatetype
Definition: idt_entry.h:12
uint16_t offset_0_15
Definition: idt_entry.h:24
uint8_t type
Definition: idt_entry.h:27
uint8_t privilege_level
Definition: idt_entry.h:29
uint16_t offset_16_31
Definition: idt_entry.h:31
uint8_t storage_segment
Definition: idt_entry.h:28
Definition: idt_entry.h:22
Definition: idt_entry.h:15