hw_x86_64: Use _mt_tss and _mt_begin labels to set TSS base

The TSS descriptor base address is assumed to be below the 0x10000 mark
(only bits 0-15 used) for now.
This commit is contained in:
Reto Buerki 2015-02-27 09:58:19 +01:00 committed by Christian Helmuth
parent 00921e4a5c
commit d0f14cb941
1 changed files with 4 additions and 1 deletions

View File

@ -29,6 +29,9 @@
.set TRAPNO_OFFSET, 19 * 8
.set CR3_OFFSET, 21 * 8
/* tss segment limit */
.set TSS_LIMIT, 0x68
.macro _isr_entry
.align 4, 0x90
.endm
@ -291,7 +294,7 @@
/* GDTE_LONG | GDTE_PRESENT | GDTE_TYPE_DATA_A | GDTE_TYPE_DATA_W | GDTE_NON_SYSTEM */
.long 0x20f300
/* Task segment descriptor */
.long 0x1e000068
.long (_mt_tss - _mt_begin) << 16 | TSS_LIMIT
/* GDTE_PRESENT | GDTE_SYS_TSS */
.long 0x8900
.long 0