AppleRAIDMemoryDescriptor.cpp [plain text]
#include "AppleRAID.h"
#undef super
#define super IOMemoryDescriptor
OSDefineMetaClassAndAbstractStructors(AppleRAIDMemoryDescriptor, IOMemoryDescriptor);
bool AppleRAIDMemoryDescriptor::initWithStorageRequest(AppleRAIDStorageRequest *storageRequest, UInt32 memberIndex)
{
if (!super::init()) return false;
mdMemoryDescriptorLock = IOLockAlloc();
if (mdMemoryDescriptorLock == 0) return false;
mdStorageRequest = storageRequest;
mdMemberIndex = memberIndex;
return true;
}
void AppleRAIDMemoryDescriptor::free(void)
{
IOLockFree(mdMemoryDescriptorLock);
super::free();
}
IOReturn AppleRAIDMemoryDescriptor::prepare(IODirection forDirection)
{
IOReturn result;
IOLockLock(mdMemoryDescriptorLock);
result = mdMemoryDescriptor->prepare(forDirection);
IOLockUnlock(mdMemoryDescriptorLock);
return result;
}
IOReturn AppleRAIDMemoryDescriptor::complete(IODirection forDirection)
{
IOReturn result;
IOLockLock(mdMemoryDescriptorLock);
result = mdMemoryDescriptor->complete(forDirection);
IOLockUnlock(mdMemoryDescriptorLock);
return result;
}