AppleRAIDMemoryDescriptor.h [plain text]
#ifndef _APPLERAIDMEMORYDESCRIPTOR_H
#define _APPLERAIDMEMORYDESCRIPTOR_H
class AppleLVMVolume;
class AppleRAIDMemoryDescriptor : public IOMemoryDescriptor
{
OSDeclareAbstractStructors(AppleRAIDMemoryDescriptor);
friend class AppleRAIDEventSource; friend class AppleRAIDStorageRequest; friend class AppleLVMStorageRequest; friend class AppleLVMGroup;
protected:
IOMemoryDescriptor *mdMemoryDescriptor;
IOLock *mdMemoryDescriptorLock;
AppleRAIDStorageRequest *mdStorageRequest;
UInt32 mdMemberIndex;
UInt64 mdMemberByteStart;
virtual bool initWithAddress(void *address, IOByteCount withLength, IODirection withDirection) { return false; }
virtual bool initWithAddress(vm_address_t address, IOByteCount withLength, IODirection withDirection, task_t withTask)
{ return false; }
virtual bool initWithPhysicalAddress(IOPhysicalAddress address, IOByteCount withLength, IODirection withDirection)
{ return false; }
virtual bool initWithRanges(IOVirtualRange *ranges, UInt32 withCount, IODirection withDirection, task_t withTask,
bool asReference = false) { return false; }
virtual bool initWithPhysicalRanges(IOPhysicalRange *ranges, UInt32 withCount, IODirection withDirection,
bool asReference = false) { return false; }
public:
virtual bool initWithStorageRequest(AppleRAIDStorageRequest *storageRequest, UInt32 memberIndex);
virtual void free(void);
virtual bool configureForMemoryDescriptor(IOMemoryDescriptor *memoryDescriptor, UInt64 byteStart, UInt32 activeIndex) { return false; }
virtual bool configureForMemoryDescriptor(IOMemoryDescriptor * memoryDescriptor, UInt64 requestStart, UInt64 requestSize, AppleLVMVolume * lv) { return false; }
virtual addr64_t getPhysicalSegment(IOByteCount offset, IOByteCount * length, IOOptionBits options = 0) = 0;
virtual IOReturn prepare(IODirection forDirection = kIODirectionNone);
virtual IOReturn complete(IODirection forDirection = kIODirectionNone);
};
#endif