diff options
Diffstat (limited to 'src/utils/gdt.h')
| -rw-r--r-- | src/utils/gdt.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/utils/gdt.h b/src/utils/gdt.h index 85a75aa..01a01bf 100644 --- a/src/utils/gdt.h +++ b/src/utils/gdt.h @@ -31,6 +31,35 @@ struct GDT_REGISTER { u32 base; } __attribute__((packed)); +typedef struct GDT_TSS { + u16 previous_task,previous_task_unused; + u32 esp0; + u16 ss0, ss0_unused; + u32 esp1; + u16 ss1, ss1_unused; + u32 esp2; + u16 ss2, ss2_unused; + u32 cr3; + u32 eip; + u32 eflags; + u32 eax; + u32 ecx; + u32 edx; + u32 ebx; + u32 esp; + u32 ebp; + u32 esi; + u32 edi; + u16 es, es_reserved; + u16 cs, cs_reserved; + u16 ss, ss_reserved; + u16 ds, ds_reserved; + u16 fs, fs_reserved; + u16 gs, gs_reserved; + u16 ldtss, ldtss_reserved; + u16 t_reserved, io_map; +} __attribute__((packed)) GDT_TSS; + /** * Copy GDT in memory */ @@ -39,6 +68,6 @@ void gdt_memcpy(); /** * Write a GDT entry at address addr */ -void gdt_write_entry(GDT_ENTRY entry, u32 addr); +void gdt_write_entry(GDT_ENTRY entry, u32 id); #endif |
