Root/
Source at commit 1733 created 12 years 6 months ago. By blackosx, Use the result from an intitial check to find if the target volume has an EFI system partition, later on in the installation process before checking for previous Chameleon installations. Add some feedback to the installer log. | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 2000-2007 Apple Computer, Inc. All rights reserved.␊ |
3 | *␊ |
4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@␊ |
5 | * ␊ |
6 | * This file contains Original Code and/or Modifications of Original Code␊ |
7 | * as defined in and that are subject to the Apple Public Source License␊ |
8 | * Version 2.0 (the 'License'). You may not use this file except in␊ |
9 | * compliance with the License. The rights granted to you under the License␊ |
10 | * may not be used to create, or enable the creation or redistribution of,␊ |
11 | * unlawful or unlicensed copies of an Apple operating system, or to␊ |
12 | * circumvent, violate, or enable the circumvention or violation of, any␊ |
13 | * terms of an Apple operating system software license agreement.␊ |
14 | * ␊ |
15 | * Please obtain a copy of the License at␊ |
16 | * http://www.opensource.apple.com/apsl/ and read it before using this file.␊ |
17 | * ␊ |
18 | * The Original Code and all software distributed under the License are␊ |
19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER␊ |
20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,␊ |
21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,␊ |
22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.␊ |
23 | * Please see the License for the specific language governing rights and␊ |
24 | * limitations under the License.␊ |
25 | * ␊ |
26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@␊ |
27 | */␊ |
28 | /*␊ |
29 | * @OSF_COPYRIGHT@␊ |
30 | */␊ |
31 | #ifndef␉_PPC_ASM_H_␊ |
32 | #define␉_PPC_ASM_H_␊ |
33 | ␊ |
34 | #define␉__ASMNL__␉@␊ |
35 | #define STRINGD .ascii␊ |
36 | ␊ |
37 | #ifdef ASSEMBLER␊ |
38 | ␊ |
39 | ␊ |
40 | #define br0 0␊ |
41 | ␊ |
42 | #define ARG0 r3␊ |
43 | #define ARG1 r4␊ |
44 | #define ARG2 r5␊ |
45 | #define ARG3 r6␊ |
46 | #define ARG4 r7␊ |
47 | #define ARG5 r8␊ |
48 | #define ARG6 r9␊ |
49 | #define ARG7 r10␊ |
50 | ␊ |
51 | #define tmp0␉r0␉/* Temporary GPR remapping (603e specific) */␊ |
52 | #define tmp1␉r1␊ |
53 | #define tmp2␉r2␊ |
54 | #define tmp3␉r3␊ |
55 | ␊ |
56 | /* SPR registers */␊ |
57 | ␊ |
58 | #define mq␉␉0␉␉/* MQ register for 601 emulation */␊ |
59 | #define rtcu␉4␉␉/* RTCU - upper word of RTC for 601 emulation */␊ |
60 | #define rtcl␉5␉␉/* RTCL - lower word of RTC for 601 emulation */␊ |
61 | #define dsisr␉18␊ |
62 | #define ppcDAR␉19␊ |
63 | #define ppcdar␉19␊ |
64 | #define dar␉␉19␊ |
65 | #define SDR1␉25␊ |
66 | #define sdr1␉25␊ |
67 | #define srr0␉26␊ |
68 | #define srr1␉27␊ |
69 | #define vrsave␉256␉␉/* Vector Register save */␊ |
70 | #define sprg0␉272␊ |
71 | #define sprg1␉273␊ |
72 | #define sprg2␉274␊ |
73 | #define sprg3␉275␊ |
74 | #define scomc␉276␊ |
75 | #define scomd␉277␊ |
76 | #define pvr␉␉287␊ |
77 | ␊ |
78 | #define IBAT0U␉528␊ |
79 | #define IBAT0L␉529␊ |
80 | #define IBAT1U␉530␊ |
81 | #define IBAT1L␉531␊ |
82 | #define IBAT2U␉532␊ |
83 | #define IBAT2L␉533␊ |
84 | #define IBAT3U␉534␊ |
85 | #define IBAT3L␉535␊ |
86 | #define ibat0u␉528␊ |
87 | #define ibat0l␉529␊ |
88 | #define ibat1u␉530␊ |
89 | #define ibat1l␉531␊ |
90 | #define ibat2u␉532␊ |
91 | #define ibat2l␉533␊ |
92 | #define ibat3u␉534␊ |
93 | #define ibat3l␉535␊ |
94 | ␊ |
95 | #define DBAT0U␉536␊ |
96 | #define DBAT0L␉537␊ |
97 | #define DBAT1U␉538␊ |
98 | #define DBAT1L␉539␊ |
99 | #define DBAT2U␉540␊ |
100 | #define DBAT2L␉541␊ |
101 | #define DBAT3U␉542␊ |
102 | #define DBAT3L␉543␊ |
103 | #define dbat0u␉536␊ |
104 | #define dbat0l␉537␊ |
105 | #define dbat1u␉538␊ |
106 | #define dbat1l␉539␊ |
107 | #define dbat2u␉540␊ |
108 | #define dbat2l␉541␊ |
109 | #define dbat3u␉542␊ |
110 | #define dbat3l␉543␊ |
111 | ␊ |
112 | #define ummcr2␉928␉␉/* Performance monitor control */␊ |
113 | #define upmc5 929 /* Performance monitor counter */␊ |
114 | #define upmc6 930 /* Performance monitor counter */␊ |
115 | #define ubamr␉935␉␉/* Performance monitor mask */␊ |
116 | #define ummcr0␉936␉␉/* Performance monitor control */␊ |
117 | #define upmc1␉937␉␉/* Performance monitor counter */␊ |
118 | #define upmc2␉938␉␉/* Performance monitor counter */␊ |
119 | #define usia␉939␉␉/* User sampled instruction address */␊ |
120 | #define ummcr1␉940␉␉/* Performance monitor control */␊ |
121 | #define upmc3␉941␉␉/* Performance monitor counter */␊ |
122 | #define upmc4␉942␉␉/* Performance monitor counter */␊ |
123 | #define usda␉943␉␉/* User sampled data address */␊ |
124 | #define mmcr2␉944␉␉/* Performance monitor control */␊ |
125 | #define pmc5 945 /* Performance monitor counter */␊ |
126 | #define pmc6 946 /* Performance monitor counter */␊ |
127 | #define bamr␉951␉␉/* Performance monitor mask */␊ |
128 | #define mmcr0␉952␊ |
129 | #define pmc1␉953␊ |
130 | #define␉pmc2␉954␊ |
131 | #define␉sia␉␉955␊ |
132 | #define␉mmcr1␉956␊ |
133 | #define␉pmc3␉957␊ |
134 | #define␉pmc4␉958␊ |
135 | #define␉sda␉␉959␉␉/* Sampled data address */␊ |
136 | #define dmiss␉976␉␉/* ea that missed */␊ |
137 | #define trig0␉976␉␉␊ |
138 | #define dcmp␉977␉␉/* compare value for the va that missed */␊ |
139 | #define trig1␉977␉␉␊ |
140 | #define hash1␉978␉␉/* pointer to first hash pteg */␊ |
141 | #define trig2␉978␉␉␊ |
142 | #define␉hash2␉979␉␉/* pointer to second hash pteg */␊ |
143 | #define imiss␉980␉␉/* ea that missed */␊ |
144 | #define tlbmiss␉980␉␉/* ea that missed */␊ |
145 | #define icmp␉981␉␉/* compare value for the va that missed */␊ |
146 | #define ptehi␉981␉␉/* compare value for the va that missed */␊ |
147 | #define rpa␉␉982␉␉/* required physical address register */␊ |
148 | #define ptelo␉982␉␉/* required physical address register */␊ |
149 | #define l3pdet␉984␉␉/* l3pdet */␊ |
150 | ␊ |
151 | #define HID0␉1008␉/* Checkstop and misc enables */␊ |
152 | #define hid0␉1008␉/* Checkstop and misc enables */␊ |
153 | #define HID1␉1009␉/* Clock configuration */␊ |
154 | #define hid1␉1009␉/* Clock configuration */␊ |
155 | #define HID2␉1016␉/* Other processor controls */␊ |
156 | #define hid2␉1016␉/* Other processor controls */␊ |
157 | #define iabr␉1010␉/* Instruction address breakpoint register */␊ |
158 | #define ictrl␉1011␉/* Instruction Cache Control */␊ |
159 | #define ldstdb␉1012␉/* Load/Store Debug */␊ |
160 | #define hid4␉1012␉/* Misc stuff */␊ |
161 | #define dabr␉1013␉/* Data address breakpoint register */␊ |
162 | #define msscr0␉1014␉/* Memory subsystem control */␊ |
163 | #define hid5␉1014␉/* Misc stuff */␊ |
164 | #define msscr1␉1015␉/* Memory subsystem debug */␊ |
165 | #define msssr0␉1015␉/* Memory Subsystem Status */␊ |
166 | #define ldstcr␉1016␉/* Load/Store Status/Control */␊ |
167 | #define l2cr2␉1016␉/* L2 Cache control 2 */␊ |
168 | #define l2cr␉1017␉/* L2 Cache control */␊ |
169 | #define l3cr␉1018␉/* L3 Cache control */␊ |
170 | #define ictc␉1019␉/* I-cache throttling control */␊ |
171 | #define thrm1␉1020␉/* Thermal management 1 */␊ |
172 | #define thrm2␉1021␉/* Thermal management 2 */␊ |
173 | #define thrm3␉1022␉/* Thermal management 3 */␊ |
174 | #define pir␉␉1023␉/* Processor ID Register */␊ |
175 | ␊ |
176 | ␊ |
177 | /* SPR registers (64-bit, PPC970 specific) */␊ |
178 | ␊ |
179 | #define scomc_gp␉276␊ |
180 | #define scomd_gp␉277␊ |
181 | ␊ |
182 | #define hsprg0␉␉304␊ |
183 | #define hsprg1␉␉305␊ |
184 | #define hdec␉␉310␊ |
185 | #define hior␉␉311␊ |
186 | #define rmor␉␉312␊ |
187 | #define hrmor␉␉313␊ |
188 | #define hsrr0␉␉314␊ |
189 | #define hsrr1␉␉315␊ |
190 | #define lpcr␉␉318␊ |
191 | #define lpidr␉␉319␊ |
192 | ␊ |
193 | #define ummcra_gp␉770␊ |
194 | #define upmc1_gp␉771␊ |
195 | #define upmc2_gp␉772␊ |
196 | #define upmc3_gp␉773␊ |
197 | #define upmc4_gp␉774␊ |
198 | #define upmc5_gp␉775␊ |
199 | #define upmc6_gp␉776␊ |
200 | #define upmc7_gp␉777␊ |
201 | #define upmc8_gp␉778␊ |
202 | #define ummcr0_gp␉779␊ |
203 | #define usiar_gp␉780␊ |
204 | #define usdar_gp␉781␊ |
205 | #define ummcr1_gp␉782␊ |
206 | #define uimc_gp␉␉783␊ |
207 | ␊ |
208 | #define mmcra_gp␉786␊ |
209 | #define pmc1_gp␉␉787␊ |
210 | #define pmc2_gp␉␉788␊ |
211 | #define pmc3_gp␉␉789␊ |
212 | #define pmc4_gp␉␉790␊ |
213 | #define pmc5_gp␉␉791␊ |
214 | #define pmc6_gp␉␉792␊ |
215 | #define pmc7_gp␉␉793␊ |
216 | #define pmc8_gp␉␉794␊ |
217 | #define mmcr0_gp␉795␊ |
218 | #define siar_gp␉␉796␊ |
219 | #define sdar_gp␉␉797␊ |
220 | #define mmcr1_gp␉798␊ |
221 | #define imc_gp␉␉799␊ |
222 | ␊ |
223 | #define trig0_gp␉976␉␉␊ |
224 | #define trig1_gp␉977␉␉␊ |
225 | #define trig2_gp␉978␉␉␊ |
226 | ␊ |
227 | #define dabrx␉␉1015␊ |
228 | ␊ |
229 | ;␉hid0 bits␊ |
230 | #define emcp␉0␊ |
231 | #define emcpm␉0x80000000␊ |
232 | #define dbp␉␉1␊ |
233 | #define dbpm␉0x40000000␊ |
234 | #define eba␉␉2␊ |
235 | #define ebam␉0x20000000␊ |
236 | #define ebd␉␉3␊ |
237 | #define ebdm␉0x10000000␊ |
238 | #define sbclk␉4␊ |
239 | #define sbclkm␉0x08000000␊ |
240 | #define eclk␉6␊ |
241 | #define eclkm␉0x02000000␊ |
242 | #define par␉␉7␊ |
243 | #define parm␉0x01000000␊ |
244 | #define sten␉7␊ |
245 | #define stenm␉0x01000000␊ |
246 | #define dnap␉7␊ |
247 | #define dnapm␉0x01000000␊ |
248 | #define doze␉8␊ |
249 | #define dozem␉0x00800000␊ |
250 | #define nap␉␉9␊ |
251 | #define napm␉0x00400000␊ |
252 | #define sleep␉10␊ |
253 | #define sleepm␉0x00200000␊ |
254 | #define dpm␉␉11␊ |
255 | #define dpmm␉0x00100000␊ |
256 | #define riseg␉12␊ |
257 | #define risegm␉0x00080000␊ |
258 | #define eiec␉13␊ |
259 | #define eiecm␉0x00040000␊ |
260 | #define mum␉␉14␊ |
261 | #define mumm␉0x00020000␊ |
262 | #define nhr␉␉15␊ |
263 | #define nhrm␉0x00010000␊ |
264 | #define ice␉␉16␊ |
265 | #define icem␉0x00008000␊ |
266 | #define dce␉␉17␊ |
267 | #define dcem␉0x00004000␊ |
268 | #define ilock␉18␊ |
269 | #define ilockm␉0x00002000␊ |
270 | #define dlock␉19␊ |
271 | #define dlockm␉0x00001000␊ |
272 | #define exttben␉19␊ |
273 | #define icfi␉20␊ |
274 | #define icfim␉0x00000800␊ |
275 | #define dcfi␉21␊ |
276 | #define dcfim␉0x00000400␊ |
277 | #define spd␉␉22␊ |
278 | #define spdm␉0x00000200␊ |
279 | #define hdice␉23␊ |
280 | #define hdicem␉0x00000100␊ |
281 | #define sge␉␉24␊ |
282 | #define sgem␉0x00000080␊ |
283 | #define dcfa␉25␊ |
284 | #define dcfam␉0x00000040␊ |
285 | #define btic␉26␊ |
286 | #define bticm␉0x00000020␊ |
287 | #define lrstk␉27␊ |
288 | #define lrstkm␉0x00000010␊ |
289 | #define abe␉␉28␊ |
290 | #define abem␉0x00000008␊ |
291 | #define fold␉28␊ |
292 | #define foldm␉0x00000008␊ |
293 | #define bht␉␉29␊ |
294 | #define bhtm␉0x00000004␊ |
295 | #define nopdst␉30␊ |
296 | #define nopdstm␉0x00000002␊ |
297 | #define nopti␉31␊ |
298 | #define noptim␉0x00000001␊ |
299 | ␊ |
300 | ;␉hid1 bits␊ |
301 | #define hid1pcem␉0xF8000000␊ |
302 | #define hid1prem␉0x06000000␊ |
303 | #define hid1dfs0␉8␊ |
304 | #define hid1dfs0m␉0x00800000␊ |
305 | #define hid1dfs1␉9␊ |
306 | #define hid1dfs1m␉0x00400000␊ |
307 | #define hid1pi0␉␉14␊ |
308 | #define hid1pi0m␉0x00020000␊ |
309 | #define hid1FCPErr␉14␊ |
310 | #define hid1ps␉␉15␊ |
311 | #define hid1FCD0PErr␉15␊ |
312 | #define hid1psm␉␉0x00010000␊ |
313 | #define hid1pc0␉␉0x0000F800␊ |
314 | #define hid1pr0␉␉0x00000600␊ |
315 | #define hid1pc1␉␉0x000000F8␊ |
316 | #define hid1pc0␉␉0x0000F800␊ |
317 | #define hid1pr1␉␉0x00000006␊ |
318 | #define hid1FCD1PErr␉16␊ |
319 | #define hid1FIERATErr␉17␊ |
320 | ␊ |
321 | ;␉hid2 bits␊ |
322 | #define hid2vmin␉18␊ |
323 | #define hid2vminm␉0x00002000␊ |
324 | ␊ |
325 | ;␉msscr0 bits␊ |
326 | #define shden␉0␊ |
327 | #define shdenm␉0x80000000␊ |
328 | #define shden3␉1␊ |
329 | #define shdenm3␉0x40000000␊ |
330 | #define l1intvs␉2␉␊ |
331 | #define l1intve␉4␉␊ |
332 | #define l1intvb␉0x38000000␉␊ |
333 | #define l2intvs␉5␉␊ |
334 | #define l2intve␉7␉␊ |
335 | #define l2intvb␉0x07000000␉␊ |
336 | #define dl1hwf␉8␊ |
337 | #define dl1hwfm␉0x00800000␊ |
338 | #define dbsiz␉9␊ |
339 | #define dbsizm␉0x00400000␊ |
340 | #define emode␉10␊ |
341 | #define emodem␉0x00200000␊ |
342 | #define abgd␉11␊ |
343 | #define abgdm␉0x00100000␊ |
344 | #define tfsts␉24␊ |
345 | #define tfste␉25␊ |
346 | #define tfstm␉0x000000C0␊ |
347 | #define␉l2pfes␉30␊ |
348 | #define␉l2pfee␉31␊ |
349 | #define␉l2pfem␉0x00000003␊ |
350 | ␊ |
351 | ;␉msscr1 bits␊ |
352 | #define cqd␉␉15␊ |
353 | #define cqdm␉0x00010000␊ |
354 | #define csqs␉1␊ |
355 | #define csqe␉2␊ |
356 | #define csqm␉0x60000000␊ |
357 | ␊ |
358 | ;␉msssr1 bits - 7450␊ |
359 | #define vgL2PARA␉0␊ |
360 | #define vgL3PARA␉1␊ |
361 | #define vgL2COQEL␉2␊ |
362 | #define vgL3COQEL␉3␊ |
363 | #define vgL2CTR␉␉4␊ |
364 | #define vgL3CTR␉␉5␊ |
365 | #define vgL2COQR␉6␊ |
366 | #define vgL3COQR␉7␊ |
367 | #define vgLMQ␉␉8␊ |
368 | #define vgSMC␉␉9␊ |
369 | #define vgSNP␉␉10␊ |
370 | #define vgBIU␉␉11␊ |
371 | #define vgSMCE␉␉12␊ |
372 | #define vgL2TAG␉␉13␊ |
373 | #define vgL2DAT␉␉14␊ |
374 | #define vgL3TAG␉␉15␊ |
375 | #define vgL3DAT␉␉16␊ |
376 | #define vgAPE␉␉17␊ |
377 | #define vgDPE␉␉18␊ |
378 | #define vgTEA␉␉19␊ |
379 | ␊ |
380 | ;␉srr1 bits␊ |
381 | #define icmck␉1␊ |
382 | #define icmckm␉0x40000000␊ |
383 | #define dcmck␉2␊ |
384 | #define dcmckm␉0x20000000␊ |
385 | #define l2mck␉3␊ |
386 | #define l2mckm␉0x10000000␊ |
387 | #define tlbmck␉4␊ |
388 | #define tlbmckm␉0x08000000␊ |
389 | #define brmck␉5␊ |
390 | #define brmckm␉0x04000000␊ |
391 | #define othmck␉10␊ |
392 | #define othmckm␉0x00200000␊ |
393 | #define l2dpmck␉11␊ |
394 | #define l2dpmckm␉0x00100000␊ |
395 | #define mcpmck␉12␊ |
396 | #define mcpmckm␉0x00080000␊ |
397 | #define teamck␉13␊ |
398 | #define teamckm␉0x00040000␊ |
399 | #define dpmck␉14␊ |
400 | #define dpmckm␉0x00020000␊ |
401 | #define apmck␉15␊ |
402 | #define apmckm␉0x00010000␊ |
403 | ␊ |
404 | #define mckIFUE␉42␊ |
405 | #define mckLDST␉43␊ |
406 | #define mckXCs␉44␊ |
407 | #define mckXCe␉45␊ |
408 | #define mckNoErr␉0␊ |
409 | #define mckIFSLBPE␉1␊ |
410 | #define mckIFTLBPE␉2␊ |
411 | #define mckIFTLBUE␉3␊ |
412 | ␊ |
413 | ;␉dsisr bits␊ |
414 | #define mckUEdfr␉16␊ |
415 | #define mckUETwDfr␉17␊ |
416 | #define mckL1DCPE␉18␊ |
417 | #define␉mckL1DTPE␉19␊ |
418 | #define␉mckDEPE␉␉20␊ |
419 | #define mckTLBPE␉21␊ |
420 | #define mckSLBPE␉23␊ |
421 | ␊ |
422 | ;␉Async MCK source␊ |
423 | #define AsyMCKSrc 0x0226␊ |
424 | #define AsyMCKRSrc 0x0227␊ |
425 | #define AsyMCKext 0␊ |
426 | #define AsyMCKfir 1␊ |
427 | #define AsyMCKhri 2␊ |
428 | #define AsyMCKdbg 3␊ |
429 | #define AsyMCKncstp 4␊ |
430 | ␊ |
431 | ;␉Core FIR␊ |
432 | #define cFIR 0x0300␊ |
433 | #define cFIRrst 0x0310␊ |
434 | #define cFIRICachePE 0␊ |
435 | #define cFIRITagPE0 1␊ |
436 | #define cFIRITagPE1 2␊ |
437 | #define cFIRIEratPE 3␊ |
438 | #define cFIRIFUL2UE 4␊ |
439 | #define cFIRIFUCS 5␊ |
440 | #define cFIRDCachePE 6␊ |
441 | #define cFIRDTagPE 7␊ |
442 | #define cFIRDEratPE 8␊ |
443 | #define cFIRTLBPE 9␊ |
444 | #define cFIRSLBPE 10␊ |
445 | #define cFIRSL2UE 11␊ |
446 | ␊ |
447 | ;␉Core Error Inject␊ |
448 | #define CoreErrI 0x0350␊ |
449 | #define CoreIFU 0␊ |
450 | #define CoreLSU 1␊ |
451 | #define CoreRate0 2␊ |
452 | #define CoreRate1 3␊ |
453 | #define CoreOnce 0␊ |
454 | #define CoreSolid 2␊ |
455 | #define CorePulse 3␊ |
456 | ␊ |
457 | ;␉L2 FIR␊ |
458 | #define l2FIR 0x0400␊ |
459 | #define l2FIRrst 0x0410␊ |
460 | ␊ |
461 | ;␉Bus FIR␊ |
462 | #define busFIR 0x0A00␊ |
463 | #define busFIRrst 0x0A10␊ |
464 | ␊ |
465 | ;␉HID4␊ |
466 | #define hid4RMCI 23␊ |
467 | #define hid4FAlgn 24␊ |
468 | #define hid4DisPF 25␊ |
469 | #define hid4ResPF 26␊ |
470 | #define hid4EnSPTW 27␊ |
471 | #define hid4L1DCFI 28␊ |
472 | #define hid4DisDERpg 31␊ |
473 | #define hid4DisDCTpg 36␊ |
474 | #define hid4DisDCpg 41␊ |
475 | #define hid4DisTLBpg 48␊ |
476 | #define hid4DisSLBpg 54␊ |
477 | #define hid4MckEIEna 55␊ |
478 | ␊ |
479 | ;␉L2 cache control␊ |
480 | #define l2e␉␉0␊ |
481 | #define l2em␉0x80000000␊ |
482 | #define l2pe␉1␊ |
483 | #define l2pem␉0x40000000␊ |
484 | #define l2siz␉2␊ |
485 | #define l2sizf␉3␊ |
486 | #define l2sizm␉0x30000000␊ |
487 | #define l2clk␉4␊ |
488 | #define l2clkf␉6␊ |
489 | #define l2clkm␉0x0E000000␊ |
490 | #define l2ram␉7␊ |
491 | #define l2ramf␉8␊ |
492 | #define l2ramm␉0x01800000␊ |
493 | #define l2do␉9␊ |
494 | #define l2dom␉0x00400000␊ |
495 | #define l2i␉␉10␊ |
496 | #define l2im␉0x00200000␊ |
497 | #define l2ctl␉11␊ |
498 | #define l2ctlm␉0x00100000␊ |
499 | #define l2ionly␉11␊ |
500 | #define l2ionlym␉0x00100000␊ |
501 | #define l2wt␉12␊ |
502 | #define l2wtm␉0x00080000␊ |
503 | #define l2ts␉13␊ |
504 | #define l2tsm␉0x00040000␊ |
505 | #define l2oh␉14␊ |
506 | #define l2ohf␉15␊ |
507 | #define l2ohm␉0x00030000␊ |
508 | #define l2donly␉15␊ |
509 | #define l2donlym␉0x00010000␊ |
510 | #define l2sl␉16␊ |
511 | #define l2slm␉0x00008000␊ |
512 | #define l2df␉17␊ |
513 | #define l2dfm␉0x00004000␊ |
514 | #define l2byp␉18␊ |
515 | #define l2bypm␉0x00002000␊ |
516 | #define l2fa␉19␊ |
517 | #define l2fam␉0x00001000␊ |
518 | #define l2hwf␉20␊ |
519 | #define l2hwfm␉0x00000800␊ |
520 | #define l2io␉21␊ |
521 | #define l2iom␉0x00000400␊ |
522 | #define l2clkstp␉22␊ |
523 | #define␉l2clkstpm␉0x00000200␊ |
524 | #define l2dro␉23␊ |
525 | #define l2drom␉0x00000100 ␊ |
526 | #define l2ctr␉24␊ |
527 | #define l2ctrf␉30␊ |
528 | #define l2ctrm␉0x000000FE␊ |
529 | #define␉l2ip␉31␊ |
530 | #define l2ipm␉0x00000001␊ |
531 | ␊ |
532 | ;␉L3 cache control␊ |
533 | #define l3e␉␉0␊ |
534 | #define l3em␉0x80000000␊ |
535 | #define l3pe␉1␊ |
536 | #define l3pem␉0x40000000␊ |
537 | #define l3siz␉3␊ |
538 | #define l3sizm␉0x10000000␊ |
539 | #define l3clken␉4␊ |
540 | #define l3clkenm␉0x08000000␊ |
541 | #define l3dx␉5␊ |
542 | #define l3dxm␉0x04000000␊ |
543 | #define l3clk␉6␊ |
544 | #define l3clkf␉8␊ |
545 | #define l3clkm␉0x03800000␊ |
546 | #define l3io␉9␊ |
547 | #define l3iom␉0x00400000␊ |
548 | #define l3spo␉13␊ |
549 | #define l3spom␉0x00040000␊ |
550 | #define l3cksp␉14␊ |
551 | #define l3ckspf␉15␊ |
552 | #define l3ckspm␉0x00030000␊ |
553 | #define l3psp␉16␊ |
554 | #define l3pspf␉18␊ |
555 | #define l3pspm␉0x0000E000␊ |
556 | #define l3rep␉19␊ |
557 | #define l3repm␉0x00001000␊ |
558 | #define l3hwf␉20␊ |
559 | #define l3hwfm␉0x00000800␊ |
560 | #define l3i␉␉21␊ |
561 | #define l3im␉0x00000400␊ |
562 | #define l3rt␉22␊ |
563 | #define l3rtf␉23␊ |
564 | #define␉l3rtm␉0x00000300␊ |
565 | #define l3dro␉23␊ |
566 | #define l3drom␉0x00000100 ␊ |
567 | #define l3cya␉24␊ |
568 | #define l3cyam␉0x00000080␊ |
569 | #define l3donly␉25␊ |
570 | #define l3donlym␉0x00000040␊ |
571 | #define l3dmem␉29␊ |
572 | #define l3dmemm␉0x00000004␊ |
573 | #define l3dmsiz␉31␊ |
574 | #define l3dmsizm␉0x00000001␊ |
575 | ␊ |
576 | #define␉thrmtin␉␉0␊ |
577 | #define␉thrmtinm␉0x80000000␊ |
578 | #define␉thrmtiv␉␉1␊ |
579 | #define thrmtivm␉0x40000000␊ |
580 | #define thrmthrs␉2␊ |
581 | #define thrmthre␉8␊ |
582 | #define thrmthrm␉0x3F800000␊ |
583 | #define thrmtid␉␉29␊ |
584 | #define thrmtidm␉0x00000004␊ |
585 | #define thrmtie␉␉30␊ |
586 | #define thrmtiem␉0x00000002␊ |
587 | #define thrmv␉␉31␊ |
588 | #define thrmvm␉␉0x00000001␊ |
589 | ␊ |
590 | #define thrmsitvs␉15␊ |
591 | #define thrmsitve␉30␊ |
592 | #define thrmsitvm␉0x0001FFFE␊ |
593 | #define thrme␉␉31␊ |
594 | #define thrmem␉␉0x00000001␊ |
595 | ␊ |
596 | #define ictcfib␉␉23␊ |
597 | #define ictcfie␉␉30␊ |
598 | #define ictcfim␉␉0x000001FE␊ |
599 | #define ictce␉␉31␊ |
600 | #define ictcem␉␉0x00000001␊ |
601 | ␊ |
602 | #define slbESID␉36␊ |
603 | #define slbKey␉52␊ |
604 | #define slbIndex 52␊ |
605 | #define slbV␉36␊ |
606 | #define slbVm␉0x08000000␊ |
607 | #define slbCnt␉64␊ |
608 | ␊ |
609 | /*␊ |
610 | * Macros to access high and low word values of an address␊ |
611 | */␊ |
612 | ␊ |
613 | #define␉HIGH_CADDR(x)␉ha16(x)␊ |
614 | #define␉HIGH_ADDR(x)␉hi16(x)␊ |
615 | #define␉LOW_ADDR(x)␉lo16(x)␊ |
616 | ␊ |
617 | #endif␉/* ASSEMBLER */␊ |
618 | ␊ |
619 | #define cr0_lt␉0␊ |
620 | #define cr0_gt␉1␊ |
621 | #define cr0_eq␉2␊ |
622 | #define cr0_so␉3␊ |
623 | #define cr0_un␉3␊ |
624 | #define cr1_lt␉4␊ |
625 | #define cr1_gt␉5␊ |
626 | #define cr1_eq␉6␊ |
627 | #define cr1_so␉7␊ |
628 | #define cr1_un␉7␊ |
629 | #define cr2_lt␉8␊ |
630 | #define cr2_gt␉9␊ |
631 | #define cr2_eq␉10␊ |
632 | #define cr2_so␉11␊ |
633 | #define cr2_un␉11␊ |
634 | #define cr3_lt␉12␊ |
635 | #define cr3_gt␉13␊ |
636 | #define cr3_eq␉14␊ |
637 | #define cr3_so␉15␊ |
638 | #define cr3_un␉15␊ |
639 | #define cr4_lt␉16␊ |
640 | #define cr4_gt␉17␊ |
641 | #define cr4_eq␉18␊ |
642 | #define cr4_so␉19␊ |
643 | #define cr4_un␉19␊ |
644 | #define cr5_lt␉20␊ |
645 | #define cr5_gt␉21␊ |
646 | #define cr5_eq␉22␊ |
647 | #define cr5_so␉23␊ |
648 | #define cr5_un␉23␊ |
649 | #define cr6_lt␉24␊ |
650 | #define cr6_gt␉25␊ |
651 | #define cr6_eq␉26␊ |
652 | #define cr6_so␉27␊ |
653 | #define cr6_un␉27␊ |
654 | #define cr7_lt␉28␊ |
655 | #define cr7_gt␉29␊ |
656 | #define cr7_eq␉30␊ |
657 | #define cr7_so␉31␊ |
658 | #define cr7_un␉31␊ |
659 | ␊ |
660 | /*␉GUS Mode Register */␊ |
661 | #define GUSModeReg 0x0430␊ |
662 | #define GUSMdmapen 0x00008000␊ |
663 | #define GUSMstgtdis 0x00000080␊ |
664 | #define GUSMstgttim 0x00000038␊ |
665 | #define GUSMstgttoff 0x00000004␊ |
666 | ␊ |
667 | /* PowerTune */␊ |
668 | #define PowerTuneControlReg␉0x0AA001␊ |
669 | #define PowerTuneStatusReg␉0x408001␊ |
670 | ␊ |
671 | /* Code inject */␊ |
672 | //␉The following bits are always on in the MSR when injected code is executing␊ |
673 | #define ijemon 0x00000010␊ |
674 | //␉The following bits are always off in the MSR when injected code it executing␊ |
675 | #define ijemoff 0x0000C620␊ |
676 | #define ijemtrap ijemon|1␊ |
677 | //␉The following is the inject exit trap␊ |
678 | #define ijtrap 0x0FFFC9C9␊ |
679 | ␊ |
680 | /* Misc */␊ |
681 | #define srr1clr 0x783F0000␊ |
682 | ␊ |
683 | /* Tags are placed before Immediately Following Code (IFC) for the debugger␊ |
684 | * to be able to deduce where to find various registers when backtracing␊ |
685 | * ␊ |
686 | * We only define the values as we use them, see SVR4 ABI PowerPc Supplement␊ |
687 | * for more details (defined in ELF spec).␊ |
688 | */␊ |
689 | ␊ |
690 | #define TAG_NO_FRAME_USED 0x00000000␊ |
691 | ␊ |
692 | /* (should use genassym to get these offsets) */␊ |
693 | ␊ |
694 | #define FM_BACKPTR 0␊ |
695 | #define␉FM_CR_SAVE 4␊ |
696 | #define FM_LR_SAVE 8 /* MacOSX is NOT following the ABI at the moment.. */␊ |
697 | #define FM_SIZE 64 /* minimum frame contents, backptr and LR save. Make sure it is quadaligned */␊ |
698 | #define FM_ARG0␉ 56␊ |
699 | #define FM_ALIGN(l) ((l+15)&-16)␊ |
700 | #define␉PK_SYSCALL_BEGIN␉0x7000␊ |
701 | ␊ |
702 | ␊ |
703 | /* redzone is the area under the stack pointer which must be preserved␊ |
704 | * when taking a trap, interrupt etc.␊ |
705 | */␊ |
706 | #define FM_REDZONE 224␉␉␉␉/* is ((32-14+1)*4) */␊ |
707 | ␊ |
708 | #define COPYIN_ARG0_OFFSET FM_ARG0␊ |
709 | ␊ |
710 | #ifdef␉MACH_KERNEL␊ |
711 | #include <mach_kdb.h>␊ |
712 | #else␉/* MACH_KERNEL */␊ |
713 | #define MACH_KDB 0␊ |
714 | #endif␉/* MACH_KERNEL */␊ |
715 | ␊ |
716 | #define BREAKPOINT_TRAP tw␉4,r4,r4␊ |
717 | ␊ |
718 | /* There is another definition of ALIGN for .c sources */␊ |
719 | #ifndef __LANGUAGE_ASSEMBLY␊ |
720 | #define ALIGN 4␊ |
721 | #endif /* __LANGUAGE_ASSEMBLY */␊ |
722 | ␊ |
723 | #ifndef FALIGN␊ |
724 | #define FALIGN 4 /* Align functions on words for now. Cachelines is better */␊ |
725 | #endif␊ |
726 | ␊ |
727 | #define LB(x,n) n␊ |
728 | #if␉__STDC__␊ |
729 | #define␉LCL(x)␉L ## x␊ |
730 | #define EXT(x) _ ## x␊ |
731 | #define LEXT(x) _ ## x ## :␊ |
732 | #define LBc(x,n) n ## :␊ |
733 | #define LBb(x,n) n ## b␊ |
734 | #define LBf(x,n) n ## f␊ |
735 | #else /* __STDC__ */␊ |
736 | #define LCL(x) L/**/x␊ |
737 | #define EXT(x) _/**/x␊ |
738 | #define LEXT(x) _/**/x/**/:␊ |
739 | #define LBc(x,n) n/**/:␊ |
740 | #define LBb(x,n) n/**/b␊ |
741 | #define LBf(x,n) n/**/f␊ |
742 | #endif /* __STDC__ */␊ |
743 | ␊ |
744 | #define String␉.asciz␊ |
745 | #define Value␉.word␊ |
746 | #define Times(a,b) (a*b)␊ |
747 | #define Divide(a,b) (a/b)␊ |
748 | ␊ |
749 | #define data16␉.byte 0x66␊ |
750 | #define addr16␉.byte 0x67␊ |
751 | ␊ |
752 | #define MCOUNT␊ |
753 | ␊ |
754 | #define ELF_FUNC(x)␊ |
755 | #define ELF_DATA(x)␊ |
756 | #define ELF_SIZE(x,s)␊ |
757 | ␊ |
758 | #define␉Entry(x,tag)␉.text@.align FALIGN@ .globl EXT(x)@ LEXT(x)␊ |
759 | #define␉ENTRY(x,tag)␉Entry(x,tag)@MCOUNT␊ |
760 | #define␉ENTRY2(x,y,tag)␉.text@ .align FALIGN@ .globl EXT(x)@ .globl EXT(y)@ \␊ |
761 | ␉␉␉LEXT(x)@ LEXT(y) @\␊ |
762 | ␉␉␉MCOUNT␊ |
763 | #if __STDC__␊ |
764 | #define␉ASENTRY(x) ␉.globl x @ .align FALIGN; x ## @ MCOUNT␊ |
765 | #else␊ |
766 | #define␉ASENTRY(x) ␉.globl x @ .align FALIGN; x @ MCOUNT␊ |
767 | #endif /* __STDC__ */␊ |
768 | #define␉DATA(x)␉␉.globl EXT(x) @ .align ALIGN @ LEXT(x)␊ |
769 | ␊ |
770 | ␊ |
771 | #define End(x)␉␉ELF_SIZE(x,.-x)␊ |
772 | #define END(x)␉␉End(EXT(x))␊ |
773 | #define ENDDATA(x)␉END(x)␊ |
774 | #define Enddata(x)␉End(x)␊ |
775 | ␊ |
776 | /* These defines are here for .c files that wish to reference global symbols␊ |
777 | * within __asm__ statements. ␊ |
778 | */␊ |
779 | #define CC_SYM_PREFIX "_"␊ |
780 | ␊ |
781 | #endif /* _PPC_ASM_H_ */␊ |
782 |