IOFireWireSBP2LibLUN.h [plain text]
#ifndef _IOKIT_IOFIREWIRESBP2LIBLUN_H_
#define _IOKIT_IOFIREWIRESBP2LIBLUN_H_
#include <IOKit/IOCFPlugIn.h>
#include <IOKit/sbp2/IOFireWireSBP2Lib.h>
__BEGIN_DECLS
void *IOFireWireSBP2LibFactory( CFAllocatorRef allocator, CFUUIDRef typeID );
__END_DECLS
class IOFireWireSBP2LibLUN
{
public:
struct InterfaceMap
{
IUnknownVTbl *pseudoVTable;
IOFireWireSBP2LibLUN *obj;
};
IOFireWireSBP2LibLUN( void );
virtual ~IOFireWireSBP2LibLUN();
protected:
static IOCFPlugInInterface sIOCFPlugInInterface;
InterfaceMap fIOCFPlugInInterface;
static IOFireWireSBP2LibLUNInterface sIOFireWireSBP2LibLUNInterface;
InterfaceMap fIOFireWireSBP2LibLUNInterface;
CFUUIDRef fFactoryId;
UInt32 fRefCount;
io_service_t fService;
io_connect_t fConnection;
mach_port_t fAsyncPort;
CFRunLoopRef fCFRunLoop;
CFRunLoopSourceRef fCFRunLoopSource;
IOFWSBP2MessageCallback fMessageCallbackRoutine;
void * fMessageCallbackRefCon;
IUnknownVTbl ** fLoginInterface;
UInt32 fRefCon;
static inline IOFireWireSBP2LibLUN *getThis( void *self )
{ return (IOFireWireSBP2LibLUN *) ((InterfaceMap *) self)->obj; };
static HRESULT staticQueryInterface( void * self, REFIID iid, void **ppv );
virtual HRESULT queryInterface( REFIID iid, void **ppv );
static UInt32 staticAddRef( void * self );
virtual UInt32 addRef( void );
static UInt32 staticRelease( void * self );
virtual UInt32 release( void );
static IOReturn staticProbe( void * self, CFDictionaryRef propertyTable,
io_service_t service, SInt32 *order );
virtual IOReturn probe( CFDictionaryRef propertyTable, io_service_t service, SInt32 *order );
static IOReturn staticStart( void * self, CFDictionaryRef propertyTable,
io_service_t service );
virtual IOReturn start( CFDictionaryRef propertyTable, io_service_t service );
static IOReturn staticStop( void * self );
virtual IOReturn stop( void );
static IOReturn staticOpen( void * self );
virtual IOReturn open( void );
static IOReturn staticOpenWithSessionRef( void * self, IOFireWireSessionRef sessionRef );
virtual IOReturn openWithSessionRef( IOFireWireSessionRef sessionRef );
static IOFireWireSessionRef staticGetSessionRef(void * self);
virtual IOFireWireSessionRef getSessionRef( void );
static void staticClose( void * self );
virtual void close( void );
static IOReturn staticAddIODispatcherToRunLoop( void *self, CFRunLoopRef cfRunLoopRef );
virtual IOReturn addIODispatcherToRunLoop( CFRunLoopRef cfRunLoopRef );
static void staticRemoveIODispatcherFromRunLoop( void * self );
virtual void removeIODispatcherFromRunLoop( void );
static void staticSetMessageCallback( void * self, void * refCon,
IOFWSBP2MessageCallback callback );
virtual void setMessageCallback( void * refCon, IOFWSBP2MessageCallback callback );
static IUnknownVTbl ** staticCreateLogin( void * self, REFIID iid );
virtual IUnknownVTbl ** createLogin( REFIID iid );
static void staticSetRefCon( void * self, UInt32 refCon );
virtual void setRefCon( UInt32 refCon );
static UInt32 staticGetRefCon( void * self );
virtual UInt32 getRefCon( void );
static IUnknownVTbl ** staticCreateMgmtORB( void * self, REFIID iid );
virtual IUnknownVTbl ** createMgmtORB( REFIID iid );
static void staticMessageCallback( void *refcon, IOReturn result,
void **args, int numArgs );
virtual void messageCallback( IOReturn result, void **args, int numArgs );
public:
static IOCFPlugInInterface **alloc( void );
};
#endif