mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 01:37:35 +00:00
Kernel: Move devices into Kernel/Devices/.
This commit is contained in:
parent
072ea7eece
commit
ab43658c55
42 changed files with 53 additions and 54 deletions
42
Kernel/Devices/DiskDevice.cpp
Normal file
42
Kernel/Devices/DiskDevice.cpp
Normal file
|
@ -0,0 +1,42 @@
|
|||
#include <Kernel/Devices/DiskDevice.h>
|
||||
|
||||
DiskDevice::DiskDevice()
|
||||
{
|
||||
}
|
||||
|
||||
DiskDevice::~DiskDevice()
|
||||
{
|
||||
}
|
||||
|
||||
bool DiskDevice::read(DiskOffset offset, unsigned length, byte* out) const
|
||||
{
|
||||
ASSERT((offset % block_size()) == 0);
|
||||
ASSERT((length % block_size()) == 0);
|
||||
dword first_block = offset / block_size();
|
||||
dword end_block = (offset + length) / block_size();
|
||||
byte* outptr = out;
|
||||
for (unsigned bi = first_block; bi < end_block; ++bi) {
|
||||
if (!read_block(bi, outptr))
|
||||
return false;
|
||||
outptr += block_size();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DiskDevice::write(DiskOffset offset, unsigned length, const byte* in)
|
||||
{
|
||||
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);
|
||||
const byte* inptr = in;
|
||||
for (unsigned bi = first_block; bi < end_block; ++bi) {
|
||||
if (!write_block(bi, inptr))
|
||||
return false;
|
||||
inptr += block_size();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue