peredOS/kernel/gdt.h
msh356 884b58f304 MULTIPLE: 2 изменения
CHORE: удалено лишнее
ROADMAP: закрыто 2 пункта
2026-07-01 19:18:37 +03:00

25 lines
1 KiB
C

#ifndef GDT_H
#define GDT_H
#include <stdint.h>
// Структура одного дескриптора сегмента (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