diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2021-04-09 18:18:15 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2021-04-09 18:18:15 +0200 |
| commit | c6aa00eea71c91a219dae8688530ff0a3b83bcd4 (patch) | |
| tree | e2f4d26362e8a57b5fba1a3392b947b95cb40039 /src/utils/gdt.h | |
| parent | deabd68158b865f2bcf928c604d6c46f73832d0a (diff) | |
Enable TSS segment
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 |
