diff --git a/src/add-ons/kernel/file_systems/udf/MetadataPartition.cpp b/src/add-ons/kernel/file_systems/udf/MetadataPartition.cpp index bd4dec22b7..b7fc00eb4f 100644 --- a/src/add-ons/kernel/file_systems/udf/MetadataPartition.cpp +++ b/src/add-ons/kernel/file_systems/udf/MetadataPartition.cpp @@ -30,7 +30,7 @@ MetadataPartition::~MetadataPartition() /*! \brief Maps the given logical block to a physical block on disc. */ status_t -MetadataPartition::MapBlock(uint32 logicalBlock, uint32 &physicalBlock) +MetadataPartition::MapBlock(uint32 logicalBlock, off_t &physicalBlock) { return B_NOT_IMPLEMENTED; } diff --git a/src/add-ons/kernel/file_systems/udf/MetadataPartition.h b/src/add-ons/kernel/file_systems/udf/MetadataPartition.h index 35cde8546e..4c0dd10377 100644 --- a/src/add-ons/kernel/file_systems/udf/MetadataPartition.h +++ b/src/add-ons/kernel/file_systems/udf/MetadataPartition.h @@ -31,7 +31,7 @@ public: uint32 allocationUnitSize, uint16 alignmentUnitSize, bool metadataIsDuplicated); virtual ~MetadataPartition(); - virtual status_t MapBlock(uint32 logicalBlock, uint32 &physicalBlock); + virtual status_t MapBlock(uint32 logicalBlock, off_t &physicalBlock); status_t InitCheck(); diff --git a/src/add-ons/kernel/file_systems/udf/Partition.h b/src/add-ons/kernel/file_systems/udf/Partition.h index db4566a7c0..33cc94f5ca 100644 --- a/src/add-ons/kernel/file_systems/udf/Partition.h +++ b/src/add-ons/kernel/file_systems/udf/Partition.h @@ -19,7 +19,9 @@ namespace Udf { class Partition { public: virtual ~Partition() {} - virtual status_t MapBlock(uint32 logicalBlock, uint32 &physicalBlock) = 0; + virtual status_t MapBlock(uint32 logicalBlock, off_t &physicalBlock) = 0; +// virtual status_t MapExtent(uint32 logicalBlock, uint32 logicalLength, +// uint32 &physicalBlock, uint32 &physicalLength) = 0; }; }; // namespace Udf diff --git a/src/add-ons/kernel/file_systems/udf/PhysicalPartition.cpp b/src/add-ons/kernel/file_systems/udf/PhysicalPartition.cpp index 3179b0e8b1..605e54f8cb 100644 --- a/src/add-ons/kernel/file_systems/udf/PhysicalPartition.cpp +++ b/src/add-ons/kernel/file_systems/udf/PhysicalPartition.cpp @@ -25,12 +25,14 @@ PhysicalPartition::~PhysicalPartition() start of the physical partition. */ status_t -PhysicalPartition::MapBlock(uint32 logicalBlock, uint32 &physicalBlock) +PhysicalPartition::MapBlock(uint32 logicalBlock, off_t &physicalBlock) { + DEBUG_INIT_ETC(CF_PUBLIC, "PhysicalPartition", ("%ld", logicalBlock)); if (logicalBlock >= fLength) return B_BAD_ADDRESS; else { physicalBlock = fStart + logicalBlock; + PRINT(("mapped %ld to %Ld\n", logicalBlock, physicalBlock)); return B_OK; } } diff --git a/src/add-ons/kernel/file_systems/udf/PhysicalPartition.h b/src/add-ons/kernel/file_systems/udf/PhysicalPartition.h index 5a9d161530..baff3bdb75 100644 --- a/src/add-ons/kernel/file_systems/udf/PhysicalPartition.h +++ b/src/add-ons/kernel/file_systems/udf/PhysicalPartition.h @@ -28,7 +28,7 @@ class PhysicalPartition : public Partition { public: PhysicalPartition(uint16 number, uint32 start, uint32 length); virtual ~PhysicalPartition(); - virtual status_t MapBlock(uint32 logicalBlock, uint32 &physicalBlock); + virtual status_t MapBlock(uint32 logicalBlock, off_t &physicalBlock); uint16 Number() const { return fNumber; } uint32 Start() const { return fStart; } diff --git a/src/add-ons/kernel/file_systems/udf/SparablePartition.cpp b/src/add-ons/kernel/file_systems/udf/SparablePartition.cpp index 3ac2393b22..dd71f2f35c 100644 --- a/src/add-ons/kernel/file_systems/udf/SparablePartition.cpp +++ b/src/add-ons/kernel/file_systems/udf/SparablePartition.cpp @@ -40,7 +40,7 @@ SparablePartition::~SparablePartition() the start of the physical partition. */ status_t -SparablePartition::MapBlock(uint32 logicalBlock, uint32 &physicalBlock) +SparablePartition::MapBlock(uint32 logicalBlock, off_t &physicalBlock) { status_t error = InitCheck(); if (!error) { @@ -49,10 +49,10 @@ SparablePartition::MapBlock(uint32 logicalBlock, uint32 &physicalBlock) else { // Check for the logical block in the sparing tables. If not // found, map directly to physical space. - + //physicalBlock = fStart + logicalBlock; //return B_OK; - error = B_NOT_IMPLEMENTED; + error = B_ERROR; } } return error; diff --git a/src/add-ons/kernel/file_systems/udf/SparablePartition.h b/src/add-ons/kernel/file_systems/udf/SparablePartition.h index db0e38088e..ce8f0a8768 100644 --- a/src/add-ons/kernel/file_systems/udf/SparablePartition.h +++ b/src/add-ons/kernel/file_systems/udf/SparablePartition.h @@ -12,6 +12,7 @@ #include +#include "DiskStructures.h" #include "Partition.h" #include "UdfDebug.h" @@ -35,7 +36,7 @@ public: SparablePartition(uint16 number, uint32 start, uint32 length, uint16 packetLength, uint8 tableCount, uint32 *tableLocations); virtual ~SparablePartition(); - virtual status_t MapBlock(uint32 logicalBlock, uint32 &physicalBlock); + virtual status_t MapBlock(uint32 logicalBlock, off_t &physicalBlock); status_t InitCheck(); @@ -46,7 +47,7 @@ public: uint8 TableCount() const { return fTableCount; } //! Maximum number of redundant sparing tables per SparablePartition - static const uint8 kMaxSparingTableCount = 4; + static const uint8 kMaxSparingTableCount = UDF_MAX_SPARING_TABLE_COUNT; private: uint16 fNumber; uint32 fStart; diff --git a/src/add-ons/kernel/file_systems/udf/VirtualPartition.cpp b/src/add-ons/kernel/file_systems/udf/VirtualPartition.cpp index 64375d74ea..d5216060ec 100644 --- a/src/add-ons/kernel/file_systems/udf/VirtualPartition.cpp +++ b/src/add-ons/kernel/file_systems/udf/VirtualPartition.cpp @@ -30,7 +30,7 @@ VirtualPartition::~VirtualPartition() VirtualPartition object's physical partition. */ status_t -VirtualPartition::MapBlock(uint32 logicalBlock, uint32 &physicalBlock) +VirtualPartition::MapBlock(uint32 logicalBlock, off_t &physicalBlock) { return B_NOT_IMPLEMENTED; } diff --git a/src/add-ons/kernel/file_systems/udf/VirtualPartition.h b/src/add-ons/kernel/file_systems/udf/VirtualPartition.h index 1b8db091db..5870f412ca 100644 --- a/src/add-ons/kernel/file_systems/udf/VirtualPartition.h +++ b/src/add-ons/kernel/file_systems/udf/VirtualPartition.h @@ -34,7 +34,7 @@ class VirtualPartition : public Partition { public: VirtualPartition(PhysicalPartition &physicalPartition); virtual ~VirtualPartition(); - virtual status_t MapBlock(uint32 logicalBlock, uint32 &physicalBlock); + virtual status_t MapBlock(uint32 logicalBlock, off_t &physicalBlock); status_t InitCheck(); private: