1 #ifndef __TSS_SEGMENT_H 2 #define __TSS_SEGMENT_H 3 4 struct tss_segment_32 { 5 u32 prev_task_link; 6 u32 esp0; 7 u32 ss0; 8 u32 esp1; 9 u32 ss1; 10 u32 esp2; 11 u32 ss2; 12 u32 cr3; 13 u32 eip; 14 u32 eflags; 15 u32 eax; 16 u32 ecx; 17 u32 edx; 18 u32 ebx; 19 u32 esp; 20 u32 ebp; 21 u32 esi; 22 u32 edi; 23 u32 es; 24 u32 cs; 25 u32 ss; 26 u32 ds; 27 u32 fs; 28 u32 gs; 29 u32 ldt_selector; 30 u16 t; 31 u16 io_map; 32 }; 33 34 struct tss_segment_16 { 35 u16 prev_task_link; 36 u16 sp0; 37 u16 ss0; 38 u16 sp1; 39 u16 ss1; 40 u16 sp2; 41 u16 ss2; 42 u16 ip; 43 u16 flag; 44 u16 ax; 45 u16 cx; 46 u16 dx; 47 u16 bx; 48 u16 sp; 49 u16 bp; 50 u16 si; 51 u16 di; 52 u16 es; 53 u16 cs; 54 u16 ss; 55 u16 ds; 56 u16 ldt; 57 }; 58 59 #endif 60