104106297STyler Dauwalder#include "PhysicalPartition.h"
204106297STyler Dauwalder
304106297STyler Dauwalder#define B_NOT_IMPLEMENTED B_ERROR
404106297STyler Dauwalder
504106297STyler Dauwalder
604106297STyler Dauwalder/*! \brief Creates a new PhysicalPartition object.
704106297STyler Dauwalder*/
804106297STyler DauwalderPhysicalPartition::PhysicalPartition(uint16 number, uint32 start, uint32 length)
9c9334140SSalvatore Benedetto	:
10c9334140SSalvatore Benedetto	fNumber(number),
11c9334140SSalvatore Benedetto	fStart(start),
12c9334140SSalvatore Benedetto	fLength(length)
1304106297STyler Dauwalder{
147e5b0f96SJérôme Duval	TRACE(("PhysicalPartition::PhysicalPartition: number = %d, start = %"
157e5b0f96SJérôme Duval		B_PRIu32 ",length = %" B_PRIu32 "\n", number, start, length));
1604106297STyler Dauwalder}
1704106297STyler Dauwalder
18c5855c9eSSalvatore Benedetto
1904106297STyler Dauwalder/*! \brief Destroys the PhysicalPartition object.
2004106297STyler Dauwalder*/
2104106297STyler DauwalderPhysicalPartition::~PhysicalPartition()
2204106297STyler Dauwalder{
2304106297STyler Dauwalder}
2404106297STyler Dauwalder
25c5855c9eSSalvatore Benedetto
2604106297STyler Dauwalder/*! \brief Maps the given logical block to a physical block on disc.
2704106297STyler Dauwalder
2804106297STyler Dauwalder	The given logical block is simply treated as an offset from the
2904106297STyler Dauwalder	start of the physical partition.
3004106297STyler Dauwalder*/
3104106297STyler Dauwalderstatus_t
32a1b5a724STyler DauwalderPhysicalPartition::MapBlock(uint32 logicalBlock, off_t &physicalBlock)
3304106297STyler Dauwalder{
347e5b0f96SJérôme Duval	TRACE(("PhysicalPartition::MapBlock: %" B_PRIu32 "\n", logicalBlock));
3529d3fcedSTyler Dauwalder	if (logicalBlock >= fLength) {
367e5b0f96SJérôme Duval		TRACE_ERROR(("PhysicalPartition::MapBlock: block %" B_PRIu32 " invalid"
377e5b0f96SJérôme Duval			",length = %" B_PRIu32 "\n", logicalBlock, fLength));
3804106297STyler Dauwalder		return B_BAD_ADDRESS;
3929d3fcedSTyler Dauwalder	} else {
4004106297STyler Dauwalder		physicalBlock = fStart + logicalBlock;
417e5b0f96SJérôme Duval		TRACE(("PhysicalPartition::MapBlock: block %" B_PRIu32 " mapped to %"
427e5b0f96SJérôme Duval			B_PRIdOFF "\n", logicalBlock, physicalBlock));
4304106297STyler Dauwalder		return B_OK;
4404106297STyler Dauwalder	}
4504106297STyler Dauwalder}
46