x86_64: Bugfixing
[tpg/acess2.git] / Modules / Filesystems / NTFS / common.h
index 8d2a9ec..598120d 100644 (file)
@@ -12,6 +12,8 @@
 #include <acess.h>
 #include <vfs.h>
 
+typedef Uint16 WCHAR;
+
 // === STRUCTURES ===
 /**
  * In-memory representation of an NTFS Disk
 typedef struct sNTFS_Disk
 {
         int    FD;
+        int    CacheHandle;
         
         int    ClusterSize;
        Uint64  MFTBase;
+       Uint32  MFTRecSize;
        
        tVFS_Node       RootNode;
 }      tNTFS_Disk;
@@ -34,31 +38,35 @@ typedef struct sNTFS_BootSector
        Uint16  BytesPerSector;
        Uint8   SectorsPerCluster;
        
-       // 14
+       // 0xE
        Uint8   Unused[7];
        Uint8   MediaDescriptor;
        Uint16  Unused2;
        Uint16  SectorsPerTrack;
+       Uint16  Heads;
        
+       // 0x1C
        Uint64  Unused3;
-       Uint32  Unknown;
+       Uint32  Unkown; // Usually 0x00800080 (according to Linux docs)
        
-       // 38
+       // 0x28
        Uint64  TotalSectorCount;       // Size of volume in sectors
        Uint64  MFTStart;       // Logical Cluster Number of Cluster 0 of MFT
        Uint64  MFTMirrorStart; // Logical Cluster Number of Cluster 0 of MFT Backup
        
-       // 60
+       // 0x40
        // If either of these are -ve, the size can be obtained via
        // SizeInBytes = 2^(-1 * Value)
-       Uint32  ClustersPerMFTRecord;
-       Uint32  ClustersPerIndexRecord;
+       Sint8   ClustersPerMFTRecord;
+       Uint8   Unused4[3];
+       Sint8   ClustersPerIndexRecord;
+       Uint8   Unused5[3];
        
        Uint64  SerialNumber;
        
-       Uint8   Padding[512-72];
+       Uint8   Padding[512-0x50];
        
-}      tNTFS_BootSector;
+} PACKED       tNTFS_BootSector;
 
 /**
  * FILE header, an entry in the MFT
@@ -100,7 +108,7 @@ typedef struct sNTFS_FILE_Header
                }       All;
        } OSDep;        
        
-}      tNTFS_FILE_Header;
+} PACKED       tNTFS_FILE_Header;
 
 /**
  * File Attribute, follows the FILE header
@@ -140,6 +148,6 @@ typedef struct sNTFS_FILE_Attrib
                        // Data Runs
                }       NonResident;
        };
-}      tNTFS_FILE_Attrib;
+} PACKED       tNTFS_FILE_Attrib;
 
 #endif

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