]> git.saurik.com Git - apple/xnu.git/blob - osfmk/i386/ktss.c
xnu-517.7.7.tar.gz
[apple/xnu.git] / osfmk / i386 / ktss.c
1 /*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22 /*
23 * @OSF_COPYRIGHT@
24 */
25 /*
26 * Mach Operating System
27 * Copyright (c) 1991,1990 Carnegie Mellon University
28 * All Rights Reserved.
29 *
30 * Permission to use, copy, modify and distribute this software and its
31 * documentation is hereby granted, provided that both the copyright
32 * notice and this permission notice appear in all copies of the
33 * software, derivative works or modified versions, and any portions
34 * thereof, and that both notices appear in supporting documentation.
35 *
36 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
37 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
38 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
39 *
40 * Carnegie Mellon requests users of this software to return to
41 *
42 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
43 * School of Computer Science
44 * Carnegie Mellon University
45 * Pittsburgh PA 15213-3890
46 *
47 * any improvements or extensions that they make and grant Carnegie Mellon
48 * the rights to redistribute these changes.
49 */
50 /*
51 */
52
53 /*
54 * Kernel task state segment.
55 *
56 * We don't use the i386 task switch mechanism. We need a TSS
57 * only to hold the kernel stack pointer for the current thread.
58 *
59 * XXX multiprocessor??
60 */
61 #include <i386/tss.h>
62 #include <i386/seg.h>
63 #include <mach_kdb.h>
64
65 struct i386_tss ktss = {
66 0, /* back link */
67 0, /* esp0 */
68 KERNEL_DS, /* ss0 */
69 0, /* esp1 */
70 0, /* ss1 */
71 0, /* esp2 */
72 0, /* ss2 */
73 0, /* cr3 */
74 0, /* eip */
75 0, /* eflags */
76 0, /* eax */
77 0, /* ecx */
78 0, /* edx */
79 0, /* ebx */
80 0, /* esp */
81 0, /* ebp */
82 0, /* esi */
83 0, /* edi */
84 0, /* es */
85 0, /* cs */
86 0, /* ss */
87 0, /* ds */
88 0, /* fs */
89 0, /* gs */
90 KERNEL_LDT, /* ldt */
91 0, /* trace_trap */
92 0x0FFF /* IO bitmap offset -
93 beyond end of TSS segment,
94 so no bitmap */
95 };
96
97 #if MACH_KDB
98
99 struct i386_tss dbtss = {
100 0, /* back link */
101 0, /* esp0 */
102 KERNEL_DS, /* ss0 */
103 0, /* esp1 */
104 0, /* ss1 */
105 0, /* esp2 */
106 0, /* ss2 */
107 0, /* cr3 */
108 0, /* eip */
109 0, /* eflags */
110 0, /* eax */
111 0, /* ecx */
112 0, /* edx */
113 0, /* ebx */
114 0, /* esp */
115 0, /* ebp */
116 0, /* esi */
117 0, /* edi */
118 KERNEL_DS, /* es */
119 KERNEL_CS, /* cs */
120 KERNEL_DS, /* ss */
121 KERNEL_DS, /* ds */
122 KERNEL_DS, /* fs */
123 KERNEL_DS, /* gs */
124 KERNEL_LDT, /* ldt */
125 0, /* trace_trap */
126 0x0FFF /* IO bitmap offset -
127 beyond end of TSS segment,
128 so no bitmap */
129 };
130
131 #endif /* MACH_KDB */