]> git.saurik.com Git - apple/boot.git/blame - i386/libsaio/table.c
boot-132.tar.gz
[apple/boot.git] / i386 / libsaio / table.c
CommitLineData
14c7c974 1/*
57c72a9a 2 * Copyright (c) 1999-2003 Apple Computer, Inc. All rights reserved.
14c7c974
A
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
57c72a9a 6 * Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights
4f6e3300
A
7 * Reserved. This file contains Original Code and/or Modifications of
8 * Original Code as defined in and that are subject to the Apple Public
57c72a9a 9 * Source License Version 2.0 (the "License"). You may not use this file
4f6e3300
A
10 * except in compliance with the License. Please obtain a copy of the
11 * License at http://www.apple.com/publicsource and read it before using
12 * this file.
14c7c974
A
13 *
14 * The Original Code and all software distributed under the License are
4f6e3300 15 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14c7c974
A
16 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
4f6e3300
A
18 * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
19 * License for the specific language governing rights and limitations
20 * under the License.
14c7c974
A
21 *
22 * @APPLE_LICENSE_HEADER_END@
23 */
24/*
25 * Mach Operating System
26 * Copyright (c) 1990 Carnegie-Mellon University
27 * Copyright (c) 1989 Carnegie-Mellon University
28 * All rights reserved. The CMU software License Agreement specifies
29 * the terms and conditions for use and redistribution.
30 */
31
32/*
33 * INTEL CORPORATION PROPRIETARY INFORMATION
34 *
35 * This software is supplied under the terms of a license agreement or
36 * nondisclosure agreement with Intel Corporation and may not be copied
37 * nor disclosed except in accordance with the terms of that agreement.
38 *
39 * Copyright 1988, 1989 Intel Corporation
40 */
41
42/*
43 * Copyright 1993 NeXT, Inc.
44 * All rights reserved.
45 */
46
47#include "memory.h"
48
14c7c974
A
49/* Segment Descriptor
50 *
51 * 31 24 19 16 7 0
52 * ------------------------------------------------------------
53 * | | |B| |A| | | |1|0|E|W|A| |
54 * | BASE 31..24 |G|/|0|V| LIMIT |P|DPL| TYPE | BASE 23:16 |
55 * | | |D| |L| 19..16| | |1|1|C|R|A| |
56 * ------------------------------------------------------------
57 * | | |
58 * | BASE 15..0 | LIMIT 15..0 |
59 * | | |
60 * ------------------------------------------------------------
61 */
62
63struct seg_desc {
75b89a82
A
64 unsigned short limit_15_0;
65 unsigned short base_15_0;
66 unsigned char base_23_16;
67 unsigned char bit_15_8;
68 unsigned char bit_23_16;
69 unsigned char base_31_24;
70};
14c7c974 71
75b89a82
A
72struct seg_desc Gdt[ NGDTENT ] = {
73 /* 0x0 : null */
74 {0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00},
14c7c974 75
75b89a82
A
76 /* 0x8 : boot protected mode 32-bit code segment
77 byte granularity, 1MB limit, MEMBASE offset */
78 {0xFFFF, MEMBASE, 0x00, 0x9E, 0x4F, 0x00},
79
80 /* 0x10 : boot protected mode data segment
81 page granularity, 4GB limit, MEMBASE offset */
82 {0xFFFF, MEMBASE, 0x00, 0x92, 0xCF, 0x00},
83
84 /* 0x18 : boot protected mode 16-bit code segment
85 byte granularity, 1MB limit, MEMBASE offset */
86 {0xFFFF, MEMBASE, 0x00, 0x9E, 0x0F, 0x00},
14c7c974 87
75b89a82
A
88 /* 0x20 : kernel init 32-bit data segment
89 page granularity, 4GB limit, zero offset */
90 {0xFFFF, 0x0000, 0x00, 0x92, 0xCF, 0x00},
91
92 /* 0x28 : kernel init 32-bit code segment
93 page granularity, 4GB limit, zero offset */
94 {0xFFFF, 0x0000, 0x00, 0x9E, 0xCF, 0x00},
95
96 /* 0x30 : boot real mode data/stack segment
97 byte granularity, 64K limit, MEMBASE offset, expand-up */
98 {0xFFFF, MEMBASE, 0x00, 0x92, 0x00, 0x00},
99};