ladybird/Kernel/Devices/DiskDevice.cpp

30 lines
875 B
C++
Raw Normal View History

#include <Kernel/Devices/DiskDevice.h>
DiskDevice::DiskDevice()
{
}
DiskDevice::~DiskDevice()
{
}
2018-10-17 10:55:43 +02:00
bool DiskDevice::read(DiskOffset offset, unsigned length, byte* out) const
{
2018-12-03 01:38:22 +01:00
ASSERT((offset % block_size()) == 0);
ASSERT((length % block_size()) == 0);
dword first_block = offset / block_size();
dword end_block = (offset + length) / block_size();
return const_cast<DiskDevice*>(this)->read_blocks(first_block, end_block - first_block, out);
}
2018-10-17 10:55:43 +02:00
bool DiskDevice::write(DiskOffset offset, unsigned length, const byte* in)
{
2018-12-03 01:38:22 +01:00
ASSERT((offset % block_size()) == 0);
ASSERT((length % block_size()) == 0);
dword first_block = offset / block_size();
dword end_block = (offset + length) / block_size();
ASSERT(first_block <= 0xffffffff);
ASSERT(end_block <= 0xffffffff);
return write_blocks(first_block, end_block - first_block, in);
}