Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / drivers / filesystems / fs_rec / ext2.h
diff --git a/drivers/filesystems/fs_rec/ext2.h b/drivers/filesystems/fs_rec/ext2.h
new file mode 100644 (file)
index 0000000..7ff0303
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * COPYRIGHT:        See COPYING in the top level directory
+ * PROJECT:          ReactOS File System Recognizer
+ * FILE:             drivers/filesystems/fs_rec/ext2.h
+ * PURPOSE:          EXT2 Header File
+ * PROGRAMMER:       Pierre Schweitzer (pierre@reactos.org)
+ */
+
+#include <pshpack1.h>
+typedef struct _EXT2_SUPER_BLOCK {
+    ULONG InodesCount;
+    ULONG BlocksCount;
+    ULONG ReservedBlocksCount;
+    ULONG FreeBlocksCount;
+    ULONG FreeInodesCount;
+    ULONG FirstDataBlock;
+    ULONG LogBlockSize;
+    LONG LogFragSize;
+    ULONG BlocksPerGroup;
+    ULONG FragsPerGroup;
+    ULONG InodesPerGroup;
+    ULONG MountTime;
+    ULONG WriteTime;
+    USHORT MountCount;
+    SHORT MaxMountCount;
+    USHORT Magic;
+    USHORT State;
+    USHORT Errors;
+    USHORT MinorRevLevel;
+    ULONG LastCheck;
+    ULONG CheckInterval;
+    ULONG CreatorOS;
+    ULONG RevLevel;
+    USHORT DefResUid;
+    USHORT DefResGid;
+        // Partial
+} EXT2_SUPER_BLOCK, *PEXT2_SUPER_BLOCK;
+#include <poppack.h>
+
+C_ASSERT(FIELD_OFFSET(EXT2_SUPER_BLOCK, FreeInodesCount) == 0x10);
+C_ASSERT(FIELD_OFFSET(EXT2_SUPER_BLOCK, BlocksPerGroup) == 0x20);
+C_ASSERT(FIELD_OFFSET(EXT2_SUPER_BLOCK, WriteTime) == 0x30);
+C_ASSERT(FIELD_OFFSET(EXT2_SUPER_BLOCK, LastCheck) == 0x40);
+C_ASSERT(FIELD_OFFSET(EXT2_SUPER_BLOCK, DefResUid) == 0x50);
+
+#define EXT2_SUPER_MAGIC 0xEF53
+#define EXT2_SB_OFFSET 0x400
+#define EXT2_SB_SIZE 0x400