Root/
Source at commit 1406 created 12 years 10 months ago. By meklort, Revert drivers.c so that kexts are only loaded when OSBundleRequired is set and that value is not safe mode. Added some comments about it too. | |
---|---|
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 | * sl.h - Headers for configuring the Secondary Loader␊ |
24 | *␊ |
25 | * Copyright (c) 1998-2005 Apple Computer, Inc.␊ |
26 | *␊ |
27 | * DRI: Josh de Cesare␊ |
28 | */␊ |
29 | ␊ |
30 | #ifndef _BOOTX_SL_H_␊ |
31 | #define _BOOTX_SL_H_␊ |
32 | ␊ |
33 | // i.e. should we put up our failure screen; else back to OF␊ |
34 | #define kFailToBoot (1)␊ |
35 | ␊ |
36 | /*␊ |
37 | ␊ |
38 | Memory Map: assumed 96 MB (temporarily bumping to 112 MB for 4359362)␊ |
39 | ␊ |
40 | Physical Address␊ |
41 | ␊ |
42 | Open Firmware Version 3x, 4x, ...␊ |
43 | 00000000 - 00003FFF : Exception Vectors␊ |
44 | 00004000 - 057FFFFF : Free Memory␊ |
45 | // 05800000 - 05FFFFFF : OF Image (top 8 MB reserved) [96 MB map]␊ |
46 | 06800000 - 06FFFFFF : OF Image (top 8 MB reserved) [112 MB map]␊ |
47 | ␊ |
48 | ␊ |
49 | Logical Address␊ |
50 | ␊ |
51 | // 96 MB map (currently unused - 4363357 tracks re-adoption)␊ |
52 | 00000000 - 00003FFF : Exception Vectors␊ |
53 | 00004000 - 03FFFFFF : Kernel Image, Boot Struct and Drivers (~64 MB)␊ |
54 | 04000000 - 04FFFFFF : File Load Area (16 MB) ␉[80 MB]␊ |
55 | 05000000 - 053FFFFF : FS Cache (4 MB) ␉[84 MB]␊ |
56 | 05400000 - 055FFFFF : Malloc Zone (2 MB)␉[86 MB]␊ |
57 | 05600000 - 057FFFFF : BootX Image (2 MB)␉[88 MB]␊ |
58 | 05800000 - 05FFFFFF : Unused/OF (8 MB)␉[96 MB]␊ |
59 | ␊ |
60 | // 112 MB map (per 4359362)␊ |
61 | 00000000 - 00003FFF : Exception Vectors␊ |
62 | 00004000 - 03FFFFFF : Kernel Image, Boot Struct and Drivers (~64 MB)␊ |
63 | 04000000 - 05FFFFFF : File Load Area (32 MB) ␉[96 MB]␊ |
64 | 06000000 - 063FFFFF : FS Cache (4 MB) ␉[100 MB]␊ |
65 | 06400000 - 065FFFFF : Malloc Zone (2 MB)␉[102 MB]␊ |
66 | 06600000 - 067FFFFF : BootX Image (2 MB)␉[104 MB]␊ |
67 | 06800000 - 06FFFFFF : Unused/OF (8 MB)␉[112 MB]␊ |
68 | */␊ |
69 | ␊ |
70 | #define kVectorAddr (0x00000000)␊ |
71 | #define kVectorSize (0x00004000)␊ |
72 | ␊ |
73 | // OF 3.x␊ |
74 | #define kImageAddr (0x00004000)␊ |
75 | #define kImageSize (0x03FFC000)␊ |
76 | ␊ |
77 | // OF 1.x 2.x␊ |
78 | #define kImageAddr0 (0x00004000)␊ |
79 | #define kImageSize0 (0x002FC000)␊ |
80 | #define kImageAddr1 (0x00300000)␊ |
81 | #define kImageSize1 (0x00200000)␊ |
82 | #define kImageAddr1Phys (0x05800000)␊ |
83 | #define kImageAddr2 (0x00500000)␊ |
84 | #define kImageSize2 (0x03B00000)␊ |
85 | ␊ |
86 | #define kLoadAddr (0x04000000)␊ |
87 | #define kLoadSize (0x02000000)␉// 32 MB @ 64␊ |
88 | #define kMaxMKextSize (0x01000000)␉// only allow 16 MB of drivers␊ |
89 | ␊ |
90 | #define kFSCacheAddr (0x06000000)␊ |
91 | #define kFSCacheSize (0x00400000)␉// 4 MB @ 96␊ |
92 | ␊ |
93 | #define kMallocAddr (0x06400000)␊ |
94 | #define kMallocSize (0x00200000)␉// 2 MB @ 100␊ |
95 | ␊ |
96 | #define kMallocAddr_H (0x06400000)␉// ditto for hibernate␊ |
97 | #define kMallocSize_H (0x00200000)␊ |
98 | #define kImageAddr_H (0x07000000)␉// fallback for hiberate image buffer␊ |
99 | ␊ |
100 | // Default Output Level␊ |
101 | #define kOutputLevelOff (0)␊ |
102 | #define kOutputLevelFull (16)␊ |
103 | ␊ |
104 | // OF versions␊ |
105 | #define kOFVersion1x (0x01000000)␊ |
106 | #define kOFVersion2x (0x02000000)␊ |
107 | #define kOFVersion3x (0x03000000)␊ |
108 | #define kOFVersion4x (0x04000000)␊ |
109 | ␊ |
110 | // Device Types␊ |
111 | enum {␊ |
112 | kUnknownDeviceType = 0,␊ |
113 | kNetworkDeviceType,␊ |
114 | kBlockDeviceType␊ |
115 | };␊ |
116 | ␊ |
117 | // File Permissions and Types␊ |
118 | enum {␊ |
119 | kPermOtherExecute = 1 << 0,␊ |
120 | kPermOtherWrite = 1 << 1,␊ |
121 | kPermOtherRead = 1 << 2,␊ |
122 | kPermGroupExecute = 1 << 3,␊ |
123 | kPermGroupWrite = 1 << 4,␊ |
124 | kPermGroupRead = 1 << 5,␊ |
125 | kPermOwnerExecute = 1 << 6,␊ |
126 | kPermOwnerWrite = 1 << 7,␊ |
127 | kPermOwnerRead = 1 << 8,␊ |
128 | kPermMask = 0x1FF,␊ |
129 | kOwnerNotRoot = 1 << 9,␊ |
130 | kFileTypeUnknown = 0x0 << 16,␊ |
131 | kFileTypeFlat = 0x1 << 16,␊ |
132 | kFileTypeDirectory = 0x2 << 16,␊ |
133 | kFileTypeLink = 0x3 << 16,␊ |
134 | kFileTypeMask = 0x3 << 16␊ |
135 | };␊ |
136 | ␊ |
137 | // Key Numbers␊ |
138 | #define kCommandKey (0x200)␊ |
139 | #define kOptKey (0x201)␊ |
140 | #define kShiftKey (0x202)␊ |
141 | #define kControlKey (0x203)␊ |
142 | #define kDeleteKey (0x204)␊ |
143 | ␊ |
144 | // Mac OS X Booter Signature 'MOSX'␊ |
145 | #define kMacOSXSignature (0x4D4F5358)␊ |
146 | ␊ |
147 | // Boot Modes␊ |
148 | enum {␊ |
149 | kBootModeNormal = 0,␊ |
150 | kBootModeSafe,␊ |
151 | kBootModeSecure␊ |
152 | };␊ |
153 | ␊ |
154 | #include <sys/types.h>␊ |
155 | #include <stdint.h>␊ |
156 | #include <stdio.h>␊ |
157 | ␊ |
158 | #include <ci.h>␊ |
159 | #include <sl_words.h>␊ |
160 | #include <libclite.h>␊ |
161 | ␊ |
162 | // Externs for main.c␊ |
163 | extern char *gVectorSaveAddr;␊ |
164 | extern long gKernelEntryPoint;␊ |
165 | extern long gDeviceTreeAddr;␊ |
166 | extern long gDeviceTreeSize;␊ |
167 | extern long gBootArgsAddr;␊ |
168 | extern long gBootArgsSize;␊ |
169 | extern long gSymbolTableAddr;␊ |
170 | extern long gSymbolTableSize;␊ |
171 | ␊ |
172 | extern long gBootMode;␊ |
173 | extern long gBootDeviceType;␊ |
174 | extern long gBootFileType;␊ |
175 | extern char gHaveKernelCache;␊ |
176 | extern char gBootDevice[256];␊ |
177 | extern char gBootFile[256];␊ |
178 | ␊ |
179 | extern char gTempStr[4096];␊ |
180 | ␊ |
181 | extern long *gDeviceTreeMMTmp;␊ |
182 | ␊ |
183 | extern long gOFVersion;␊ |
184 | ␊ |
185 | extern char *gKeyMap;␊ |
186 | ␊ |
187 | extern long gRootAddrCells;␊ |
188 | extern long gRootSizeCells;␊ |
189 | ␊ |
190 | extern CICell gChosenPH;␊ |
191 | extern CICell gOptionsPH;␊ |
192 | extern CICell gScreenPH;␊ |
193 | extern CICell gMemoryMapPH;␊ |
194 | extern CICell gStdOutPH;␊ |
195 | ␊ |
196 | extern CICell gMMUIH;␊ |
197 | extern CICell gMemoryIH;␊ |
198 | extern CICell gStdOutIH;␊ |
199 | extern CICell gKeyboardIH;␊ |
200 | ␊ |
201 | #endif /* ! _BOOTX_SL_H_ */␊ |
202 |