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