IOI2CInterfacePrivate.h [plain text]
#ifndef _IOKIT_IOI2CINTERFACEPRIVATE_H
#define _IOKIT_IOI2CINTERFACEPRIVATE_H
#ifdef KERNEL
#include <IOKit/IOLib.h>
#include <IOKit/IOUserClient.h>
#include <IOKit/ndrvsupport/IONDRVFramebuffer.h>
#endif
#include <IOKit/i2c/IOI2CInterface.h>
enum { kIOI2CInlineBufferBytes = 1024 };
struct IOI2CBuffer
{
IOI2CRequest request;
UInt8 inlineBuffer[ kIOI2CInlineBufferBytes ];
};
#ifdef KERNEL
#pragma pack(push, 4)
struct IOI2CRequest_10_5_0
{
UInt64 __reservedA;
IOReturn result;
uint32_t completion;
IOOptionBits commFlags;
uint64_t minReplyDelay;
uint8_t sendAddress;
uint8_t sendSubAddress;
uint8_t __reservedB[2];
IOOptionBits sendTransactionType;
uint32_t sendBuffer;
uint32_t sendBytes;
uint8_t replyAddress;
uint8_t replySubAddress;
uint8_t __reservedC[2];
IOOptionBits replyTransactionType;
uint32_t replyBuffer;
uint32_t replyBytes;
uint32_t __reservedD[16];
};
#pragma pack(pop)
class IOI2CInterfaceUserClient : public IOUserClient
{
OSDeclareDefaultStructors(IOI2CInterfaceUserClient)
protected:
task_t fTask;
public:
virtual IOReturn clientClose( void ) APPLE_KEXT_OVERRIDE;
virtual IOService * getService( void ) APPLE_KEXT_OVERRIDE;
virtual IOExternalMethod * getTargetAndMethodForIndex(
IOService ** targetP, UInt32 index ) APPLE_KEXT_OVERRIDE;
static IOI2CInterfaceUserClient * withTask( task_t owningTask );
virtual bool start( IOService * provider ) APPLE_KEXT_OVERRIDE;
virtual IOReturn setProperties( OSObject * properties ) APPLE_KEXT_OVERRIDE;
virtual bool willTerminate(IOService *provider, IOOptionBits options) APPLE_KEXT_OVERRIDE;
virtual bool didTerminate(IOService *provider, IOOptionBits options, bool *defer) APPLE_KEXT_OVERRIDE;
virtual bool requestTerminate(IOService *provider, IOOptionBits options) APPLE_KEXT_OVERRIDE;
virtual bool terminate(IOOptionBits options = 0) APPLE_KEXT_OVERRIDE;
virtual bool finalize(IOOptionBits options) APPLE_KEXT_OVERRIDE;
virtual void stop(IOService *provider) APPLE_KEXT_OVERRIDE;
virtual void free() APPLE_KEXT_OVERRIDE;
virtual IOReturn extAcquireBus( void );
virtual IOReturn extReleaseBus( void );
virtual IOReturn extIO( void * inStruct, void * outStruct,
IOByteCount inSize, IOByteCount * outSize );
};
#endif
#endif