Xen Test Framework
x86-tss.h
Go to the documentation of this file.
1 
7 #ifndef XTF_X86_TSS_H
8 #define XTF_X86_TSS_H
9 
10 #include <xtf/types.h>
11 #include <xtf/compiler.h>
12 
15 
18 
21 
24 
36 
44 
45  uint16_t trace:1, :15;
46  uint16_t iopb;
47 };
48 
50  uint32_t :32;
51 
55 
56  uint64_t :64;
57 
58  uint64_t ist[7]; /* 1-based structure */
59 
60  uint64_t :64;
61 
62  uint16_t trace:1, :15;
63  uint16_t iopb;
64 };
65 
66 #define X86_TSS_INVALID_IO_BITMAP 0x8000
67 
68 void dump_x86_tss32(const struct x86_tss32 *t);
69 void dump_x86_tss64(const struct x86_tss64 *t);
70 
71 #if defined(__x86_64__)
72 
73 typedef struct x86_tss64 env_tss;
74 
75 static inline void dump_env_tss(const env_tss *t)
76 {
77  dump_x86_tss64(t);
78 }
79 
80 #elif defined(__i386__)
81 
82 typedef struct x86_tss32 env_tss;
83 
84 static inline void dump_env_tss(const env_tss *t)
85 {
86  dump_x86_tss32(t);
87 }
88 
89 #else
90 # error Bad architecture for TSS infrastructure
91 #endif
92 
93 #endif /* XTF_X86_TSS_H */
94 
95 /*
96  * Local variables:
97  * mode: C
98  * c-file-style: "BSD"
99  * c-basic-offset: 4
100  * tab-width: 4
101  * indent-tabs-mode: nil
102  * End:
103  */
uint16_t fs
Definition: x86-tss.h:41
uint16_t trace
Definition: x86-tss.h:62
uint32_t ecx
Definition: x86-tss.h:29
uint64_t rsp2
Definition: x86-tss.h:54
uint32_t eip
Definition: x86-tss.h:26
Common declarations for all tests.
uint64_t rsp0
Definition: x86-tss.h:52
uint16_t ss2
Definition: x86-tss.h:23
uint16_t ss
Definition: x86-tss.h:39
uint16_t es
Definition: x86-tss.h:37
uint32_t eax
Definition: x86-tss.h:28
void dump_x86_tss64(const struct x86_tss64 *t)
Definition: x86-tss.c:43
uint16_t link
Definition: x86-tss.h:14
uint32_t ebp
Definition: x86-tss.h:33
uint32_t eflags
Definition: x86-tss.h:27
uint16_t ldtr
Definition: x86-tss.h:43
uint16_t cs
Definition: x86-tss.h:38
uint16_t ss0
Definition: x86-tss.h:17
uint16_t gs
Definition: x86-tss.h:42
__UINT64_TYPE__ uint64_t
Definition: stdint.h:17
uint16_t ss1
Definition: x86-tss.h:20
uint32_t esp
Definition: x86-tss.h:32
__UINT32_TYPE__ uint32_t
Definition: stdint.h:16
uint32_t esp0
Definition: x86-tss.h:16
uint32_t esp1
Definition: x86-tss.h:19
uint64_t rsp1
Definition: x86-tss.h:53
uint16_t ds
Definition: x86-tss.h:40
uint32_t esp2
Definition: x86-tss.h:22
#define __packed
Definition: compiler.h:11
uint16_t trace
Definition: x86-tss.h:45
uint32_t edx
Definition: x86-tss.h:30
uint32_t esi
Definition: x86-tss.h:34
uint32_t ebx
Definition: x86-tss.h:31
__UINT16_TYPE__ uint16_t
Definition: stdint.h:15
void dump_x86_tss32(const struct x86_tss32 *t)
Definition: x86-tss.c:10
uint32_t edi
Definition: x86-tss.h:35
uint32_t cr3
Definition: x86-tss.h:25