AppleRAIDStorageRequest.h [plain text]
#ifndef _APPLERAIDSTORAGEREQUEST_H
#define _APPLERAIDSTORAGEREQUEST_H
#define kAppleRAIDStorageRequestCount (16)
class AppleRAIDStorageRequest : public IOCommand
{
OSDeclareDefaultStructors(AppleRAIDStorageRequest);
friend class AppleRAIDSet; friend class AppleRAIDMirrorSet; friend class AppleRAIDEventSource; friend class AppleRAIDStripeMemoryDescriptor; friend class AppleRAIDMirrorMemoryDescriptor; friend class AppleRAIDConcatMemoryDescriptor;
private:
AppleRAIDSet *srRAIDSet;
AppleRAIDEventSource *srEventSource;
AppleRAIDMemoryDescriptor **srMemberMemoryDescriptors;
IOReturn srStatus;
virtual void free(void);
protected:
UInt64 srSetBlockSize;
UInt64 srMemberBaseOffset;
UInt32 srActiveCount;
UInt32 srMemberCount;
IOReturn *srMemberStatus;
UInt64 *srMemberByteCounts;
UInt32 srCompletedCount;
UInt64 srByteStart;
UInt64 srByteCount;
AppleRAIDMember **srActiveMembers;
UInt32 srNearestMember;
IOService *srClient;
IOStorageCompletion srCompletion;
IOMemoryDescriptor *srMemoryDescriptor;
IODirection srMemoryDescriptorDirection;
virtual void read(IOService *client, UInt64 byteStart, IOMemoryDescriptor * buffer,
IOStorageCompletion completion);
virtual void write(IOService *client, UInt64 byteStart, IOMemoryDescriptor * buffer,
IOStorageCompletion completion);
public:
static AppleRAIDStorageRequest *withAppleRAIDSet(AppleRAIDSet * xsset);
virtual bool initWithAppleRAIDSet(AppleRAIDSet * set);
virtual void extractRequest(IOService **client, UInt64 *byteStart, IOMemoryDescriptor **buffer, IOStorageCompletion *completion);
};
#endif