summaryrefslogtreecommitdiffhomepage
path: root/Private/FSKit
diff options
context:
space:
mode:
authorAmlal <amlalelmahrouss@icloud.com>2024-04-29 15:01:06 +0000
committerAmlal <amlalelmahrouss@icloud.com>2024-04-29 15:01:06 +0000
commita06c8a375f0c5f5e3613e9fe8228cebf442731ba (patch)
tree84b30c251e1b444873f4723ecab047689526e9f0 /Private/FSKit
parent14f10cc0b35155ddb19ec9069ebb884246e61dcf (diff)
parenta21859d722597e4eb1216a4a48d08d8f2659b514 (diff)
Merged in MHR-18 (pull request #9)
MHR-18
Diffstat (limited to 'Private/FSKit')
-rw-r--r--Private/FSKit/NewFS.hxx23
1 files changed, 16 insertions, 7 deletions
diff --git a/Private/FSKit/NewFS.hxx b/Private/FSKit/NewFS.hxx
index 2a783b11..619c6c6b 100644
--- a/Private/FSKit/NewFS.hxx
+++ b/Private/FSKit/NewFS.hxx
@@ -38,13 +38,13 @@ default.
#define kNewFSIdentLen 8
#define kNewFSIdent " NewFS"
-#define kNewFSPadLen 408
+#define kNewFSPadLen 400
/// @brief Partition GUID on EPM and GPT disks.
#define kNewFSUUID "@{DD997393-9CCE-4288-A8D5-C0FDE3908DBE}"
-#define kNewFSVersionInteger 0x122
-#define kNewFSVerionString "1.2.2"
+#define kNewFSVersionInteger 0x123
+#define kNewFSVerionString "1.23"
/// @brief Standard fork types.
#define kNewFSDataFork "data"
@@ -83,7 +83,7 @@ default.
/// Start After the PM headers, pad 1024 bytes.
#define kNewFSAddressAsLba (512)
-#define kNewFSCatalogStartAddress (1024 + sizeof(NewPartitionBlock))
+#define kNewFSCatalogStartAddress (1024 + sizeof(NewPartitionBlock) + sizeof(NewCatalog))
#define kResourceTypeDialog 10
#define kResourceTypeString 11
@@ -96,7 +96,7 @@ default.
#define kNewFSFlagUnallocated 0x00
#define kNewFSFlagCreated 0x0F
-#define kNewFSMimeNameLen (216)
+#define kNewFSMimeNameLen (200)
typedef NewOS::Char NewCharType;
@@ -117,6 +117,12 @@ struct PACKED NewCatalog final {
NewOS::Int32 Flags;
NewOS::Int32 Kind;
+ /// Size of the data fork.
+ NewOS::Lba DataForkSize;
+
+ /// Size of all resource forks.
+ NewOS::Lba ResourceForkOverallSize;
+
NewOS::Lba DataFork;
NewOS::Lba ResourceFork;
@@ -164,6 +170,8 @@ struct PACKED NewPartitionBlock final {
NewOS::SizeT SectorCount;
NewOS::SizeT SectorSize;
+ NewOS::UInt64 Version;
+
NewOS::Char Pad[kNewFSPadLen];
};
@@ -214,7 +222,7 @@ class NewFSParser final {
_Output Void CloseFork(_Input NewFork* fork);
- _Output NewCatalog* FindCatalog(_Input const char* catalogName);
+ _Output NewCatalog* FindCatalog(_Input const char* catalogName, Lba& outLba);
_Output NewCatalog* GetCatalog(_Input const char* name);
@@ -224,7 +232,8 @@ class NewFSParser final {
_Output NewCatalog* CreateCatalog(_Input const char* name);
- bool WriteCatalog(_Input _Output NewCatalog* catalog, voidPtr data);
+ bool WriteCatalog(_Input _Output NewCatalog* catalog,
+ voidPtr data, SizeT sizeOfData);
VoidPtr ReadCatalog(_Input _Output NewCatalog* catalog,
SizeT dataSz);