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 AppleLVMGroup; friend class AppleRAIDEventSource; friend class AppleRAIDStripeMemoryDescriptor; friend class AppleRAIDMirrorMemoryDescriptor; friend class AppleRAIDConcatMemoryDescriptor; friend class AppleLVMMemoryDescriptor;
protected:
AppleRAIDSet *srRAIDSet;
AppleRAIDEventSource *srEventSource;
AppleRAIDMemoryDescriptor **srMemoryDescriptors;
IOReturn srStatus;
UInt64 srSetBlockSize;
UInt64 srMemberBaseOffset;
UInt32 srActiveCount;
UInt32 srMemberCount;
UInt32 srRequestCount;
UInt32 srRequestsAllocated;
IOReturn *srRequestStatus;
UInt64 *srRequestByteCounts;
UInt32 srCompletedCount;
UInt64 srByteStart;
UInt64 srByteCount;
AppleRAIDMember **srActiveMembers;
IOService *srClient;
IOStorageCompletion srCompletion;
IOMemoryDescriptor *srMemoryDescriptor;
IODirection srMemoryDescriptorDirection;
virtual void free(void);
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 * set);
virtual bool initWithAppleRAIDSet(AppleRAIDSet * set);
virtual void extractRequest(IOService **client, UInt64 *byteStart, IOMemoryDescriptor **buffer, IOStorageCompletion *completion);
};
#endif