tests: append a TSS to the GDT tests

This commit is contained in:
Pierre Pronchery 2025-03-20 17:51:43 +01:00
parent a10b4f2b25
commit abf21dedde

View File

@ -12,6 +12,11 @@
#if defined(__amd64__) || defined(__i386__)
/* variables */
static TSS tss;
/* functions */
/* __arch_setgdt */
void __arch_setgdt(GDTEntry const * entries, size_t count)
{
@ -51,6 +56,7 @@ int main(int argc, char * argv[])
gdt = gdt_init();
gdt_append(gdt, 0x00000000, 0xffffffff, PROT_READ | PROT_EXEC);
gdt_append(gdt, 0x00000000, 0xffffffff, PROT_READ | PROT_WRITE);
gdt_append_system(gdt, &tss, sizeof(tss), GDT_SYSTEM_TYPE_TSS);
gdt_apply(gdt);
/* 4 MB code + 4 MB data (read-write) + 4 MB data (read-only) */
@ -59,6 +65,7 @@ int main(int argc, char * argv[])
gdt_append(gdt, 0x00400000, 0x00400000, PROT_READ | PROT_EXEC);
gdt_append(gdt, 0x00800000, 0x00400000, PROT_READ | PROT_WRITE);
gdt_append(gdt, 0x00c00000, 0x00400000, PROT_READ);
gdt_append_system(gdt, &tss, sizeof(tss), GDT_SYSTEM_TYPE_TSS);
gdt_apply(gdt);
#endif