2026-06-11 23:23:39 -05:00
|
|
|
#ifndef KIDT_H
|
|
|
|
|
#define KIDT_H
|
|
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
2026-06-12 23:03:00 -04:00
|
|
|
typedef struct __attribute__((packed)){
|
2026-06-11 23:23:39 -05:00
|
|
|
uint16_t isr_low; // The lower 16 bits of the ISR's address
|
|
|
|
|
uint16_t kernel_cs; // The GDT segment selector the CPU will load into CS
|
|
|
|
|
uint8_t reserved; // Set to 0
|
|
|
|
|
uint8_t attributes;// Type and attributes flags
|
|
|
|
|
uint16_t isr_high; // The higher 16 bits of the ISR's address
|
2026-06-12 23:03:00 -04:00
|
|
|
} idt_entry;
|
2026-06-11 23:23:39 -05:00
|
|
|
|
2026-06-12 23:03:00 -04:00
|
|
|
typedef struct __attribute__((packed)){
|
2026-06-11 23:23:39 -05:00
|
|
|
uint16_t limit;
|
|
|
|
|
uint32_t base;
|
2026-06-12 23:03:00 -04:00
|
|
|
} idt_ptr;
|
2026-06-11 23:23:39 -05:00
|
|
|
|
|
|
|
|
#endif
|