sos

[unmaintained] experimenting with low level OS development
Log | Files | Refs | README | LICENSE

gdt.h (467B)


      1 #ifndef GDT_H
      2 #define GDT_H
      3 
      4 #include <stdint.h>
      5 
      6 #define GDT_ENTRIES 3
      7 
      8 struct gdt_entry {
      9     uint16_t limit_lower;
     10     uint16_t base_lower;
     11     uint8_t base_middle;
     12     uint8_t access_rights;
     13     uint8_t flags_limit_higher;
     14     uint8_t base_higher;
     15 } __attribute__((packed));
     16 
     17 struct gdt_description {
     18     uint16_t limit;
     19     uint32_t base;
     20 } __attribute__((packed));
     21 
     22 struct gdt_entry gdt[GDT_ENTRIES];
     23 struct gdt_description gdt_desc;
     24 
     25 void gdt_setup();
     26 
     27 #endif