I2CUserClientPrivate.h [plain text]
#ifndef _I2CUSERCLIENTPRIVATE_H
#define _I2CUSERCLIENTPRIVATE_H
#include <IOKit/IOUserClient.h>
#include "PPCI2CInterface.h"
#include "I2CUserClient.h"
#ifdef DLOG
#undef DLOG
#endif
#ifdef I2CUSERCLIENT_DEBUG
#define DLOG(fmt, args...) IOLog(fmt, ## args)
#else
#define DLOG(fmt, args...)
#endif
class I2CUserClient : public IOUserClient
{
OSDeclareDefaultStructors(I2CUserClient)
private:
task_t fOwningTask;
PPCI2CInterface *fProvider;
IOLock *fIsOpenLock;
bool fIsOpen;
public:
virtual bool start(IOService *provider);
virtual void stop(IOService *provider);
virtual IOExternalMethod *getTargetAndMethodForIndex(
IOService **target, UInt32 Index);
virtual IOReturn clientClose(void);
virtual bool init(OSDictionary *dict);
virtual bool initWithTask(task_t owningTask, void *security_id,
UInt32 type);
virtual void free(void);
virtual bool attach(IOService *provider);
virtual void detach(IOService *provider);
IOReturn userClientOpen(void);
IOReturn userClientClose(void);
IOReturn read( void *inStruct, void *outStruct,
void *inCount, void *outCount, void *p5, void *p6 );
IOReturn write( void *inStruct, void *outStruct,
void *inCount, void *outCount, void *p5, void *p6 );
IOReturn rmw( void *inStruct, void *inCount,
void *p3, void *p4, void *p5, void *p6 );
};
#endif