IOFireWireLibPseudoAddressSpace.h [plain text]
#import <IOKit/firewire/IOFireWireLib.h>
namespace IOFireWireLib {
class PseudoAddressSpace: public IOFireWireIUnknown
{
typedef ::IOFireWirePseudoAddressSpaceInterface Interface ;
typedef ::IOFireWireLibPseudoAddressSpaceRef AddressSpaceRef ;
typedef ::IOFireWirePseudoAddressSpaceWriteHandler WriteHandler ;
typedef ::IOFireWirePseudoAddressSpaceReadHandler ReadHandler ;
typedef ::IOFireWirePseudoAddressSpaceSkippedPacketHandler SkippedPacketHandler ;
static Interface sInterface ;
public:
static IUnknownVTbl** Alloc( Device& userclient, KernAddrSpaceRef inKernAddrSpaceRef,
void* inBuffer, UInt32 inBufferSize, void* inBackingStore,
void* inRefCon) ;
virtual HRESULT QueryInterface(REFIID iid, void **ppv );
static IOReturn SInit() ;
static const WriteHandler SSetWriteHandler( AddressSpaceRef interface, WriteHandler inWriter ) ;
static const ReadHandler SSetReadHandler( AddressSpaceRef interface, ReadHandler inReader) ;
static const SkippedPacketHandler SSetSkippedPacketHandler( AddressSpaceRef interface, SkippedPacketHandler inHandler ) ;
static Boolean SNotificationIsOn(
AddressSpaceRef interface) ;
static Boolean STurnOnNotification(
AddressSpaceRef interface) ;
static void STurnOffNotification(
AddressSpaceRef interface) ;
static void SClientCommandIsComplete(
AddressSpaceRef interface,
FWClientCommandID commandID,
IOReturn status) ;
static void SGetFWAddress(
AddressSpaceRef interface,
FWAddress* outAddr) ;
static void* SGetBuffer(
AddressSpaceRef interface) ;
static const UInt32 SGetBufferSize(
AddressSpaceRef interface) ;
static void* SGetRefCon(
AddressSpaceRef interface) ;
PseudoAddressSpace(
Device& userclient,
KernAddrSpaceRef inKernAddrSpaceRef,
void* inBuffer,
UInt32 inBufferSize,
void* inBackingStore,
void* inRefCon = 0) ;
virtual ~PseudoAddressSpace() ;
static void Writer( AddressSpaceRef refcon, IOReturn result, void** args,
int numArgs) ;
static void Reader( AddressSpaceRef refcon, IOReturn result, void** args,
int numArgs) ;
static void SkippedPacket( AddressSpaceRef refCon, IOReturn result, FWClientCommandID commandID,
UInt32 packetCount) ;
virtual const WriteHandler SetWriteHandler( WriteHandler inWriter ) ;
virtual const ReadHandler SetReadHandler( ReadHandler inReader ) ;
virtual const SkippedPacketHandler SetSkippedPacketHandler( SkippedPacketHandler inHandler ) ;
virtual Boolean NotificationIsOn() const { 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 ReadHandler GetReader() const { return mReader ; }
const WriteHandler GetWriter() const { return mWriter ; }
const SkippedPacketHandler GetSkippedPacketHandler() const { return mSkippedPacketHandler ; }
protected:
Boolean mNotifyIsOn ;
CFRunLoopRef mNotifyRunLoop ;
IONotificationPortRef mNotifyPort ;
io_object_t mNotify;
WriteHandler mWriter ;
ReadHandler mReader ;
SkippedPacketHandler mSkippedPacketHandler ;
Device& mUserClient ;
FWAddress mFWAddress ;
KernAddrSpaceRef mKernAddrSpaceRef ;
char* mBuffer ;
UInt32 mBufferSize ;
void* mBackingStore ;
void* mRefCon ;
io_async_ref_t mPacketAsyncRef ;
io_async_ref_t mSkippedPacketAsyncRef ;
io_async_ref_t mReadPacketAsyncRef ;
CFMutableDictionaryRef mPendingLocks ;
} ;
}