AppleRAIDUserClient.h [plain text]
#ifndef _APPLERAIDUSERCLIENT_H
#define _APPLERAIDUSERCLIENT_H
enum
{
kAppleRAIDClientOpen = 0,
kAppleRAIDClientClose, kAppleRAIDGetListOfSets, kAppleRAIDGetSetProperties, kAppleRAIDGetMemberProperties, kAppleRAIDUpdateSet, kAppleLVMGetVolumesForGroup, kAppleLVMGetVolumeProperties, kAppleLVMGetVolumeExtents, kAppleLVMUpdateLogicalVolume, kAppleLVMDestroyLogicalVolume, kAppleRAIDUserClientMethodsCount
};
#define kAppleRAIDMessageSetChanged ('raid')
#define kAppleLVMMessageVolumeChanged ('lvol')
enum {
kAppleRAIDMaxUUIDStringSize = 64 };
enum {
kAppleRAIDUpdateResetSet = 1,
kAppleRAIDUpdateDestroySet = 2
};
#ifdef KERNEL
class AppleRAIDUserClient : public IOUserClient
{
OSDeclareDefaultStructors(AppleRAIDUserClient)
protected:
AppleRAID * ucController;
task_t ucClient;
public:
virtual bool initWithTask(task_t owningTask, void * security_id, UInt32 type);
virtual bool start(IOService * provider);
virtual IOReturn clientClose(void);
virtual IOReturn externalMethod(uint32_t selector, IOExternalMethodArguments * arguments,
IOExternalMethodDispatch * dispatch = 0,
OSObject * target = 0, void * reference = 0);
static IOReturn openShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->openController(); };
static IOReturn closeShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->closeController(); };
static IOReturn getListOfSetsShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->getListOfSets(args); };
static IOReturn getSetPropertiesShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->getSetProperties(args); };
static IOReturn getMemberPropertiesShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->getMemberProperties(args); };
static IOReturn updateSetShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->updateSet(args); };
static IOReturn getVolumesForGroupShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->getVolumesForGroup(args); };
static IOReturn getVolumePropertiesShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->getVolumeProperties(args); };
static IOReturn getVolumeExtentsShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->getVolumeExtents(args); };
static IOReturn updateLogicalVolumeShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->updateLogicalVolume(args); };
static IOReturn destroyLogicalVolumeShim(OSObject * target, void * reference, IOExternalMethodArguments * args)
{ return ((AppleRAIDUserClient *)target)->destroyLogicalVolume(args); };
virtual IOReturn openController(void);
virtual IOReturn closeController(void);
virtual IOReturn getListOfSets(IOExternalMethodArguments * args);
virtual IOReturn getSetProperties(IOExternalMethodArguments * args);
virtual IOReturn getMemberProperties(IOExternalMethodArguments * args);
virtual IOReturn updateSet(IOExternalMethodArguments * args);
virtual IOReturn getVolumesForGroup(IOExternalMethodArguments * args);
virtual IOReturn getVolumeProperties(IOExternalMethodArguments * args);
virtual IOReturn getVolumeExtents(IOExternalMethodArguments * args);
virtual IOReturn updateLogicalVolume(IOExternalMethodArguments * args);
virtual IOReturn destroyLogicalVolume(IOExternalMethodArguments * args);
};
#endif KERNEL
#endif _APPLERAIDUSERCLIENT_H