mirror of
https://github.com/elliotnunn/powermac-rom.git
synced 2024-12-03 08:51:33 +00:00
Auto-generate per-file function lists
This commit is contained in:
parent
9fd3316452
commit
933bd48f01
136
AsmSymScanner.py
Executable file
136
AsmSymScanner.py
Executable file
@ -0,0 +1,136 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import re
|
||||
import os.path
|
||||
|
||||
HEADER = 'AUTO-GENERATED SYMBOL LIST'
|
||||
ENC = 'macroman'
|
||||
RECORD = re.compile(r'^[^;\s]*\s+record', re.I)
|
||||
ENDR = re.compile(r'^\s+endr', re.I)
|
||||
|
||||
SETEQU = re.compile(r'^\S+\s+(dc\.|ds\.|set|equ|record)', flags=re.I)
|
||||
|
||||
def neaten_name(x):
|
||||
bn = os.path.basename(x)
|
||||
bn = os.path.splitext(bn)[0]
|
||||
return bn
|
||||
|
||||
all_args = list(sys.argv[1:])
|
||||
opts = []
|
||||
|
||||
while all_args and all_args[0].startswith('-'):
|
||||
opts.append(all_args.pop(0))
|
||||
|
||||
fnames = all_args
|
||||
|
||||
fnames = [fn for fn in fnames if HEADER in open(fn, encoding=ENC).read(2048)]
|
||||
|
||||
fexports = []
|
||||
for name in fnames:
|
||||
exports = set()
|
||||
can_keep = False
|
||||
|
||||
with open(name, encoding=ENC) as f:
|
||||
forbid = False
|
||||
for l in f:
|
||||
if not forbid and RECORD.match(l):
|
||||
forbid=True
|
||||
elif forbid and ENDR.match(l):
|
||||
forbid=False
|
||||
|
||||
if not forbid:
|
||||
m = re.match(r'^(\w+)', l)
|
||||
if m and not SETEQU.match(l):
|
||||
exports.add(m.group(1))
|
||||
|
||||
fexports.append(exports)
|
||||
|
||||
regex_cache = {}
|
||||
for export_set in fexports:
|
||||
for export in export_set:
|
||||
if export not in regex_cache:
|
||||
regex_cache[export] = re.compile(r'^[^;]+\b' + re.escape(export) + r'\b', flags=re.I)
|
||||
|
||||
export_matrix = set()
|
||||
for expname, exports in zip(fnames, fexports):
|
||||
for impname in fnames:
|
||||
if impname == expname: continue
|
||||
|
||||
with open(impname, encoding=ENC) as f:
|
||||
for l in f:
|
||||
for e in exports:
|
||||
er = regex_cache[e]
|
||||
if er.match(l):
|
||||
export_matrix.add((expname, impname, e))
|
||||
|
||||
for exp, imp, sym in sorted(export_matrix):
|
||||
print(exp.rpartition('/')[2], imp.rpartition('/')[2], sym)
|
||||
|
||||
dict_exporter = {}
|
||||
for exp, imp, sym in export_matrix:
|
||||
dict_exporter[sym] = exp
|
||||
|
||||
dict_importers = {}
|
||||
for exp, imp, sym in export_matrix:
|
||||
if sym not in dict_importers:
|
||||
dict_importers[sym] = set()
|
||||
dict_importers[sym].add(imp)
|
||||
|
||||
dict_fileimports = {}
|
||||
for exp, imp, sym in export_matrix:
|
||||
if imp not in dict_fileimports:
|
||||
dict_fileimports[imp] = set()
|
||||
dict_fileimports[imp].add(sym)
|
||||
|
||||
dict_fileexports = {}
|
||||
for exp, imp, sym in export_matrix:
|
||||
if exp not in dict_fileexports:
|
||||
dict_fileexports[exp] = set()
|
||||
dict_fileexports[exp].add(sym)
|
||||
|
||||
for f in fnames:
|
||||
if f not in dict_fileimports:
|
||||
dict_fileimports[f] = set()
|
||||
if f not in dict_fileexports:
|
||||
dict_fileexports[f] = set()
|
||||
|
||||
for path in fnames:
|
||||
with open(path, encoding=ENC) as i:
|
||||
with open(path + '~', 'w', encoding=ENC) as o:
|
||||
for l in i:
|
||||
o.write(l)
|
||||
if HEADER in l:
|
||||
prefix, _, suffix = l.partition(HEADER)
|
||||
imports = sorted(dict_fileimports[path])
|
||||
exports = sorted(dict_fileexports[path])
|
||||
|
||||
if imports:
|
||||
dict_exp_to_imp = {}
|
||||
for imp in imports:
|
||||
exporter = dict_exporter[imp]
|
||||
if exporter not in dict_exp_to_imp:
|
||||
dict_exp_to_imp[exporter] = set()
|
||||
dict_exp_to_imp[exporter].add(imp)
|
||||
|
||||
o.write(prefix + 'IMPORTS:' + suffix)
|
||||
|
||||
for exp, imps in sorted(dict_exp_to_imp.items()):
|
||||
o.write(prefix + ' ' + neaten_name(exp) + suffix)
|
||||
for imp in sorted(imps):
|
||||
o.write(prefix + ' ' + imp + suffix)
|
||||
|
||||
if exports:
|
||||
o.write(prefix + 'EXPORTS:' + suffix)
|
||||
for exp in exports:
|
||||
importers = sorted(dict_importers[exp])
|
||||
importers = [neaten_name(x) for x in importers]
|
||||
impstring = ' (=> %s)' % (', '.join(importers))
|
||||
o.write(prefix + ' ' + exp + impstring + suffix)
|
||||
|
||||
for l in i:
|
||||
if not l.startswith(prefix):
|
||||
o.write(l)
|
||||
break
|
||||
|
||||
os.rename(path + '~', path)
|
@ -1,3 +1,53 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKConsoleLog
|
||||
; printw
|
||||
; NKIndex
|
||||
; DeleteID
|
||||
; GetNextIDOfClass
|
||||
; LookupID
|
||||
; MakeID
|
||||
; NKMPCalls
|
||||
; CommonMPCallReturnPath
|
||||
; ReleaseAndMPCallWasBad
|
||||
; ReleaseAndReturnMPCall
|
||||
; ReleaseAndReturnMPCallInvalidIDErr
|
||||
; ReleaseAndReturnMPCallOOM
|
||||
; ReleaseAndReturnMPCallPrivilegedErr
|
||||
; ReleaseAndReturnParamErrFromMPCall
|
||||
; ReleaseAndReturnZeroFromMPCall
|
||||
; ReleaseAndScrambleMPCall
|
||||
; ReturnMPCallInvalidIDErr
|
||||
; ReturnMPCallOOM
|
||||
; ReturnParamErrFromMPCall
|
||||
; ReturnZeroFromMPCall
|
||||
; major_0x0b0cc
|
||||
; NKPoolAllocator
|
||||
; PoolAllocClear
|
||||
; PoolFree
|
||||
; NKSync
|
||||
; CauseNotification
|
||||
; SetEvent
|
||||
; NKThud
|
||||
; panic
|
||||
; EXPORTS:
|
||||
; CreateArea (=> NKVMCalls)
|
||||
; CreateAreasFromPageMap (=> NKInit)
|
||||
; DeletePTE (=> NKVMCalls)
|
||||
; FindAreaAbove (=> NKInterrupts, NKPaging, NKTasks, NKVMCalls)
|
||||
; FreePageListPush (=> NKInit)
|
||||
; GetPTEFromPLE (=> NKVMCalls)
|
||||
; InitFreePageList (=> NKInit)
|
||||
; InvalPTE (=> NKVMCalls)
|
||||
; MPCall_95_0x254 (=> NKPaging)
|
||||
; NKCreateAddressSpaceSub (=> NKInit)
|
||||
; SetPTE (=> NKVMCalls)
|
||||
; SpaceGetPagePLE (=> NKInterrupts, NKPaging, NKVMCalls)
|
||||
; SpaceL2PIgnoringBATs (=> NKMPCalls)
|
||||
; SpaceL2PUsingBATs (=> NKInterrupts, NKMPCalls)
|
||||
|
||||
|
||||
|
||||
##### ###### ###
|
||||
# # ##### ## #### ###### # # ## # # # #### # #### # ## # # #####
|
||||
# # # # # # # # # # # # ## # # # # # # # # # ## # # #
|
||||
|
@ -1,3 +1,23 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKConsoleLog
|
||||
; printh
|
||||
; NKInit
|
||||
; FinishInitBuiltin
|
||||
; InitIRP
|
||||
; NKPrimaryIntHandlers
|
||||
; LookupInterruptHandler
|
||||
; NKProcInfoTbl
|
||||
; OverrideProcessorInfo
|
||||
; ProcessorInfoTable
|
||||
; NKScreenConsole
|
||||
; InitScreenConsole
|
||||
; NKTranslation
|
||||
; FDP
|
||||
; EXPORTS:
|
||||
; InitBuiltin (=> NKInit)
|
||||
|
||||
|
||||
; When we receive control:
|
||||
; r3 = ConfigInfo
|
||||
; r4 = ProcessorInfo
|
||||
|
@ -39,6 +39,15 @@
|
||||
; checked L1 but did not set 1
|
||||
; checked L2 but did not set 2
|
||||
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKInterrupts
|
||||
; IntReturn
|
||||
; EXPORTS:
|
||||
; FlushCaches (=> NKPowerCalls)
|
||||
; FlushL1CacheUsingMSSCR0 (=> NKInterrupts)
|
||||
; kcCacheDispatch (=> NKInit)
|
||||
|
||||
; DeclareMPCall 199, kcCacheDispatch ; DEBUG
|
||||
|
||||
kcCacheDispatch
|
||||
|
@ -1,3 +1,20 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKScreenConsole
|
||||
; ScreenConsole_putchar
|
||||
; ScreenConsole_redraw
|
||||
; EXPORTS:
|
||||
; getchar (=> NKThud, NKTimers)
|
||||
; print_unknown (=> NKThud)
|
||||
; printb (=> NKInit, NKMPCalls, NKTimers)
|
||||
; printc (=> NKInit, NKPoolAllocator, NKThud)
|
||||
; printd (=> NKInit, NKMPCalls, NKPoolAllocator, NKTimers)
|
||||
; printh (=> NKBuiltinInit, NKMPCalls, NKReplacementInit, NKScheduler, NKThud, NKTimers)
|
||||
; prints (=> NKMPCalls, NKThud)
|
||||
; printw (=> NKAddressSpaces, NKInit, NKInterrupts, NKMPCalls, NKPaging, NKPoolAllocator, NKReplacementInit, NKScheduler, NKThud, NKTimers, NKVMCalls)
|
||||
|
||||
|
||||
|
||||
; prints
|
||||
|
||||
; _log null-terminated string with a few special escapes.
|
||||
|
@ -15,6 +15,19 @@
|
||||
; accessed by way of this ID. The kernel presently handles 65,000
|
||||
; simultaneous IDs with a bit pattern reuse probability of 1 in 4
|
||||
; billion.
|
||||
;
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKPoolAllocator
|
||||
; PoolAllocClear
|
||||
; NKThud
|
||||
; panic
|
||||
; EXPORTS:
|
||||
; DeleteID (=> NKAddressSpaces, NKMPCalls, NKSync, NKTasks, NKTimers)
|
||||
; GetNextIDOfClass (=> NKAddressSpaces, NKMPCalls, NKThud)
|
||||
; InitIDIndex (=> NKInit)
|
||||
; LookupID (=> NKAddressSpaces, NKInterrupts, NKMPCalls, NKPrimaryIntHandlers, NKSync, NKTasks, NKThud, NKTimers)
|
||||
; MakeID (=> NKAddressSpaces, NKInit, NKMPCalls, NKSync, NKTasks)
|
||||
;_______________________________________________________________________
|
||||
|
||||
Local_Panic set *
|
||||
|
@ -38,6 +38,101 @@
|
||||
; r6 = PA_EDP or zero?
|
||||
; r7 = ROMHeader.ROMRelease (e.g. 0x10B5 is 1.0ß5)
|
||||
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKAddressSpaces
|
||||
; CreateAreasFromPageMap
|
||||
; FreePageListPush
|
||||
; InitFreePageList
|
||||
; NKCreateAddressSpaceSub
|
||||
; NKBuiltinInit
|
||||
; InitBuiltin
|
||||
; NKCache
|
||||
; kcCacheDispatch
|
||||
; NKConsoleLog
|
||||
; printb
|
||||
; printc
|
||||
; printd
|
||||
; printw
|
||||
; NKIndex
|
||||
; InitIDIndex
|
||||
; MakeID
|
||||
; NKInterrupts
|
||||
; HandlePerfMonitorInt
|
||||
; IgnoreSoftwareInt
|
||||
; IntAlignment
|
||||
; IntDSI
|
||||
; IntDecrementer
|
||||
; IntExternalAlternate
|
||||
; IntExternalSystem
|
||||
; IntFPUnavail
|
||||
; IntISI
|
||||
; IntMachineCheck
|
||||
; IntPerfMonitor
|
||||
; IntProgram
|
||||
; IntSyscall
|
||||
; IntThermalEvent
|
||||
; IntTrace
|
||||
; MemRetryDSI
|
||||
; MemRetryMachineCheck
|
||||
; PIHDSI
|
||||
; kcPrioritizeInterrupts
|
||||
; kcResetSystem
|
||||
; kcReturnFromException
|
||||
; kcRunAlternateContext
|
||||
; kcThud
|
||||
; major_0x046d0
|
||||
; major_0x04a20
|
||||
; wordfill
|
||||
; NKMPCalls
|
||||
; kcMPDispatch
|
||||
; NKPaging
|
||||
; PagingFlushTLB
|
||||
; PagingFunc1
|
||||
; PagingFunc2
|
||||
; PagingL2PWithoutBATs
|
||||
; NKPoolAllocator
|
||||
; InitPool
|
||||
; PoolAllocClear
|
||||
; NKPowerCalls
|
||||
; InitIdleVecTable
|
||||
; kcPowerDispatch
|
||||
; NKProcFlagsTbl
|
||||
; ProcessorFlagsTable
|
||||
; NKRTASCalls
|
||||
; kcRTASDispatch
|
||||
; NKReplacementInit
|
||||
; InitReplacement
|
||||
; NKScheduler
|
||||
; CalculateTimeslice
|
||||
; FlagSchEval
|
||||
; SchIdleTask
|
||||
; SchInit
|
||||
; SchRdyTaskNow
|
||||
; SchRestoreStartingAtR14
|
||||
; SchSwitchSpace
|
||||
; NKScreenConsole
|
||||
; InitScreenConsole
|
||||
; NKTasks
|
||||
; CreateTask
|
||||
; NKThud
|
||||
; panic
|
||||
; NKTimers
|
||||
; InitTMRQs
|
||||
; StartTimeslicing
|
||||
; NKTranslation
|
||||
; FDP_1c40
|
||||
; ProbePerfMonitor
|
||||
; NKVMCalls
|
||||
; kcVMDispatch
|
||||
; EXPORTS:
|
||||
; CancelReplacement (=> NKReplacementInit)
|
||||
; FinishInitBuiltin (=> NKBuiltinInit)
|
||||
; InitHighLevel (=> NKReplacementInit)
|
||||
; InitIRP (=> NKBuiltinInit, NKReplacementInit)
|
||||
; ResetBuiltinKernel (=> NKInterrupts)
|
||||
|
||||
|
||||
|
||||
; First we need to avoid executing the data that follows:
|
||||
|
||||
|
@ -23,6 +23,97 @@ ecUnknown24 equ 24 ; ExceptionMemRetried
|
||||
|
||||
|
||||
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKAddressSpaces
|
||||
; FindAreaAbove
|
||||
; SpaceGetPagePLE
|
||||
; SpaceL2PUsingBATs
|
||||
; NKCache
|
||||
; FlushL1CacheUsingMSSCR0
|
||||
; NKConsoleLog
|
||||
; printw
|
||||
; NKIndex
|
||||
; LookupID
|
||||
; NKInit
|
||||
; ResetBuiltinKernel
|
||||
; NKMPCalls
|
||||
; BlockMPCall
|
||||
; kcMPDispatch
|
||||
; NKPaging
|
||||
; PagingFunc1
|
||||
; PagingL2PWithBATs
|
||||
; NKPoolAllocator
|
||||
; PoolAlloc
|
||||
; NKScheduler
|
||||
; FlagSchEval
|
||||
; Restore_v0_v31
|
||||
; Save_v0_v31
|
||||
; SchEval
|
||||
; SchExitInterrupt
|
||||
; SchFiddlePriorityShifty
|
||||
; SchRdyTaskNow
|
||||
; SchRestoreStartingAtR14
|
||||
; SchReturn
|
||||
; SchSaveStartingAtR14
|
||||
; SchSwitchSpace
|
||||
; SchTaskUnrdy
|
||||
; NKSync
|
||||
; CauseNotification
|
||||
; EnqueueMessage
|
||||
; UnblockBlueIfCouldBePolling
|
||||
; NKTasks
|
||||
; ThrowTaskToDebugger
|
||||
; NKThud
|
||||
; panic
|
||||
; NKTimers
|
||||
; TimerDispatch
|
||||
; NKTranslation
|
||||
; FDPEmulateInstruction
|
||||
; FDP_003c
|
||||
; FDP_011c
|
||||
; FDP_0DA0
|
||||
; EXPORTS:
|
||||
; Exception (=> NKThud, NKTranslation)
|
||||
; ExceptionMemRetried (=> NKTranslation)
|
||||
; FloatLoadJumpTable (=> NKTranslation)
|
||||
; FloatSaveJumpTable (=> NKTranslation)
|
||||
; HandlePerfMonitorInt (=> NKInit)
|
||||
; IgnoreSoftwareInt (=> NKInit, NKTranslation)
|
||||
; IntAlignment (=> NKInit)
|
||||
; IntDSI (=> NKInit)
|
||||
; IntDecrementer (=> NKInit)
|
||||
; IntExternalAlternate (=> NKInit)
|
||||
; IntExternalSystem (=> NKInit)
|
||||
; IntFPUnavail (=> NKInit)
|
||||
; IntHandleSpecialFPException (=> NKRTASCalls)
|
||||
; IntISI (=> NKInit)
|
||||
; IntMachineCheck (=> NKInit)
|
||||
; IntPerfMonitor (=> NKInit)
|
||||
; IntProgram (=> NKInit)
|
||||
; IntReturn (=> NKCache, NKMPCalls, NKPowerCalls, NKPrimaryIntHandlers, NKRTASCalls, NKVMCalls)
|
||||
; IntSyscall (=> NKInit)
|
||||
; IntThermalEvent (=> NKInit)
|
||||
; IntTrace (=> NKInit)
|
||||
; LoadInterruptRegisters (=> NKTranslation)
|
||||
; MemRetryDSI (=> NKInit)
|
||||
; MemRetryMachineCheck (=> NKInit)
|
||||
; PIHDSI (=> NKInit)
|
||||
; SIGP (=> NKMPCalls, NKScheduler, NKSleep)
|
||||
; bugger_around_with_floats (=> NKRTASCalls)
|
||||
; kcPrioritizeInterrupts (=> NKInit)
|
||||
; kcResetSystem (=> NKInit)
|
||||
; kcReturnFromException (=> NKInit)
|
||||
; kcRunAlternateContext (=> NKInit)
|
||||
; kcThud (=> NKInit)
|
||||
; major_0x03324 (=> NKTranslation)
|
||||
; major_0x03548 (=> NKTranslation)
|
||||
; major_0x046d0 (=> NKInit)
|
||||
; major_0x04a20 (=> NKInit)
|
||||
; wordfill (=> NKInit, NKPowerCalls)
|
||||
|
||||
|
||||
|
||||
IntPanicIsland
|
||||
b panic
|
||||
|
||||
|
@ -9,6 +9,85 @@
|
||||
|
||||
|
||||
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKAddressSpaces
|
||||
; SpaceL2PIgnoringBATs
|
||||
; SpaceL2PUsingBATs
|
||||
; NKConsoleLog
|
||||
; printb
|
||||
; printd
|
||||
; printh
|
||||
; prints
|
||||
; printw
|
||||
; NKIndex
|
||||
; DeleteID
|
||||
; GetNextIDOfClass
|
||||
; LookupID
|
||||
; MakeID
|
||||
; NKInterrupts
|
||||
; IntReturn
|
||||
; SIGP
|
||||
; NKPaging
|
||||
; PagingL2PWithBATs
|
||||
; NKPoolAllocator
|
||||
; ExtendPool
|
||||
; PoolAllocClear
|
||||
; PoolFree
|
||||
; NKScheduler
|
||||
; CalculateTimeslice
|
||||
; FlagSchEval
|
||||
; FlagSchEvaluationIfTaskRequires
|
||||
; NewCpuEntryPoint
|
||||
; Save_v0_v31
|
||||
; SchEval
|
||||
; SchIdleTask
|
||||
; SchIdleTaskStopper
|
||||
; SchRdyTaskLater
|
||||
; SchRdyTaskNow
|
||||
; SchRestoreStartingAtR14
|
||||
; SchSaveStartingAtR14
|
||||
; SchTaskUnrdy
|
||||
; NKScreenConsole
|
||||
; ScreenConsole_redraw
|
||||
; NKTasks
|
||||
; CreateTask
|
||||
; NKThud
|
||||
; panic
|
||||
; NKTimers
|
||||
; DequeueTimer
|
||||
; EnqueueTimer
|
||||
; GetTime
|
||||
; NKVMCalls
|
||||
; EditPTEInHTAB
|
||||
; GetPARPageInfo
|
||||
; RemovePageFromTLB
|
||||
; VMSecondLastExportedFunc
|
||||
; EXPORTS:
|
||||
; BlockMPCall (=> NKInterrupts, NKSync)
|
||||
; CommonMPCallReturnPath (=> NKAddressSpaces, NKSleep, NKTasks)
|
||||
; MPCall_6_0x78 (=> NKTasks)
|
||||
; ReleaseAndMPCallWasBad (=> NKAddressSpaces)
|
||||
; ReleaseAndReturnMPCall (=> NKAddressSpaces, NKSync, NKTasks)
|
||||
; ReleaseAndReturnMPCallBlueBlocking (=> NKSync)
|
||||
; ReleaseAndReturnMPCallInvalidIDErr (=> NKAddressSpaces, NKSync, NKTasks)
|
||||
; ReleaseAndReturnMPCallOOM (=> NKAddressSpaces, NKSync, NKTasks)
|
||||
; ReleaseAndReturnMPCallPrivilegedErr (=> NKAddressSpaces)
|
||||
; ReleaseAndReturnMPCallTaskAborted (=> NKSync)
|
||||
; ReleaseAndReturnParamErrFromMPCall (=> NKAddressSpaces, NKSync)
|
||||
; ReleaseAndReturnZeroFromMPCall (=> NKAddressSpaces, NKSync, NKTasks)
|
||||
; ReleaseAndScrambleMPCall (=> NKAddressSpaces, NKSync, NKTasks)
|
||||
; ReleaseAndTimeoutMPCall (=> NKSync)
|
||||
; ReturnMPCallInvalidIDErr (=> NKAddressSpaces, NKTasks)
|
||||
; ReturnMPCallOOM (=> NKAddressSpaces, NKPrimaryIntHandlers, NKSleep, NKSync, NKTasks)
|
||||
; ReturnParamErrFromMPCall (=> NKAddressSpaces, NKPrimaryIntHandlers, NKSleep)
|
||||
; ReturnZeroFromMPCall (=> NKAddressSpaces, NKSleep, NKSync)
|
||||
; ScrambleMPCall (=> NKSync)
|
||||
; kcMPDispatch (=> NKInit, NKInterrupts)
|
||||
; major_0x0b0cc (=> NKAddressSpaces)
|
||||
|
||||
|
||||
|
||||
;MPCall_Panic set MPCall_Panic
|
||||
|
||||
|
||||
|
@ -3,6 +3,26 @@ Local_Panic set *
|
||||
|
||||
|
||||
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKAddressSpaces
|
||||
; FindAreaAbove
|
||||
; MPCall_95_0x254
|
||||
; SpaceGetPagePLE
|
||||
; NKConsoleLog
|
||||
; printw
|
||||
; NKThud
|
||||
; panic
|
||||
; EXPORTS:
|
||||
; PagingFlushTLB (=> NKInit, NKScheduler, NKSleep)
|
||||
; PagingFunc1 (=> NKInit, NKInterrupts, NKThud, NKVMCalls)
|
||||
; PagingFunc2 (=> NKInit)
|
||||
; PagingFunc2AndAHalf (=> NKSleep)
|
||||
; PagingL2PWithBATs (=> NKInterrupts, NKMPCalls, NKRTASCalls, NKSleep)
|
||||
; PagingL2PWithoutBATs (=> NKInit, NKScreenConsole, NKThud)
|
||||
|
||||
|
||||
|
||||
align 5
|
||||
|
||||
PagingFunc1 ; OUTSIDE REFERER
|
||||
|
@ -34,6 +34,23 @@
|
||||
|
||||
|
||||
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKConsoleLog
|
||||
; printc
|
||||
; printd
|
||||
; printw
|
||||
; NKThud
|
||||
; panic
|
||||
; EXPORTS:
|
||||
; ExtendPool (=> NKMPCalls)
|
||||
; InitPool (=> NKInit)
|
||||
; PoolAlloc (=> NKInterrupts, NKSync, NKTasks)
|
||||
; PoolAllocClear (=> NKAddressSpaces, NKIndex, NKInit, NKMPCalls, NKSync, NKTasks, NKTimers, NKVMCalls)
|
||||
; PoolFree (=> NKAddressSpaces, NKMPCalls, NKSync, NKTasks, NKTimers)
|
||||
|
||||
|
||||
|
||||
Block record
|
||||
|
||||
kBeginSize equ 8
|
||||
|
@ -1,3 +1,17 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKCache
|
||||
; FlushCaches
|
||||
; NKInterrupts
|
||||
; IntReturn
|
||||
; wordfill
|
||||
; NKThud
|
||||
; panic
|
||||
; EXPORTS:
|
||||
; InitIdleVecTable (=> NKInit)
|
||||
; kcPowerDispatch (=> NKInit)
|
||||
|
||||
|
||||
#### ## ## #### ######## ## ## ######## ###### ######## ######## ##
|
||||
## ### ## ## ## ## ## ## ## ## ## ## ## ##
|
||||
## #### ## ## ## ## ## ## ## ## ## ## ##
|
||||
|
@ -1,3 +1,29 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKIndex
|
||||
; LookupID
|
||||
; NKInterrupts
|
||||
; IntReturn
|
||||
; NKMPCalls
|
||||
; ReturnMPCallOOM
|
||||
; ReturnParamErrFromMPCall
|
||||
; NKScheduler
|
||||
; CalculateTimeslice
|
||||
; FlagSchEvaluationIfTaskRequires
|
||||
; SchRdyTaskLater
|
||||
; SchRestoreStartingAtR14
|
||||
; SchRestoreStartingAtR20
|
||||
; SchSaveStartingAtR20
|
||||
; SchTaskUnrdy
|
||||
; NKSync
|
||||
; CauseNotification
|
||||
; NKTimers
|
||||
; DequeueTimer
|
||||
; EXPORTS:
|
||||
; LookupInterruptHandler (=> NKBuiltinInit, NKReplacementInit)
|
||||
|
||||
|
||||
|
||||
; LookupInterruptHandler
|
||||
|
||||
; Called at init time to get the (64b-aligned) physical address
|
||||
|
@ -1,3 +1,7 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; EXPORTS:
|
||||
; ProcessorFlagsTable (=> NKInit)
|
||||
|
||||
; Contains the table used by Init.s:SetProcessorFlags, and a label to find it with.
|
||||
;
|
||||
; Using this table, three fields in KDP are set:
|
||||
|
@ -1,3 +1,8 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; EXPORTS:
|
||||
; OverrideProcessorInfo (=> NKBuiltinInit)
|
||||
; ProcessorInfoTable (=> NKBuiltinInit)
|
||||
|
||||
; Contains the table used by InitBuiltin.s:OverrideProcessorInfo
|
||||
;
|
||||
; If the Trampoline fails to pass in a signed HardwareInfo struct,
|
||||
|
@ -1,3 +1,17 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKInterrupts
|
||||
; IntHandleSpecialFPException
|
||||
; IntReturn
|
||||
; bugger_around_with_floats
|
||||
; NKPaging
|
||||
; PagingL2PWithBATs
|
||||
; NKThud
|
||||
; panic
|
||||
; EXPORTS:
|
||||
; kcRTASDispatch (=> NKInit)
|
||||
|
||||
|
||||
Local_Panic set *
|
||||
b panic
|
||||
|
||||
|
@ -1,3 +1,22 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKConsoleLog
|
||||
; printh
|
||||
; printw
|
||||
; NKInit
|
||||
; CancelReplacement
|
||||
; InitHighLevel
|
||||
; InitIRP
|
||||
; NKPrimaryIntHandlers
|
||||
; LookupInterruptHandler
|
||||
; NKScreenConsole
|
||||
; InitScreenConsole
|
||||
; NKTranslation
|
||||
; FDP
|
||||
; EXPORTS:
|
||||
; InitReplacement (=> NKInit)
|
||||
|
||||
|
||||
; sprg0 = old KDP/EWA/r1 ptr
|
||||
; r3 = PA_NanoKernelCode
|
||||
; r4 = physical base of our global area
|
||||
|
@ -1,3 +1,47 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKConsoleLog
|
||||
; printh
|
||||
; printw
|
||||
; NKInterrupts
|
||||
; SIGP
|
||||
; NKPaging
|
||||
; PagingFlushTLB
|
||||
; NKTasks
|
||||
; TasksFuncThatIsNotAMPCall
|
||||
; NKThud
|
||||
; panic
|
||||
; NKTimers
|
||||
; GetTime
|
||||
; SetTimesliceFromCurTime
|
||||
; TimebaseTicksPerPeriod
|
||||
; EXPORTS:
|
||||
; CalculateTimeslice (=> NKInit, NKMPCalls, NKPrimaryIntHandlers, NKSync, NKTasks, NKTimers)
|
||||
; FlagSchEval (=> NKInit, NKInterrupts, NKMPCalls, NKTasks)
|
||||
; FlagSchEvaluationIfTaskRequires (=> NKMPCalls, NKPrimaryIntHandlers, NKSync, NKTasks, NKTimers)
|
||||
; NewCpuEntryPoint (=> NKMPCalls)
|
||||
; Restore_v0_v31 (=> NKInterrupts)
|
||||
; Save_f0_f31 (=> NKSleep)
|
||||
; Save_v0_v31 (=> NKInterrupts, NKMPCalls, NKSleep)
|
||||
; SchEval (=> NKInterrupts, NKMPCalls)
|
||||
; SchExitInterrupt (=> NKInterrupts)
|
||||
; SchFiddlePriorityShifty (=> NKInterrupts)
|
||||
; SchIdleTask (=> NKInit, NKMPCalls)
|
||||
; SchIdleTaskStopper (=> NKMPCalls)
|
||||
; SchInit (=> NKInit)
|
||||
; SchRdyTaskLater (=> NKMPCalls, NKPrimaryIntHandlers, NKSync)
|
||||
; SchRdyTaskNow (=> NKInit, NKInterrupts, NKMPCalls, NKSync, NKTasks, NKTimers)
|
||||
; SchRestoreStartingAtR14 (=> NKInit, NKInterrupts, NKMPCalls, NKPrimaryIntHandlers, NKVMCalls)
|
||||
; SchRestoreStartingAtR20 (=> NKPrimaryIntHandlers)
|
||||
; SchReturn (=> NKInterrupts)
|
||||
; SchSaveStartingAtR14 (=> NKInterrupts, NKMPCalls, NKVMCalls)
|
||||
; SchSaveStartingAtR20 (=> NKPrimaryIntHandlers)
|
||||
; SchSwitchSpace (=> NKInit, NKInterrupts, NKSleep)
|
||||
; SchTaskUnrdy (=> NKInterrupts, NKMPCalls, NKPrimaryIntHandlers, NKSync, NKTasks, NKTimers)
|
||||
; clear_cr0_lt (=> NKTimers)
|
||||
; major_0x149d4 (=> NKTimers)
|
||||
|
||||
|
||||
Local_Panic set *
|
||||
b panic
|
||||
|
||||
|
@ -1,3 +1,13 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKPaging
|
||||
; PagingL2PWithoutBATs
|
||||
; EXPORTS:
|
||||
; InitScreenConsole (=> NKBuiltinInit, NKInit, NKReplacementInit)
|
||||
; ScreenConsole_putchar (=> NKConsoleLog)
|
||||
; ScreenConsole_redraw (=> NKConsoleLog, NKMPCalls)
|
||||
|
||||
|
||||
ScreenConsoleX equ 24
|
||||
ScreenConsoleY equ 22
|
||||
|
||||
|
@ -1,3 +1,24 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKInterrupts
|
||||
; SIGP
|
||||
; NKMPCalls
|
||||
; CommonMPCallReturnPath
|
||||
; ReturnMPCallOOM
|
||||
; ReturnParamErrFromMPCall
|
||||
; ReturnZeroFromMPCall
|
||||
; NKPaging
|
||||
; PagingFlushTLB
|
||||
; PagingFunc2AndAHalf
|
||||
; PagingL2PWithBATs
|
||||
; NKScheduler
|
||||
; Save_f0_f31
|
||||
; Save_v0_v31
|
||||
; SchSwitchSpace
|
||||
; NKThud
|
||||
; panic
|
||||
|
||||
|
||||
; Implements two MPCalls that seem to have something to do with COHGs
|
||||
|
||||
|
||||
|
@ -1,3 +1,48 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKIndex
|
||||
; DeleteID
|
||||
; LookupID
|
||||
; MakeID
|
||||
; NKMPCalls
|
||||
; BlockMPCall
|
||||
; ReleaseAndReturnMPCall
|
||||
; ReleaseAndReturnMPCallBlueBlocking
|
||||
; ReleaseAndReturnMPCallInvalidIDErr
|
||||
; ReleaseAndReturnMPCallOOM
|
||||
; ReleaseAndReturnMPCallTaskAborted
|
||||
; ReleaseAndReturnParamErrFromMPCall
|
||||
; ReleaseAndReturnZeroFromMPCall
|
||||
; ReleaseAndScrambleMPCall
|
||||
; ReleaseAndTimeoutMPCall
|
||||
; ReturnMPCallOOM
|
||||
; ReturnZeroFromMPCall
|
||||
; ScrambleMPCall
|
||||
; NKPoolAllocator
|
||||
; PoolAlloc
|
||||
; PoolAllocClear
|
||||
; PoolFree
|
||||
; NKScheduler
|
||||
; CalculateTimeslice
|
||||
; FlagSchEvaluationIfTaskRequires
|
||||
; SchRdyTaskLater
|
||||
; SchRdyTaskNow
|
||||
; SchTaskUnrdy
|
||||
; NKThud
|
||||
; panic
|
||||
; NKTimers
|
||||
; DequeueTimer
|
||||
; EnqueueTimer
|
||||
; GetTime
|
||||
; TimebaseTicksPerPeriod
|
||||
; EXPORTS:
|
||||
; CauseNotification (=> NKAddressSpaces, NKInterrupts, NKPrimaryIntHandlers)
|
||||
; EnqueueMessage (=> NKInterrupts, NKTasks, NKTimers)
|
||||
; SetEvent (=> NKAddressSpaces, NKTimers)
|
||||
; SignalSemaphore (=> NKTimers)
|
||||
; UnblockBlueIfCouldBePolling (=> NKInterrupts)
|
||||
|
||||
|
||||
####### ## ## ######## ## ## ######## ######
|
||||
## ## ## ## ## ## ## ## ## ##
|
||||
## ## ## ## ## ## ## ## ##
|
||||
|
@ -1,3 +1,44 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKAddressSpaces
|
||||
; FindAreaAbove
|
||||
; NKIndex
|
||||
; DeleteID
|
||||
; LookupID
|
||||
; MakeID
|
||||
; NKMPCalls
|
||||
; CommonMPCallReturnPath
|
||||
; MPCall_6_0x78
|
||||
; ReleaseAndReturnMPCall
|
||||
; ReleaseAndReturnMPCallInvalidIDErr
|
||||
; ReleaseAndReturnMPCallOOM
|
||||
; ReleaseAndReturnZeroFromMPCall
|
||||
; ReleaseAndScrambleMPCall
|
||||
; ReturnMPCallInvalidIDErr
|
||||
; ReturnMPCallOOM
|
||||
; NKPoolAllocator
|
||||
; PoolAlloc
|
||||
; PoolAllocClear
|
||||
; PoolFree
|
||||
; NKScheduler
|
||||
; CalculateTimeslice
|
||||
; FlagSchEval
|
||||
; FlagSchEvaluationIfTaskRequires
|
||||
; SchRdyTaskNow
|
||||
; SchTaskUnrdy
|
||||
; NKSync
|
||||
; EnqueueMessage
|
||||
; NKThud
|
||||
; panic
|
||||
; NKTimers
|
||||
; DequeueTimer
|
||||
; GetTime
|
||||
; EXPORTS:
|
||||
; CreateTask (=> NKInit, NKMPCalls)
|
||||
; TasksFuncThatIsNotAMPCall (=> NKScheduler)
|
||||
; ThrowTaskToDebugger (=> NKInterrupts)
|
||||
|
||||
|
||||
; This file mostly provides MPCall implementations related to multitasking.
|
||||
; We won't understand this very well until someone disassembles MPLibrary.
|
||||
|
||||
|
@ -1,3 +1,24 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKConsoleLog
|
||||
; getchar
|
||||
; print_unknown
|
||||
; printc
|
||||
; printh
|
||||
; prints
|
||||
; printw
|
||||
; NKIndex
|
||||
; GetNextIDOfClass
|
||||
; LookupID
|
||||
; NKInterrupts
|
||||
; Exception
|
||||
; NKPaging
|
||||
; PagingFunc1
|
||||
; PagingL2PWithoutBATs
|
||||
; EXPORTS:
|
||||
; panic (=> NKAddressSpaces, NKIndex, NKInit, NKInterrupts, NKMPCalls, NKPaging, NKPoolAllocator, NKPowerCalls, NKRTASCalls, NKScheduler, NKSleep, NKSync, NKTasks, NKTimers, NKTranslation, NKVMCalls)
|
||||
; panic_non_interactive (=> NKTimers)
|
||||
|
||||
|
||||
align 5
|
||||
|
||||
|
@ -1,3 +1,42 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKConsoleLog
|
||||
; getchar
|
||||
; printb
|
||||
; printd
|
||||
; printh
|
||||
; printw
|
||||
; NKIndex
|
||||
; DeleteID
|
||||
; LookupID
|
||||
; NKPoolAllocator
|
||||
; PoolAllocClear
|
||||
; PoolFree
|
||||
; NKScheduler
|
||||
; CalculateTimeslice
|
||||
; FlagSchEvaluationIfTaskRequires
|
||||
; SchRdyTaskNow
|
||||
; SchTaskUnrdy
|
||||
; clear_cr0_lt
|
||||
; major_0x149d4
|
||||
; NKSync
|
||||
; EnqueueMessage
|
||||
; SetEvent
|
||||
; SignalSemaphore
|
||||
; NKThud
|
||||
; panic
|
||||
; panic_non_interactive
|
||||
; EXPORTS:
|
||||
; DequeueTimer (=> NKMPCalls, NKPrimaryIntHandlers, NKSync, NKTasks)
|
||||
; EnqueueTimer (=> NKMPCalls, NKSync)
|
||||
; GetTime (=> NKMPCalls, NKScheduler, NKSync, NKTasks)
|
||||
; InitTMRQs (=> NKInit)
|
||||
; SetTimesliceFromCurTime (=> NKScheduler)
|
||||
; StartTimeslicing (=> NKInit)
|
||||
; TimebaseTicksPerPeriod (=> NKScheduler, NKSync)
|
||||
; TimerDispatch (=> NKInterrupts)
|
||||
|
||||
|
||||
Local_Panic set *
|
||||
b panic
|
||||
|
||||
|
@ -14,6 +14,28 @@
|
||||
; magic. The tables here contain relative references to other tables
|
||||
; in Interrupts.s. What a mess.
|
||||
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKInterrupts
|
||||
; Exception
|
||||
; ExceptionMemRetried
|
||||
; FloatLoadJumpTable
|
||||
; FloatSaveJumpTable
|
||||
; IgnoreSoftwareInt
|
||||
; LoadInterruptRegisters
|
||||
; major_0x03324
|
||||
; major_0x03548
|
||||
; NKThud
|
||||
; panic
|
||||
; EXPORTS:
|
||||
; FDP (=> NKBuiltinInit, NKReplacementInit)
|
||||
; FDPEmulateInstruction (=> NKInterrupts)
|
||||
; FDP_003c (=> NKInterrupts)
|
||||
; FDP_011c (=> NKInterrupts)
|
||||
; FDP_0DA0 (=> NKInterrupts)
|
||||
; FDP_1c40 (=> NKInit)
|
||||
; ProbePerfMonitor (=> NKInit)
|
||||
|
||||
|
||||
align 11
|
||||
|
||||
|
@ -1,3 +1,34 @@
|
||||
; AUTO-GENERATED SYMBOL LIST
|
||||
; IMPORTS:
|
||||
; NKAddressSpaces
|
||||
; CreateArea
|
||||
; DeletePTE
|
||||
; FindAreaAbove
|
||||
; GetPTEFromPLE
|
||||
; InvalPTE
|
||||
; SetPTE
|
||||
; SpaceGetPagePLE
|
||||
; NKConsoleLog
|
||||
; printw
|
||||
; NKInterrupts
|
||||
; IntReturn
|
||||
; NKPaging
|
||||
; PagingFunc1
|
||||
; NKPoolAllocator
|
||||
; PoolAllocClear
|
||||
; NKScheduler
|
||||
; SchRestoreStartingAtR14
|
||||
; SchSaveStartingAtR14
|
||||
; NKThud
|
||||
; panic
|
||||
; EXPORTS:
|
||||
; EditPTEInHTAB (=> NKMPCalls)
|
||||
; GetPARPageInfo (=> NKMPCalls)
|
||||
; RemovePageFromTLB (=> NKMPCalls)
|
||||
; VMSecondLastExportedFunc (=> NKMPCalls)
|
||||
; kcVMDispatch (=> NKInit)
|
||||
|
||||
|
||||
Local_Panic set *
|
||||
b panic
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user