#include <oskit/x86/tss.h>
struct x86_tss { int back_link; /* previous task's segment, if nested */ int esp0; /* initial stack pointer ... */ int ss0; /* and segment for ring 0 */ int esp1; /* initial stack pointer ... */ int ss1; /* and segment for ring 1 */ int esp2; /* initial stack pointer ... */ int ss2; /* and segment for ring 2 */ int cr3; /* CR3 - page table physical address */ int eip; /* eip */ int eflags; /* eflags */ int eax; /* eax */ int ecx; /* ecx */ int edx; /* edx */ int ebx; /* ebx */ int esp; /* current stack pointer (ring 3) */ int ebp; /* ebp */ int esi; /* esi */ int edi; /* edi */ int es; /* es */ int cs; /* cs */ int ss; /* current stack segment (ring 3) */ int ds; /* ds */ int fs; /* fs */ int gs; /* gs */ int ldt; /* local descriptor table segment */ unsigned short trace_trap; /* trap on switch to task */ unsigned short io_bit_map_offset; /* offset to IO perm bitmap */ };
XXXXXX only the 32-bit version
This contains the definition of a 32-bit tss. The tss used by the 80286 is incompatible with this.
This header file is taken from CMU's Mach kernel.