mirror of
https://github.com/elliotnunn/powermac-rom.git
synced 2024-10-31 19:04:49 +00:00
85c87e641a
The master branch builds 02.28. This branch builds 02.27, 02.26 and so on. It will be frequently rebased on master.
70 lines
1.8 KiB
ArmAsm
70 lines
1.8 KiB
ArmAsm
;_______________________________________________________________________
|
|
; Equates for the whole NanoKernel
|
|
;_______________________________________________________________________
|
|
|
|
|
|
kNanoKernelVersion equ $0227
|
|
|
|
|
|
; PowerPC Machine Status Register (MSR) bits
|
|
; (borrowing the _bitEqu macro from NKInfoRecordsPriv.s)
|
|
|
|
_bitEqu MSR_POW, 13
|
|
_bitEqu MSR_ILE, 15
|
|
_bitEqu MSR_EE, 16
|
|
_bitEqu MSR_PR, 17
|
|
_bitEqu MSR_FP, 18
|
|
_bitEqu MSR_ME, 19
|
|
_bitEqu MSR_FE0, 20
|
|
_bitEqu MSR_SE, 21
|
|
_bitEqu MSR_BE, 22
|
|
_bitEqu MSR_FE1, 23
|
|
_bitEqu MSR_IP, 25
|
|
_bitEqu MSR_IR, 26
|
|
_bitEqu MSR_DR, 27
|
|
_bitEqu MSR_RI, 30
|
|
_bitEqu MSR_LE, 31
|
|
|
|
|
|
; Special Purpose Registers (SPRs) not understood by MPW
|
|
|
|
l2cr equ 1017
|
|
|
|
|
|
; Alignment for NanoKernel interrupt routines (mostly Interrupts.s)
|
|
|
|
kIntAlign equ 5
|
|
|
|
|
|
|
|
; Junk
|
|
|
|
|
|
; IRP is 10 pages below KDP (measured start to start)
|
|
; This should be neatened up to describe the kernel global area
|
|
IRPOffset equ (-10) * 4096
|
|
kKDPfromIRP equ 10 * 4096
|
|
kPoolOffsetFromGlobals equ (-7) * 4096 ; goes all the way up to 24 bytes short of PSA
|
|
|
|
|
|
|
|
; Branch instruction BO fields
|
|
; (disregarding static prediction :)
|
|
BO_IF equ 12
|
|
BO_IF_NOT equ 4
|
|
|
|
Z equ 0x80000000
|
|
|
|
|
|
; SIGP (SIGnal Plugin) selectors used by the kernel:
|
|
kStartProcessor equ 1 ; r4 = target CPU idx, r5 = cpu's entry point, r6 = entry point's r3 (CPU struct ptr)
|
|
kStopProcessor equ 3 ; r4 = target CPU idx
|
|
kResetProcessor equ 4 ; r4 = target CPU idx
|
|
kAlert equ 5 ; r4 = target CPU idx? ; my name, has something to do with timers
|
|
kSIGP6 equ 6 ; r4 = target CPU idx?
|
|
kSIGP7 equ 7 ; r4 = target CPU idx?
|
|
kSynchClock equ 8 ; r4 = target CPU idx,
|
|
kSIGP9 equ 9 ; no args?
|
|
kGetProcessorTemp equ 12 ; r4 = selector (ignored on Core99), r5 = cpu ID ; my name
|
|
kSIGP17 equ 17 ; r4 = target CPU idx?
|