Cosmos/source2/Kernel/System/Hardware/Cosmos.Hardware/BlockDevice/Partition.cs
lcr_watson_cp c863b669fd
2014-04-20 15:37:09 +00:00

37 lines
No EOL
962 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cosmos.Hardware.BlockDevice
{
public class Partition : BlockDevice
{
BlockDevice mHost;
UInt64 mStartingSector;
public Partition(BlockDevice aHost, UInt64 aStartingSector, UInt64 aSectorCount)
{
mHost = aHost;
mStartingSector = aStartingSector;
mBlockCount = aSectorCount;
mBlockSize = aHost.BlockSize;
}
public override void ReadBlock(UInt64 aBlockNo, UInt64 aBlockCount, byte[] aData)
{
UInt64 xHostBlockNo = mStartingSector + aBlockNo;
CheckBlockNo(xHostBlockNo, aBlockCount);
mHost.ReadBlock(xHostBlockNo, aBlockCount, aData);
}
public override void WriteBlock(UInt64 aBlockNo, UInt64 aBlockCount, byte[] aData)
{
UInt64 xHostBlockNo = mStartingSector + aBlockNo;
CheckBlockNo(xHostBlockNo, aBlockCount);
mHost.WriteBlock(xHostBlockNo, aBlockCount, aData);
}
}
}