IOFireWireLibConfigDirectory.h [plain text]
#ifndef _IOKIT_IOFireWireLibConfigDirectory_H_
#define _IOKIT_IOFireWireLibConfigDirectory_H_
#include <IOKit/IOCFPlugIn.h>
#include "IOFireWireLibPriv.h"
class IOFireWireLibConfigDirectoryImp: public IOFireWireIUnknown
{
public:
IOFireWireLibConfigDirectoryImp(IOFireWireDeviceInterfaceImp& inUserClient, FWKernConfigDirectoryRef inDirRef) ;
IOFireWireLibConfigDirectoryImp(IOFireWireDeviceInterfaceImp& inUserClient) ;
virtual ~IOFireWireLibConfigDirectoryImp() ;
virtual IOReturn Update(UInt32 offset) ;
virtual IOReturn GetKeyType(int key, IOConfigKeyType& type);
virtual IOReturn GetKeyValue(int key, UInt32 &value, CFStringRef*& text);
virtual IOReturn GetKeyValue(int key, CFDataRef* value, CFStringRef*& text);
virtual IOReturn GetKeyValue(int key, IOFireWireLibConfigDirectoryRef& value, REFIID iid, CFStringRef*& text);
virtual IOReturn GetKeyOffset(int key, FWAddress& value, CFStringRef*& text);
virtual IOReturn GetKeyValue(int key, FWKernConfigDirectoryRef& value) ;
virtual IOReturn GetIndexType(int index, IOConfigKeyType &type);
virtual IOReturn GetIndexKey(int index, int &key);
virtual IOReturn GetIndexValue(int index, UInt32& value);
virtual IOReturn GetIndexValue(int index, CFDataRef* value);
virtual IOReturn GetIndexValue(int index, CFStringRef* value);
virtual IOReturn GetIndexValue(int index, FWKernConfigDirectoryRef& value) ;
virtual IOReturn GetIndexValue(int index, IOFireWireLibConfigDirectoryRef& value, REFIID iid);
virtual IOReturn GetIndexOffset(int index, FWAddress& value);
virtual IOReturn GetIndexOffset(int index, UInt32& value);
virtual IOReturn GetIndexEntry(int index, UInt32 &value);
virtual IOReturn GetSubdirectories(io_iterator_t *outIterator);
virtual IOReturn GetKeySubdirectories(int key, io_iterator_t *outIterator);
virtual IOReturn GetType(int *outType) ;
virtual IOReturn GetNumEntries(int *outNumEntries) ;
virtual IOReturn Init() ;
protected:
IOFireWireDeviceInterfaceImp& mUserClient ;
FWKernConfigDirectoryRef mKernConfigDirectoryRef ;
} ;
class IOFireWireLibConfigDirectoryCOM: public IOFireWireLibConfigDirectoryImp
{
public:
IOFireWireLibConfigDirectoryCOM(IOFireWireDeviceInterfaceImp& inUserClient) ;
IOFireWireLibConfigDirectoryCOM(IOFireWireDeviceInterfaceImp& inUserClient, FWKernConfigDirectoryRef inDirRef) ;
virtual ~IOFireWireLibConfigDirectoryCOM() ;
struct InterfaceMap
{
IUnknownVTbl* pseudoVTable ;
IOFireWireLibConfigDirectoryCOM* obj ;
} ;
static IOFireWireConfigDirectoryInterface sInterface ;
InterfaceMap mInterface ;
inline static IOFireWireLibConfigDirectoryCOM* GetThis(IOFireWireLibConfigDirectoryRef self)
{ return ((InterfaceMap*)self)->obj ;}
static IUnknownVTbl** Alloc(IOFireWireDeviceInterfaceImp& inUserClient, FWKernConfigDirectoryRef inDirRef) ;
static IUnknownVTbl** Alloc(IOFireWireDeviceInterfaceImp& inUserClient) ;
virtual HRESULT QueryInterface(REFIID iid, void ** ppv ) ;
static IOReturn SUpdate(
IOFireWireLibConfigDirectoryRef inDir,
UInt32 inOffset) ;
static IOReturn SGetKeyType(
IOFireWireLibConfigDirectoryRef inDir,
int inKey,
IOConfigKeyType* outType);
static IOReturn SGetKeyValue_UInt32(
IOFireWireLibConfigDirectoryRef inDir,
int inKey,
UInt32* outValue,
CFStringRef* outText);
static IOReturn SGetKeyValue_Data(
IOFireWireLibConfigDirectoryRef inDir,
int inKey,
CFDataRef* outValue,
CFStringRef* outText);
static IOReturn SGetKeyValue_ConfigDirectory(
IOFireWireLibConfigDirectoryRef inDir,
int inKey,
IOFireWireLibConfigDirectoryRef * outValue,
REFIID iid,
CFStringRef* outText);
static IOReturn SGetKeyOffset_FWAddress(
IOFireWireLibConfigDirectoryRef inDir,
int inKey,
FWAddress* outValue,
CFStringRef* text);
static IOReturn SGetIndexType(
IOFireWireLibConfigDirectoryRef inDir,
int inIndex,
IOConfigKeyType* type);
static IOReturn SGetIndexKey(
IOFireWireLibConfigDirectoryRef inDir,
int inIndex,
int * key);
static IOReturn SGetIndexValue_UInt32(
IOFireWireLibConfigDirectoryRef inDir,
int inIndex,
UInt32 * value);
static IOReturn SGetIndexValue_Data(
IOFireWireLibConfigDirectoryRef inDir,
int inIndex,
CFDataRef * value);
static IOReturn SGetIndexValue_String(
IOFireWireLibConfigDirectoryRef inDir,
int inIndex,
CFStringRef* outValue);
static IOReturn SGetIndexValue_ConfigDirectory(
IOFireWireLibConfigDirectoryRef inDir,
int inIndex,
IOFireWireLibConfigDirectoryRef * outValue,
REFIID iid);
static IOReturn SGetIndexOffset_FWAddress(
IOFireWireLibConfigDirectoryRef inDir,
int inIndex,
FWAddress* outValue);
static IOReturn SGetIndexOffset_UInt32(
IOFireWireLibConfigDirectoryRef inDir,
int inIndex,
UInt32* outValue);
static IOReturn SGetIndexEntry(
IOFireWireLibConfigDirectoryRef inDir,
int inIndex,
UInt32* outValue);
static IOReturn SGetSubdirectories(
IOFireWireLibConfigDirectoryRef inDir,
io_iterator_t * outIterator);
static IOReturn SGetKeySubdirectories(
IOFireWireLibConfigDirectoryRef inDir,
int inKey,
io_iterator_t * outIterator);
static IOReturn SGetType(
IOFireWireLibConfigDirectoryRef inDir,
int * outType) ;
static IOReturn SGetNumEntries(
IOFireWireLibConfigDirectoryRef inDir,
int * outNumEntries) ;
} ;
#endif // #ifndef _IOKIT_IOFireWireLibConfigDirectory_H_