0001
0002 #ifndef __TSS_SEGMENT_H
0003 #define __TSS_SEGMENT_H
0004
0005 struct tss_segment_32 {
0006 u32 prev_task_link;
0007 u32 esp0;
0008 u32 ss0;
0009 u32 esp1;
0010 u32 ss1;
0011 u32 esp2;
0012 u32 ss2;
0013 u32 cr3;
0014 u32 eip;
0015 u32 eflags;
0016 u32 eax;
0017 u32 ecx;
0018 u32 edx;
0019 u32 ebx;
0020 u32 esp;
0021 u32 ebp;
0022 u32 esi;
0023 u32 edi;
0024 u32 es;
0025 u32 cs;
0026 u32 ss;
0027 u32 ds;
0028 u32 fs;
0029 u32 gs;
0030 u32 ldt_selector;
0031 u16 t;
0032 u16 io_map;
0033 };
0034
0035 struct tss_segment_16 {
0036 u16 prev_task_link;
0037 u16 sp0;
0038 u16 ss0;
0039 u16 sp1;
0040 u16 ss1;
0041 u16 sp2;
0042 u16 ss2;
0043 u16 ip;
0044 u16 flag;
0045 u16 ax;
0046 u16 cx;
0047 u16 dx;
0048 u16 bx;
0049 u16 sp;
0050 u16 bp;
0051 u16 si;
0052 u16 di;
0053 u16 es;
0054 u16 cs;
0055 u16 ss;
0056 u16 ds;
0057 u16 ldt;
0058 };
0059
0060 #endif