1/* 2 * Copyright (c) 2000 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_FREE_COPYRIGHT@ 30 */ 31/* 32 * @APPLE_FREE_COPYRIGHT@ 33 */ 34 35#ifdef ASSEMBLER 36 37#ifdef _FIRMWARECALLS_H_ 38#error Hey! You can only include FirmwareCalls.h in one assembler file, dude. And it should be Firmware.s! 39#else /* _FIRMWARECALLS_H_ */ 40 41/* 42 * Entries for all firmware calls are in here (except for call 0x80000000 - CutTrace 43 */ 44 45#define _FIRMWARECALLS_H_ 46 47#define fwCallEnt(name, entrypt) \ 48 .globl name __ASMNL__ \ 49 .set name,(.-EXT(FWtable))/4|0x80000000 __ASMNL__ \ 50 .long EXT(entrypt) __ASMNL__ 51 52/* 53 * 54 */ 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 fwCallEnt(CreateShutdownCTXCall, CreateShutdownCTXLL) /* create a shutdown context */ 69 fwCallEnt(NullCall, NullLL) /* Null Firmware call */ 70 fwCallEnt(iNullCall, iNullLL) /* Instrumented null Firmware call */ 71 72#endif /* _FIRMWARECALLS_H_ */ 73 74#else /* ASSEMBLER */ 75 76/* 77 * The firmware function headers 78 */ 79extern void CutTrace (unsigned int item1, ...); 80 81#endif /* ASSEMBLER */ 82