AppleRAIDUserClient.h [plain text]
#ifndef _APPLERAIDUSERCLIENT_H
#define _APPLERAIDUSERCLIENT_H
enum
{
kAppleRAIDClientOpen,
kAppleRAIDClientClose,
kAppleRAIDGetListOfSets,
kAppleRAIDGetSetProperties,
kAppleRAIDGetMemberProperties,
kAppleRAIDUpdateSet,
kAppleRAIDUserClientMethodMaxCount
};
#define kAppleRAIDMessageSetChanged ('raid')
enum {
kAppleRAIDMaxUUIDStringSize = 64 };
enum {
kAppleRAIDUpdateResetSet = 1,
kAppleRAIDUpdateDestroySet = 2
};
#ifdef KERNEL
#include <IOKit/IOUserClient.h>
class AppleRAIDUserClient : public IOUserClient
{
OSDeclareDefaultStructors(AppleRAIDUserClient)
protected:
IOService * fProvider;
task_t fTask;
bool fDead;
public:
virtual IOReturn open(void);
virtual IOReturn close(void);
virtual void stop(IOService * provider);
virtual bool start(IOService * provider);
virtual IOReturn message(UInt32 type, IOService * provider, void * argument = 0);
virtual bool initWithTask(task_t owningTask, void * security_id, UInt32 type);
virtual bool finalize(IOOptionBits options);
virtual IOExternalMethod * getTargetAndMethodForIndex(IOService ** target, UInt32 index);
virtual IOReturn clientClose(void);
virtual IOReturn clientDied(void);
virtual bool terminate(IOOptionBits options = 0);
};
#endif KERNEL
#endif _APPLERAIDUSERCLIENT_H