FreeBSD/Linux Kernel Cross Reference
sys/i386/tss.h
1 /*
2 * Mach Operating System
3 * Copyright (c) 1991,1990,1989 Carnegie Mellon University
4 * All Rights Reserved.
5 *
6 * Permission to use, copy, modify and distribute this software and its
7 * documentation is hereby granted, provided that both the copyright
8 * notice and this permission notice appear in all copies of the
9 * software, derivative works or modified versions, and any portions
10 * thereof, and that both notices appear in supporting documentation.
11 *
12 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15 *
16 * Carnegie Mellon requests users of this software to return to
17 *
18 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
19 * School of Computer Science
20 * Carnegie Mellon University
21 * Pittsburgh PA 15213-3890
22 *
23 * any improvements or extensions that they make and grant Carnegie Mellon
24 * the rights to redistribute these changes.
25 */
26 /*
27 * HISTORY
28 * $Log: tss.h,v $
29 * Revision 2.6 91/05/14 16:18:40 mrt
30 * Correcting copyright
31 *
32 * Revision 2.5 91/05/08 12:43:45 dbg
33 * Protect against multiple includes.
34 * [91/04/26 14:39:49 dbg]
35 *
36 * Revision 2.4 91/02/05 17:15:37 mrt
37 * Changed to new Mach copyright
38 * [91/02/01 17:38:56 mrt]
39 *
40 * Revision 2.3 91/01/08 17:32:27 rpd
41 * Add bit_map
42 * [90/12/20 10:21:17 rvb]
43 *
44 * Revision 2.2 90/05/03 15:38:14 dbg
45 * Created.
46 * [90/02/08 dbg]
47 *
48 */
49
50 #ifndef _I386_TSS_H_
51 #define _I386_TSS_H_
52
53 /*
54 * i386 Task State Segment
55 */
56 struct i386_tss {
57 int back_link; /* segment number of previous task,
58 if nested */
59 int esp0; /* initial stack pointer ... */
60 int ss0; /* and segment for ring 0 */
61 int esp1; /* initial stack pointer ... */
62 int ss1; /* and segment for ring 1 */
63 int esp2; /* initial stack pointer ... */
64 int ss2; /* and segment for ring 2 */
65 int cr3; /* CR3 - page table directory
66 physical address */
67 int eip;
68 int eflags;
69 int eax;
70 int ecx;
71 int edx;
72 int ebx;
73 int esp; /* current stack pointer */
74 int ebp;
75 int esi;
76 int edi;
77 int es;
78 int cs;
79 int ss; /* current stack segment */
80 int ds;
81 int fs;
82 int gs;
83 int ldt; /* local descriptor table segment */
84 unsigned short trace_trap; /* trap on switch to this task */
85 unsigned short io_bit_map_offset;
86 /* offset to start of IO permission
87 bit map */
88 };
89
90 #endif /* _I386_TSS_H_ */
Cache object: 29bb4df2bc38b9b896f146411d3c8651
|