IBNOS
kernel
include
hardware
context.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2014, Michael Müller
3
* Copyright (c) 2014, Sebastian Lackner
4
* All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are met:
8
*
9
* 1. Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
19
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
*
26
*/
27
28
#ifndef _H_CONTEXT_
29
#define _H_CONTEXT_
30
31
struct
taskContext
32
{
33
uint16_t
prevTask
;
/* 0x00 */
34
uint16_t
__res1
;
35
36
uint32_t
esp0
;
/* 0x04 */
37
uint16_t
ss0
;
/* 0x08 */
38
uint16_t
__res2
;
39
40
uint32_t
esp1
;
/* 0x0C */
41
uint16_t
ss1
;
/* 0x10 */
42
uint16_t
__res3
;
43
44
uint32_t
esp2
;
/* 0x14 */
45
uint16_t
ss2
;
/* 0x18 */
46
uint16_t
__res4
;
47
48
uint32_t
cr3
;
/* 0x1C */
49
uint32_t
eip
;
/* 0x20 */
50
uint32_t
eflags
;
/* 0x24 */
51
52
uint32_t
eax
;
/* 0x28 */
53
uint32_t
ecx
;
/* 0x2C */
54
uint32_t
edx
;
/* 0x30 */
55
uint32_t
ebx
;
/* 0x34 */
56
uint32_t
esp
;
/* 0x38 */
57
uint32_t
ebp
;
/* 0x3C */
58
uint32_t
esi
;
/* 0x40 */
59
uint32_t
edi
;
/* 0x44 */
60
61
uint16_t
es
;
/* 0x48 */
62
uint16_t
__res5
;
63
uint16_t
cs
;
/* 0x4C */
64
uint16_t
__res6
;
65
uint16_t
ss
;
/* 0x50 */
66
uint16_t
__res7
;
67
uint16_t
ds
;
/* 0x54 */
68
uint16_t
__res8
;
69
uint16_t
fs
;
/* 0x58 */
70
uint16_t
__res9
;
71
uint16_t
gs
;
/* 0x5C */
72
uint16_t
__res10
;
73
74
uint16_t
ldt
;
/* 0x60 */
75
uint16_t
__res11
;
76
uint16_t
__res12
;
/* 0x64 */
77
uint16_t
iomap
;
78
}
__attribute__
((packed));
79
80
struct
fpuContext
81
{
82
uint16_t
controlWord
;
83
uint16_t
__res1
;
84
uint16_t
statusWord
;
85
uint16_t
__res2
;
86
uint16_t
tagWord
;
87
uint16_t
__res3
;
88
uint32_t
codePointer
;
89
uint16_t
codeSegment
;
90
uint16_t
__res4
;
91
uint32_t
dataPointer
;
92
uint16_t
dataSegment
;
93
uint16_t
__res5
;
94
uint8_t
registerArea
[80];
95
}
__attribute__
((packed));
96
97
#endif
/* _H_CONTEXT_ */
fpuContext::statusWord
uint16_t statusWord
Definition:
context.h:84
taskContext::__res7
uint16_t __res7
Definition:
context.h:66
taskContext::ebx
uint32_t ebx
Definition:
context.h:55
taskContext::__res1
uint16_t __res1
Definition:
context.h:34
fpuContext
Definition:
context.h:80
taskContext::__res3
uint16_t __res3
Definition:
context.h:42
taskContext::fs
uint16_t fs
Definition:
context.h:69
taskContext::__res11
uint16_t __res11
Definition:
context.h:75
taskContext::cs
uint16_t cs
Definition:
context.h:63
taskContext::ss1
uint16_t ss1
Definition:
context.h:41
taskContext::eflags
uint32_t eflags
Definition:
context.h:50
taskContext::ss2
uint16_t ss2
Definition:
context.h:45
taskContext::__res8
uint16_t __res8
Definition:
context.h:68
taskContext::__res6
uint16_t __res6
Definition:
context.h:64
taskContext::ecx
uint32_t ecx
Definition:
context.h:53
taskContext::edx
uint32_t edx
Definition:
context.h:54
fpuContext::__res3
uint16_t __res3
Definition:
context.h:87
taskContext::iomap
uint16_t iomap
Definition:
context.h:77
registerArea
uint8_t registerArea[80]
Definition:
context.h:182
fpuContext::__res1
uint16_t __res1
Definition:
context.h:83
__attribute__
struct taskContext __attribute__((packed))
fpuContext::controlWord
uint16_t controlWord
Definition:
context.h:82
taskContext::eax
uint32_t eax
Definition:
context.h:52
taskContext::__res5
uint16_t __res5
Definition:
context.h:62
taskContext::__res2
uint16_t __res2
Definition:
context.h:38
taskContext::__res4
uint16_t __res4
Definition:
context.h:46
taskContext
Definition:
context.h:31
taskContext::esi
uint32_t esi
Definition:
context.h:58
fpuContext::codePointer
uint32_t codePointer
Definition:
context.h:88
fpuContext::__res4
uint16_t __res4
Definition:
context.h:90
taskContext::prevTask
uint16_t prevTask
Definition:
context.h:33
fpuContext::__res5
uint16_t __res5
Definition:
context.h:93
taskContext::esp2
uint32_t esp2
Definition:
context.h:44
fpuContext::tagWord
uint16_t tagWord
Definition:
context.h:86
taskContext::cr3
uint32_t cr3
Definition:
context.h:48
taskContext::eip
uint32_t eip
Definition:
context.h:49
taskContext::gs
uint16_t gs
Definition:
context.h:71
fpuContext::dataSegment
uint16_t dataSegment
Definition:
context.h:92
taskContext::esp0
uint32_t esp0
Definition:
context.h:36
taskContext::ss0
uint16_t ss0
Definition:
context.h:37
fpuContext::__res2
uint16_t __res2
Definition:
context.h:85
taskContext::ldt
uint16_t ldt
Definition:
context.h:74
taskContext::__res10
uint16_t __res10
Definition:
context.h:72
taskContext::__res12
uint16_t __res12
Definition:
context.h:76
fpuContext::codeSegment
uint16_t codeSegment
Definition:
context.h:89
taskContext::ds
uint16_t ds
Definition:
context.h:67
taskContext::esp1
uint32_t esp1
Definition:
context.h:40
fpuContext::dataPointer
uint32_t dataPointer
Definition:
context.h:91
taskContext::es
uint16_t es
Definition:
context.h:61
taskContext::edi
uint32_t edi
Definition:
context.h:59
taskContext::ss
uint16_t ss
Definition:
context.h:65
taskContext::ebp
uint32_t ebp
Definition:
context.h:57
taskContext::__res9
uint16_t __res9
Definition:
context.h:70
taskContext::esp
uint32_t esp
Definition:
context.h:56
Generated by
1.8.13