UbixOS V2  2.0
tss.h
Go to the documentation of this file.
1 /*-
2  * Copyright (c) 2002-2018 The UbixOS Project.
3  * All rights reserved.
4  *
5  * This was developed by Christopher W. Olsen for the UbixOS Project.
6  *
7  * Redistribution and use in source and binary forms, with or without modification, are permitted
8  * provided that the following conditions are met:
9  *
10  * 1) Redistributions of source code must retain the above copyright notice, this list of
11  * conditions, the following disclaimer and the list of authors.
12  * 2) Redistributions in binary form must reproduce the above copyright notice, this list of
13  * conditions, the following disclaimer and the list of authors in the documentation and/or
14  * other materials provided with the distribution.
15  * 3) Neither the name of the UbixOS Project nor the names of its contributors may be used to
16  * endorse or promote products derived from this software without specific prior written
17  * permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
20  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
22  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
26  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 #ifndef _SYS_TSS_H
30 #define _SYS_TSS_H
31 
32 #include <sys/types.h>
33 
34 struct tssStruct {
35  short back_link;
37  long esp0;
38  short ss0;
39  short ss0_reserved;
40  long esp1;
41  short ss1;
42  short ss1_reserved;
43  long esp2;
44  short ss2;
45  short ss2_reserved;
46  long cr3;
47  long eip;
48  long eflags;
49  long eax, ecx, edx, ebx;
50  long esp;
51  long ebp;
52  long esi;
53  long edi;
54  short es;
55  short es_reserved;
56  short cs;
57  short cs_reserved;
58  short ss;
59  short ss_reserved;
60  short ds;
61  short ds_reserved;
62  short fs;
63  short fs_reserved;
64  short gs;
65  short gs_reserved;
66  short ldt;
67  short ldt_reserved;
68  short trace_bitmap;
69  short io_map;
70  char io_space[8192];
71 };
72 
73 struct i387Struct {
74  long cwd;
75  long swd;
76  long twd;
77  long fip;
78  long fcs;
79  long foo;
80  long fos;
81  long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */
82 };
83 
84 struct i386_frame {
98  /*
99  uint32_t vector;
100  uint32_t error_code;
101  */
107 };
108 
109 #endif /* END _SYS_TSS_H */
i386_frame::user_esp
uint32_t user_esp
Definition: tss.h:105
tssStruct::ds_reserved
short ds_reserved
Definition: tss.h:61
tssStruct::eip
long eip
Definition: tss.h:47
tssStruct::ss0_reserved
short ss0_reserved
Definition: tss.h:39
i386_frame::cs
uint32_t cs
Definition: tss.h:103
tssStruct::ebx
long ebx
Definition: tss.h:49
i386_frame::esi
uint32_t esi
Definition: tss.h:91
tssStruct::edx
long edx
Definition: tss.h:49
tssStruct::ss1
short ss1
Definition: tss.h:41
i387Struct::fip
long fip
Definition: tss.h:77
tssStruct::ldt
short ldt
Definition: tss.h:66
i386_frame::esp
uint32_t esp
Definition: tss.h:93
tssStruct::ds
short ds
Definition: tss.h:60
tssStruct::eflags
long eflags
Definition: tss.h:48
tssStruct::esp0
long esp0
Definition: tss.h:37
i387Struct::twd
long twd
Definition: tss.h:76
tssStruct::back_link
short back_link
Definition: tss.h:35
i387Struct::foo
long foo
Definition: tss.h:79
i386_frame::ebx
uint32_t ebx
Definition: tss.h:94
i386_frame::eip
uint32_t eip
Definition: tss.h:102
tssStruct::ss0
short ss0
Definition: tss.h:38
tssStruct::gs_reserved
short gs_reserved
Definition: tss.h:65
i387Struct::cwd
long cwd
Definition: tss.h:74
types.h
tssStruct::back_link_reserved
short back_link_reserved
Definition: tss.h:36
tssStruct::ss2
short ss2
Definition: tss.h:44
i386_frame::es
uint32_t es
Definition: tss.h:87
i386_frame
Definition: tss.h:84
tssStruct::esp
long esp
Definition: tss.h:50
i386_frame::user_ss
uint32_t user_ss
Definition: tss.h:106
i387Struct
Definition: tss.h:73
tssStruct::ss_reserved
short ss_reserved
Definition: tss.h:59
tssStruct::ldt_reserved
short ldt_reserved
Definition: tss.h:67
i387Struct::swd
long swd
Definition: tss.h:75
i386_frame::fs
uint32_t fs
Definition: tss.h:86
i386_frame::ds
uint32_t ds
Definition: tss.h:88
tssStruct::fs_reserved
short fs_reserved
Definition: tss.h:63
tssStruct::ss
short ss
Definition: tss.h:58
i386_frame::eax
uint32_t eax
Definition: tss.h:97
i386_frame::ss
uint32_t ss
Definition: tss.h:89
tssStruct::esp1
long esp1
Definition: tss.h:40
uint32_t
__uint32_t uint32_t
Definition: types.h:46
i386_frame::ebp
uint32_t ebp
Definition: tss.h:92
tssStruct
Definition: tss.h:34
tssStruct::es
short es
Definition: tss.h:54
i386_frame::flags
uint32_t flags
Definition: tss.h:104
i387Struct::fcs
long fcs
Definition: tss.h:78
tssStruct::cs_reserved
short cs_reserved
Definition: tss.h:57
tssStruct::cs
short cs
Definition: tss.h:56
tssStruct::es_reserved
short es_reserved
Definition: tss.h:55
tssStruct::fs
short fs
Definition: tss.h:62
tssStruct::edi
long edi
Definition: tss.h:53
tssStruct::ecx
long ecx
Definition: tss.h:49
tssStruct::io_map
short io_map
Definition: tss.h:69
tssStruct::ebp
long ebp
Definition: tss.h:51
i386_frame::edx
uint32_t edx
Definition: tss.h:95
tssStruct::ss1_reserved
short ss1_reserved
Definition: tss.h:42
tssStruct::esi
long esi
Definition: tss.h:52
tssStruct::io_space
char io_space[8192]
Definition: tss.h:70
i387Struct::fos
long fos
Definition: tss.h:80
tssStruct::trace_bitmap
short trace_bitmap
Definition: tss.h:68
i386_frame::gs
uint32_t gs
Definition: tss.h:85
tssStruct::ss2_reserved
short ss2_reserved
Definition: tss.h:45
tssStruct::cr3
long cr3
Definition: tss.h:46
tssStruct::esp2
long esp2
Definition: tss.h:43
i386_frame::ecx
uint32_t ecx
Definition: tss.h:96
tssStruct::gs
short gs
Definition: tss.h:64
tssStruct::eax
long eax
Definition: tss.h:49
i387Struct::st_space
long st_space[20]
Definition: tss.h:81
i386_frame::edi
uint32_t edi
Definition: tss.h:90