1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __TSS_SEGMENT_H
3#define __TSS_SEGMENT_H
4
5struct 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
35struct 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

source code of linux/arch/x86/kvm/tss.h