Sorting source tree a bit
[tpg/acess2.git] / KernelLand / Modules / Filesystems / NTFS / index.h
diff --git a/KernelLand/Modules/Filesystems/NTFS/index.h b/KernelLand/Modules/Filesystems/NTFS/index.h
new file mode 100644 (file)
index 0000000..f45d897
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Acess2 - NTFS Driver
+ * By John Hodge (thePowersGang)
+ * This file is published under the terms of the Acess licence. See the
+ * file COPYING for details.
+ *
+ * index.h - Index Types
+ */
+#ifndef _INDEX_H_
+#define _INDEX_H_
+
+#include "attributes.h"
+
+typedef struct
+{
+       Uint32  EntryOffset;
+       Uint32  IndexLength;
+       Uint32  AllocateSize;
+       Uint8   Flags;
+       Uint8   _reserved[3];
+} PACKED       tNTFS_IndexHeader;
+
+typedef struct
+{
+       Uint32  Type;
+       Uint32  CollationRule;
+       Uint32  IndexBlockSize;
+       Uint8   ClustersPerIndexBlock;
+       Uint8   _reserved[3];
+       tNTFS_IndexHeader       Header;
+} PACKED       tNTFS_IndexRoot;
+
+typedef struct
+{
+       union {
+               struct {
+                       Uint64  File;   // MFT Index of file
+               } PACKED        Dir;
+               /**
+                * Views/Indexes
+                */
+               struct {
+                       Uint16  DataOffset;
+                       Uint16  DataLength;
+                       Uint32  _reserved;
+               } PACKED        ViewIndex;
+       } PACKED        Header;
+       
+       Uint16  Length; //!< Size of the index entry (multiple of 8 bytes)
+       Uint16  KeyLength;      //!< Size of key value
+       Uint16  Flags;  //!< Flags Bitfield
+       Uint16  _reserved;
+       
+       /**
+        * \brief Key Data
+        * \note Only valid if \a Flags does not have \a INDEX_ENTRY_END set
+        * \note In NTFS3 only \a Filename is used
+        */
+       union {
+               tNTFS_Attrib_Filename   Filename;
+               //TODO: more key types
+       } PACKED        Key;
+} PACKED       tNTFS_IndexEntry;
+
+#endif

UCC git Repository :: git.ucc.asn.au