|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1998-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: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 24: * ! 25: * HISTORY ! 26: * ! 27: */ ! 28: ! 29: ! 30: #ifndef _IOKIT_IOSERVICEPRIVATE_H ! 31: #define _IOKIT_IOSERVICEPRIVATE_H ! 32: ! 33: // options for getExistingServices() ! 34: enum { ! 35: kIONotifyOnce = 0x00000001 ! 36: }; ! 37: ! 38: // masks for __state[1] ! 39: enum { ! 40: kIOServiceBusyStateMask = 0x000000ff, ! 41: kIOServiceBusyMax = 255, ! 42: kIOServiceTerminatedState = 0x80000000, ! 43: kIOServiceConfigState = 0x40000000, ! 44: kIOServiceSynchronousState = 0x20000000, ! 45: }; ! 46: ! 47: // options for terminate() ! 48: enum { ! 49: kIOServiceRecursing = 0x00100000, ! 50: }; ! 51: ! 52: ! 53: class _IOServiceNotifier : public IONotifier ! 54: { ! 55: friend IOService; ! 56: ! 57: OSDeclareDefaultStructors(_IOServiceNotifier) ! 58: ! 59: public: ! 60: OSOrderedSet * whence; ! 61: ! 62: OSDictionary * matching; ! 63: IOServiceNotificationHandler handler; ! 64: void * target; ! 65: void * ref; ! 66: SInt32 priority; ! 67: bool fEnable; ! 68: ! 69: virtual void remove(); ! 70: virtual bool disable(); ! 71: virtual void enable( bool was ); ! 72: }; ! 73: ! 74: class _IOServiceInterestNotifier : public IONotifier ! 75: { ! 76: friend IOService; ! 77: ! 78: OSDeclareDefaultStructors(_IOServiceInterestNotifier) ! 79: ! 80: public: ! 81: OSArray * whence; ! 82: ! 83: IOServiceInterestHandler handler; ! 84: void * target; ! 85: void * ref; ! 86: bool fEnable; ! 87: ! 88: virtual void remove(); ! 89: virtual bool disable(); ! 90: virtual void enable( bool was ); ! 91: }; ! 92: ! 93: class _IOConfigThread : public OSObject ! 94: { ! 95: friend IOService; ! 96: ! 97: OSDeclareDefaultStructors(_IOConfigThread) ! 98: ! 99: public: ! 100: IOThread thread; ! 101: ! 102: virtual void free(); ! 103: ! 104: static _IOConfigThread * configThread( void ); ! 105: static void main( _IOConfigThread * self ); ! 106: }; ! 107: ! 108: enum { ! 109: #ifdef LESS_THREAD_CREATE ! 110: kMaxConfigThreads = 4, ! 111: #else ! 112: kMaxConfigThreads = 32, ! 113: #endif ! 114: }; ! 115: ! 116: enum { ! 117: kMatchNubJob = 10, ! 118: kTerminateNubJob, ! 119: }; ! 120: ! 121: class _IOServiceJob : public OSObject ! 122: { ! 123: friend IOService; ! 124: ! 125: OSDeclareDefaultStructors(_IOServiceJob) ! 126: ! 127: public: ! 128: int type; ! 129: IOService * nub; ! 130: IOOptionBits options; ! 131: ! 132: static _IOServiceJob * startJob( IOService * nub, int type, ! 133: IOOptionBits options = 0 ); ! 134: static void pingConfig( class _IOServiceJob * job ); ! 135: ! 136: }; ! 137: ! 138: class IOResources : public IOService ! 139: { ! 140: friend IOService; ! 141: ! 142: OSDeclareDefaultStructors(IOResources) ! 143: ! 144: public: ! 145: static IOService * resources( void ); ! 146: virtual bool matchPropertyTable( OSDictionary * table ); ! 147: }; ! 148: ! 149: class _IOOpenServiceIterator : public OSIterator ! 150: { ! 151: friend IOService; ! 152: ! 153: OSDeclareDefaultStructors(_IOOpenServiceIterator) ! 154: ! 155: OSIterator * iter; ! 156: const IOService * client; ! 157: const IOService * provider; ! 158: IOService * last; ! 159: ! 160: public: ! 161: static OSIterator * iterator( OSIterator * _iter, ! 162: const IOService * client, ! 163: const IOService * provider ); ! 164: virtual void free(); ! 165: virtual void reset(); ! 166: virtual bool isValid(); ! 167: virtual OSObject * getNextObject(); ! 168: }; ! 169: ! 170: #endif /* ! _IOKIT_IOSERVICEPRIVATE_H */ ! 171:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.