/* * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. * * The 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, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. * * @APPLE_LICENSE_HEADER_END@ */ #ifndef _IOKIT_IOPCCARD16DEVICE_H #define _IOKIT_IOPCCARD16DEVICE_H // supported power management states, see powerStates array in attach enum { kIOPCCard16DeviceOffState = 0, kIOPCCard16DeviceDozeState = 1, kIOPCCard16DeviceOnState = 2, kIOPCCard16DevicePowerStateCount = 3, }; class IOPCCard16Enabler; class IODeviceMemory; class IOPCCard16Device : public IOService { OSDeclareDefaultStructors(IOPCCard16Device); friend class IOPCCardBridge; private: IOPCCardBridge * bridge; u_char socket; u_char function; dev_info_t bindName; client_handle_t handle; IOPCCard16Enabler * enabler; IOMemoryMap * ioMap; struct ExpansionData { }; ExpansionData * reserved; protected: virtual bool bindCardServices(void); virtual bool unbindCardServices(void); virtual bool matchPropertyTable(OSDictionary *table, SInt32 *score); virtual IOService * matchLocation(IOService * client); virtual bool finalize(IOOptionBits options); static int eventHandler(cs_event_t event, int priority, event_callback_args_t *args); public: virtual bool attach(IOService * provider); virtual void detach(IOService * provider); virtual IOReturn setPowerState(unsigned long powerState, IOService * whatDevice); virtual IOReturn setProperties(OSObject * properties); virtual u_int getState(void); virtual client_handle_t getCardServicesHandle(void); virtual int cardServices(int func, void * arg1 = 0, void * arg2 = 0, void * arg3 = 0); virtual bool installEnabler(IOPCCard16Enabler *customEnabler = 0); virtual bool configure(UInt32 index = 0); virtual bool unconfigure(void); virtual bool getConfigurationInfo(config_info_t *config); virtual UInt32 getWindowCount(void); virtual UInt32 getWindowType(UInt32 index); virtual UInt32 getWindowSize(UInt32 index); virtual bool getWindowAttributes(UInt32 index, UInt32 *attributes); virtual bool getWindowHandle(UInt32 index, window_handle_t *handle); virtual bool getWindowOffset(UInt32 index, UInt32 *offset); virtual bool setWindowOffset(UInt32 index, UInt32 newOffset); virtual IODeviceMemory * ioDeviceMemory(void); virtual void ioWrite32( UInt16 offset, UInt32 value, IOMemoryMap * map = 0 ); virtual void ioWrite16( UInt16 offset, UInt16 value, IOMemoryMap * map = 0 ); virtual void ioWrite8( UInt16 offset, UInt8 value, IOMemoryMap * map = 0 ); virtual UInt32 ioRead32( UInt16 offset, IOMemoryMap * map = 0 ); virtual UInt16 ioRead16( UInt16 offset, IOMemoryMap * map = 0 ); virtual UInt8 ioRead8( UInt16 offset, IOMemoryMap * map = 0 ); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 0); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 1); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 2); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 3); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 4); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 5); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 6); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 7); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 8); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 9); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 10); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 11); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 12); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 13); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 14); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 15); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 16); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 17); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 18); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 19); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 20); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 21); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 22); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 23); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 24); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 25); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 26); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 27); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 28); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 29); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 30); OSMetaClassDeclareReservedUnused(IOPCCard16Device, 31); }; #endif /* ! _IOKIT_IOPCCARD16DEVICE_H */