|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: /* ! 25: * Copyright (c) 1997 Apple Computer, Inc. ! 26: * ! 27: * ! 28: * HISTORY ! 29: * ! 30: * Simon Douglas 22 Oct 97 ! 31: * - first checked in. ! 32: */ ! 33: ! 34: ! 35: #ifndef __NDRVINTERFACE__ ! 36: #define __NDRVINTERFACE__ ! 37: ! 38: #import <driverkit/ppc/IOMacOSTypes.h> ! 39: ! 40: #pragma options align=mac68k ! 41: ! 42: ! 43: typedef void * RegEntryID[4]; ! 44: ! 45: struct DriverInitInfo { ! 46: UInt16 refNum; ! 47: RegEntryID deviceEntry; ! 48: }; ! 49: ! 50: #define MAKE_REG_ENTRY(regEntryID,obj) \ ! 51: ((void **)regEntryID)[ 0 ] = (void *) obj; \ ! 52: ((void **)regEntryID)[ 1 ] = (void *) ~(UInt32)obj; \ ! 53: ((void **)regEntryID)[ 2 ] = (void *) 0x53696d65; \ ! 54: ((void **)regEntryID)[ 3 ] = (void *) 0x52756c7a; ! 55: ! 56: #define REG_ENTRY_TO_ID(regEntryID,obj) \ ! 57: if( (UInt32)((obj = ((id *)regEntryID)[ 0 ])) \ ! 58: != ~((UInt32 *)regEntryID)[ 1 ] ) \ ! 59: return( -2538); ! 60: ! 61: struct CntrlParam { ! 62: void * qLink; ! 63: short qType; ! 64: short ioTrap; ! 65: void * ioCmdAddr; ! 66: void * ioCompletion; ! 67: short ioResult; ! 68: char * ioNamePtr; ! 69: short ioVRefNum; ! 70: short ioCRefNum; ! 71: short csCode; ! 72: void * csParams; ! 73: short csParam[9]; ! 74: }; ! 75: typedef struct CntrlParam CntrlParam, *CntrlParamPtr; ! 76: ! 77: #pragma options align=reset ! 78: ! 79: enum { ! 80: kOpenCommand = 0, ! 81: kCloseCommand = 1, ! 82: kReadCommand = 2, ! 83: kWriteCommand = 3, ! 84: kControlCommand = 4, ! 85: kStatusCommand = 5, ! 86: kKillIOCommand = 6, ! 87: kInitializeCommand = 7, /* init driver and device*/ ! 88: kFinalizeCommand = 8, /* shutdown driver and device*/ ! 89: kReplaceCommand = 9, /* replace an old driver*/ ! 90: kSupersededCommand = 10 /* prepare to be replaced by a new driver*/ ! 91: }; ! 92: enum { ! 93: kSynchronousIOCommandKind = 0x00000001, ! 94: kAsynchronousIOCommandKind = 0x00000002, ! 95: kImmediateIOCommandKind = 0x00000004 ! 96: }; ! 97: ! 98: typedef void * NDRVInstance; ! 99: ! 100: OSStatus NDRVLoad( LogicalAddress container, ByteCount containerSize, NDRVInstance * instance ); ! 101: OSStatus NDRVGetSymbol( NDRVInstance instance, const char * symbolName, LogicalAddress * address ); ! 102: OSStatus NDRVGetShimClass( id ioDevice, NDRVInstance instance, UInt32 serviceIndex, char * className ); ! 103: OSStatus NDRVUnload( NDRVInstance * instance ); ! 104: OSStatus NDRVTest( void * ioDevice, LogicalAddress entry ); ! 105: OSStatus NDRVDoDriverIO( LogicalAddress entry, UInt32 commandID, void * contents, UInt32 commandCode, UInt32 commandKind ); ! 106: ! 107: extern OSStatus CallTVectorWithStack( ! 108: void * p1, void * p2, void * p3, void * p4, void * p5, void * p6, ! 109: LogicalAddress entry, LogicalAddress stack ); ! 110: ! 111: extern OSStatus CallTVector( ! 112: void * p1, void * p2, void * p3, void * p4, void * p5, void * p6, ! 113: LogicalAddress entry ); ! 114: ! 115: struct InterruptSetMember { ! 116: id setID; ! 117: UInt32 member; ! 118: }; ! 119: typedef struct InterruptSetMember InterruptSetMember; ! 120: ! 121: typedef SInt32 (*InterruptHandler)( InterruptSetMember setMember, void *refCon, UInt32 theIntCount); ! 122: typedef void (*InterruptEnabler)( InterruptSetMember setMember, void *refCon); ! 123: typedef Boolean (*InterruptDisabler)( InterruptSetMember setMember, void *refCon); ! 124: ! 125: enum { ! 126: kFirstMemberNumber = 1, ! 127: kIsrIsComplete = 0, ! 128: kIsrIsNotComplete = -1, ! 129: kMemberNumberParent = -2 ! 130: }; ! 131: ! 132: #endif /* __NDRVINTERFACE__ */ ! 133:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.