tests: append a TSS to the GDT tests
This commit is contained in:
parent
a10b4f2b25
commit
abf21dedde
|
@ -12,6 +12,11 @@
|
||||||
|
|
||||||
|
|
||||||
#if defined(__amd64__) || defined(__i386__)
|
#if defined(__amd64__) || defined(__i386__)
|
||||||
|
/* variables */
|
||||||
|
static TSS tss;
|
||||||
|
|
||||||
|
|
||||||
|
/* functions */
|
||||||
/* __arch_setgdt */
|
/* __arch_setgdt */
|
||||||
void __arch_setgdt(GDTEntry const * entries, size_t count)
|
void __arch_setgdt(GDTEntry const * entries, size_t count)
|
||||||
{
|
{
|
||||||
|
@ -51,6 +56,7 @@ int main(int argc, char * argv[])
|
||||||
gdt = gdt_init();
|
gdt = gdt_init();
|
||||||
gdt_append(gdt, 0x00000000, 0xffffffff, PROT_READ | PROT_EXEC);
|
gdt_append(gdt, 0x00000000, 0xffffffff, PROT_READ | PROT_EXEC);
|
||||||
gdt_append(gdt, 0x00000000, 0xffffffff, PROT_READ | PROT_WRITE);
|
gdt_append(gdt, 0x00000000, 0xffffffff, PROT_READ | PROT_WRITE);
|
||||||
|
gdt_append_system(gdt, &tss, sizeof(tss), GDT_SYSTEM_TYPE_TSS);
|
||||||
gdt_apply(gdt);
|
gdt_apply(gdt);
|
||||||
|
|
||||||
/* 4 MB code + 4 MB data (read-write) + 4 MB data (read-only) */
|
/* 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, 0x00400000, 0x00400000, PROT_READ | PROT_EXEC);
|
||||||
gdt_append(gdt, 0x00800000, 0x00400000, PROT_READ | PROT_WRITE);
|
gdt_append(gdt, 0x00800000, 0x00400000, PROT_READ | PROT_WRITE);
|
||||||
gdt_append(gdt, 0x00c00000, 0x00400000, PROT_READ);
|
gdt_append(gdt, 0x00c00000, 0x00400000, PROT_READ);
|
||||||
|
gdt_append_system(gdt, &tss, sizeof(tss), GDT_SYSTEM_TYPE_TSS);
|
||||||
gdt_apply(gdt);
|
gdt_apply(gdt);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user