#ifndef GDT_H #define GDT_H #include // Структура одного дескриптора сегмента (8 байт) struct gdt_entry { uint16_t limit_low; // Младшие 16 бит лимита uint16_t base_low; // Младшие 16 бит базы uint8_t base_middle; // Следующие 8 бит базы uint8_t access; // Байт доступа (права, кольцо защиты) uint8_t granularity; // Гранулярность и старшие 4 бита лимита uint8_t base_high; // Старшие 8 бит базы } __attribute__((packed)); // Структура указателя для инструкции lgdt (6 байт) struct gdt_ptr { uint16_t limit; // Размер всей GDT в байтах минус 1 uint32_t base; // Физический адрес начала массива gdt_entry } __attribute__((packed)); // Функции для вызова из ядра void gdt_init(void); #endif