IOFireWireLibPsudoAddrSpace.h [plain text]
#ifndef _IOKIT_IOFireWireLibPsudoAddrSpace_H__
#define _IOKIT_IOFireWireLibPsudoAddrSpace_H__
#include "IOFireWireLib.h"
class IOFireWirePseudoAddressSpaceImp: public IOFireWireIUnknown
{
public:
struct InterfaceMap
{
IUnknownVTbl* pseudoVTable;
IOFireWirePseudoAddressSpaceImp* obj;
};
static IOFireWirePseudoAddressSpaceInterface sInterface ;
InterfaceMap mInterface ;
inline static IOFireWirePseudoAddressSpaceImp* GetThis(IOFireWireLibPseudoAddressSpaceRef interface)
{ return (IOFireWirePseudoAddressSpaceImp*) ((InterfaceMap*)interface)->obj ;}
static IUnknownVTbl** Alloc(
IOFireWireDeviceInterfaceImp& inUserClient,
FWKernAddrSpaceRef inKernAddrSpaceRef,
void* inBuffer,
UInt32 inBufferSize,
void* inBackingStore,
void* inRefCon) ;
virtual HRESULT QueryInterface(REFIID iid, void **ppv );
static IOReturn SInit() ;
static const IOFireWirePseudoAddressSpaceWriteHandler
SSetWriteHandler(
IOFireWireLibPseudoAddressSpaceRef interface,
IOFireWirePseudoAddressSpaceWriteHandler inWriter) ;
static const IOFireWirePseudoAddressSpaceReadHandler
SSetReadHandler(
IOFireWireLibPseudoAddressSpaceRef interface,
IOFireWirePseudoAddressSpaceReadHandler inReader) ;
static const IOFireWirePseudoAddressSpaceSkippedPacketHandler
SSetSkippedPacketHandler(
IOFireWireLibPseudoAddressSpaceRef interface,
IOFireWirePseudoAddressSpaceSkippedPacketHandler inHandler) ;
static Boolean SNotificationIsOn(
IOFireWireLibPseudoAddressSpaceRef interface) ;
static Boolean STurnOnNotification(
IOFireWireLibPseudoAddressSpaceRef interface) ;
static void STurnOffNotification(
IOFireWireLibPseudoAddressSpaceRef interface) ;
static void SClientCommandIsComplete(
IOFireWireLibPseudoAddressSpaceRef interface,
FWClientCommandID commandID,
IOReturn status) ;
static void SGetFWAddress(
IOFireWireLibPseudoAddressSpaceRef interface,
FWAddress* outAddr) ;
static void* SGetBuffer(
IOFireWireLibPseudoAddressSpaceRef interface) ;
static const UInt32 SGetBufferSize(
IOFireWireLibPseudoAddressSpaceRef interface) ;
static void* SGetRefCon(
IOFireWireLibPseudoAddressSpaceRef interface) ;
IOFireWirePseudoAddressSpaceImp(
IOFireWireDeviceInterfaceImp& inUserClient,
FWKernAddrSpaceRef inKernAddrSpaceRef,
void* inBuffer,
UInt32 inBufferSize,
void* inBackingStore,
void* inRefCon = 0) ;
virtual ~IOFireWirePseudoAddressSpaceImp() ;
IOReturn Init() ;
static void Writer(
IOFireWireLibPseudoAddressSpaceRef refCon,
IOReturn result,
void** args,
int numArgs) ;
static void SkippedPacketHandler(
IOFireWireLibPseudoAddressSpaceRef refCon,
IOReturn result,
FWClientCommandID commandID,
UInt32 packetCount) ;
static void ReadHandler() {}
virtual const IOFireWirePseudoAddressSpaceWriteHandler
SetWriteHandler(
IOFireWirePseudoAddressSpaceWriteHandler inWriter) ;
virtual const IOFireWirePseudoAddressSpaceReadHandler
SetReadHandler(
IOFireWirePseudoAddressSpaceReadHandler inReader) ;
virtual const IOFireWirePseudoAddressSpaceSkippedPacketHandler
SetSkippedPacketHandler(
IOFireWirePseudoAddressSpaceSkippedPacketHandler inHandler) ;
virtual Boolean NotificationIsOn() { return mNotifyIsOn; }
virtual Boolean TurnOnNotification(
void* callBackRefCon ) ;
virtual void TurnOffNotification() ;
virtual void ClientCommandIsComplete(
FWClientCommandID commandID,
IOReturn status) ;
virtual const FWAddress& GetFWAddress() ;
virtual void* GetBuffer() ;
virtual const UInt32 GetBufferSize() ;
virtual void* GetRefCon() ;
const IOFireWirePseudoAddressSpaceReadHandler
GetReader() {return mReader;}
const IOFireWirePseudoAddressSpaceWriteHandler
GetWriter() {return mWriter;}
const IOFireWirePseudoAddressSpaceSkippedPacketHandler
GetSkippedPacketHandler() {return mSkippedPacketHandler;}
protected:
Boolean mNotifyIsOn ;
CFRunLoopRef mNotifyRunLoop ;
IONotificationPortRef mNotifyPort ;
io_object_t mNotify;
IOFireWirePseudoAddressSpaceWriteHandler mWriter ;
IOFireWirePseudoAddressSpaceReadHandler mReader ;
IOFireWirePseudoAddressSpaceSkippedPacketHandler mSkippedPacketHandler ;
IOFireWireDeviceInterfaceImp& mUserClient ;
FWAddress mFWAddress ;
FWKernAddrSpaceRef mKernAddrSpaceRef ;
void* mBuffer ;
UInt32 mBufferSize ;
void* mBackingStore ;
void* mRefCon ;
io_async_ref_t mPacketAsyncRef ;
io_async_ref_t mSkippedPacketAsyncRef ;
} ;
#endif //_IOKIT_IOFireWireLibPsudoAddrSpace_H__