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