Source to osfmk/ppc/FirmwareCalls.h
/*
* Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
* The contents of this file constitute Original Code as defined in and
* are subject to the Apple Public Source License Version 1.1 (the
* "License"). You may not use this file except in compliance with the
* License. Please obtain a copy of the License at
* http://www.apple.com/publicsource and read it before using this file.
*
* This Original Code and all software distributed under the License are
* distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
* License for the specific language governing rights and limitations
* under the License.
*
* @APPLE_LICENSE_HEADER_END@
*/
/*
* @OSF_FREE_COPYRIGHT@
*/
/*
* @APPLE_FREE_COPYRIGHT@
*/
#ifdef ASSEMBLER
#ifdef _FIRMWARECALLS_H_
#error Hey! You can only include FirmwareCalls.h in one assembler file, dude. And it should be Firmware.s!
#else /* _FIRMWARECALLS_H_ */
/*
* Entries for all firmware calls are in here (except for call 0x80000000 - CutTrace
*/
#define _FIRMWARECALLS_H_
#define fwCallEnt(name, entrypt) \
.globl name __ASMNL__ \
.set name,(.-EXT(FWtable))/4|0x80000000 __ASMNL__ \
.long EXT(entrypt) __ASMNL__
/*
*
*/
fwCallEnt(MPgetProcCountCall, MPgetProcCountLL) /* Call the MPgetProcCount routine */
fwCallEnt(MPstartCall, MPstartLL) /* Call the MPstart routine */
fwCallEnt(MPexternalHookCall, MPexternalHookLL) /* Get the address of the external interrupt handler */
fwCallEnt(MPsignalCall, MPsignalLL) /* Call the MPsignal routine */
fwCallEnt(MPstopCall, MPstopLL) /* Call the MPstop routine */
fwCallEnt(dbgDispCall, dbgDispLL) /* Write stuff to printer or modem port */
fwCallEnt(dbgCkptCall, dbgCkptLL) /* Save 128 bytes from r3 to 0x380 V=R mapping */
fwCallEnt(StoreRealCall, StoreRealLL) /* Save one word in real storage */
fwCallEnt(ClearRealCall, ClearRealLL) /* Clear physical pages */
fwCallEnt(LoadDBATsCall, xLoadDBATsLL) /* Load all DBATs */
fwCallEnt(LoadIBATsCall, xLoadIBATsLL) /* Load all IBATs */
fwCallEnt(DoPreemptCall, DoPreemptLL) /* Preempt if need be */
fwCallEnt(CreateFakeIOCall, CreateFakeIOLL) /* Make a fake I/O interruption */
fwCallEnt(SwitchContextCall, SwitchContextLL) /* Switch context */
fwCallEnt(Choke, DoChokeLL) /* Choke (system crash) */
fwCallEnt(dbgRegsCall, dbgRegsLL) /* Dumps all registers */
fwCallEnt(CreateFakeDECCall, CreateFakeDECLL) /* Make a fake decrementer interruption */
#if PERF_HIST
fwCallEnt(PerfCtlCall, PerfCtlLL) /* Control performance monitor */
#endif
#if 0
fwCallEnt(MPCPUAddressCall, 0) /* Call the MPCPUAddress routine */
fwCallEnt(MPresumeCall, 0) /* Call the MPresume routine */
fwCallEnt(MPresetCall, 0) /* Call the MPreset routine */
fwCallEnt(MPSenseCall, 0) /* Call the MPSense routine */
fwCallEnt(MPstoreStatusCall, 0) /* Call the MPstoreStatus routine */
fwCallEnt(MPSetStatusCall, 0) /* Call the MPSetStatus routine */
fwCallEnt(MPgetSignalCall, 0) /* Call the MPgetSignal routine */
fwCallEnt(MPsyncTBCall, 0) /* Call the MPsyncTB routine */
fwCallEnt(MPcheckPendingCall, 0) /* Call the MPcheckPending routine */
#endif
#endif /* _FIRMWARECALLS_H_ */
#else /* ASSEMBLER */
/*
* The firmware function headers
*/
extern void CutTrace (unsigned int item1, ...);
#endif /* ASSEMBLER */