darwin-xnu/osfmk/ppc/FirmwareCalls.h
<<
>>
Prefs
   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(dbgDispCall, dbgDispLL)                               /* Write stuff to printer or modem port */
  51                        fwCallEnt(dbgCkptCall, dbgCkptLL)                               /* Save 128 bytes from r3 to 0x380 V=R mapping */
  52                        fwCallEnt(StoreRealCall, StoreRealLL)                   /* Save one word in real storage */
  53                        fwCallEnt(ClearRealCall, ClearRealLL)                   /* Clear physical pages */
  54                        fwCallEnt(LoadDBATsCall, xLoadDBATsLL)                  /* Load all DBATs */
  55                        fwCallEnt(LoadIBATsCall, xLoadIBATsLL)                  /* Load all IBATs */
  56                        fwCallEnt(DoPreemptCall, DoPreemptLL)                   /* Preempt if need be */
  57                        fwCallEnt(CreateFakeIOCall, CreateFakeIOLL)             /* Make a fake I/O interruption */
  58                        fwCallEnt(SwitchContextCall, SwitchContextLL)   /* Switch context */
  59                        fwCallEnt(Choke, DoChokeLL)                                             /* Choke (system crash) */
  60                        fwCallEnt(dbgRegsCall, dbgRegsLL)                               /* Dumps all registers */
  61                        fwCallEnt(CreateFakeDECCall, CreateFakeDECLL)   /* Make a fake decrementer interruption */
  62                        fwCallEnt(CreateShutdownCTXCall, CreateShutdownCTXLL)   /* create a shutdown context */
  63                        fwCallEnt(NullCall, NullLL)                                             /* Null Firmware call */
  64                        fwCallEnt(iNullCall, iNullLL)                                   /* Instrumented null Firmware call */
  65
  66#endif  /* _FIRMWARECALLS_H_ */
  67
  68#else /* ASSEMBLER */
  69        
  70/*
  71 *                      The firmware function headers
  72 */
  73extern void                     CutTrace                (unsigned int item1, ...);
  74
  75#endif /* ASSEMBLER */
  76
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.