|
|
1.1 ! root 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: * @OSF_FREE_COPYRIGHT@ ! 24: */ ! 25: /* ! 26: * @APPLE_FREE_COPYRIGHT@ ! 27: */ ! 28: ! 29: #ifdef ASSEMBLER ! 30: ! 31: #ifdef _FIRMWARECALLS_H_ ! 32: #error Hey! You can only include FirmwareCalls.h in one assembler file, dude. And it should be Firmware.s! ! 33: #else /* _FIRMWARECALLS_H_ */ ! 34: ! 35: /* ! 36: * Entries for all firmware calls are in here (except for call 0x80000000 - CutTrace ! 37: */ ! 38: ! 39: #define _FIRMWARECALLS_H_ ! 40: ! 41: #define fwCallEnt(name, entrypt) \ ! 42: .globl name __ASMNL__ \ ! 43: .set name,(.-EXT(FWtable))/4|0x80000000 __ASMNL__ \ ! 44: .long EXT(entrypt) __ASMNL__ ! 45: ! 46: /* ! 47: * ! 48: */ ! 49: ! 50: fwCallEnt(MPgetProcCountCall, MPgetProcCountLL) /* Call the MPgetProcCount routine */ ! 51: fwCallEnt(MPstartCall, MPstartLL) /* Call the MPstart routine */ ! 52: fwCallEnt(MPexternalHookCall, MPexternalHookLL) /* Get the address of the external interrupt handler */ ! 53: fwCallEnt(MPsignalCall, MPsignalLL) /* Call the MPsignal routine */ ! 54: fwCallEnt(MPstopCall, MPstopLL) /* Call the MPstop routine */ ! 55: ! 56: fwCallEnt(dbgDispCall, dbgDispLL) /* Write stuff to printer or modem port */ ! 57: fwCallEnt(dbgCkptCall, dbgCkptLL) /* Save 128 bytes from r3 to 0x380 V=R mapping */ ! 58: fwCallEnt(StoreRealCall, StoreRealLL) /* Save one word in real storage */ ! 59: fwCallEnt(ClearRealCall, ClearRealLL) /* Clear physical pages */ ! 60: fwCallEnt(LoadDBATsCall, xLoadDBATsLL) /* Load all DBATs */ ! 61: fwCallEnt(LoadIBATsCall, xLoadIBATsLL) /* Load all IBATs */ ! 62: fwCallEnt(DoPreemptCall, DoPreemptLL) /* Preempt if need be */ ! 63: fwCallEnt(CreateFakeIOCall, CreateFakeIOLL) /* Make a fake I/O interruption */ ! 64: fwCallEnt(SwitchContextCall, SwitchContextLL) /* Switch context */ ! 65: fwCallEnt(Choke, DoChokeLL) /* Choke (system crash) */ ! 66: fwCallEnt(dbgRegsCall, dbgRegsLL) /* Dumps all registers */ ! 67: fwCallEnt(CreateFakeDECCall, CreateFakeDECLL) /* Make a fake decrementer interruption */ ! 68: #if PERF_HIST ! 69: fwCallEnt(PerfCtlCall, PerfCtlLL) /* Control performance monitor */ ! 70: #endif ! 71: ! 72: #if 0 ! 73: fwCallEnt(MPCPUAddressCall, 0) /* Call the MPCPUAddress routine */ ! 74: fwCallEnt(MPresumeCall, 0) /* Call the MPresume routine */ ! 75: fwCallEnt(MPresetCall, 0) /* Call the MPreset routine */ ! 76: fwCallEnt(MPSenseCall, 0) /* Call the MPSense routine */ ! 77: fwCallEnt(MPstoreStatusCall, 0) /* Call the MPstoreStatus routine */ ! 78: fwCallEnt(MPSetStatusCall, 0) /* Call the MPSetStatus routine */ ! 79: fwCallEnt(MPgetSignalCall, 0) /* Call the MPgetSignal routine */ ! 80: fwCallEnt(MPsyncTBCall, 0) /* Call the MPsyncTB routine */ ! 81: fwCallEnt(MPcheckPendingCall, 0) /* Call the MPcheckPending routine */ ! 82: #endif ! 83: #endif /* _FIRMWARECALLS_H_ */ ! 84: ! 85: #else /* ASSEMBLER */ ! 86: ! 87: /* ! 88: * The firmware function headers ! 89: */ ! 90: extern void CutTrace (unsigned int item1, ...); ! 91: ! 92: #endif /* ASSEMBLER */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.