Annotation of truecrypt/boot/windows/bootdiskio.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  Copyright (c) 2008 TrueCrypt Foundation. All rights reserved.
                      3: 
                      4:  Governed by the TrueCrypt License 2.4 the full text of which is contained
                      5:  in the file License.txt included in TrueCrypt binary and source code
                      6:  distribution packages.
                      7: */
                      8: 
                      9: #ifndef TC_HEADER_Boot_BootDiskIo
                     10: #define TC_HEADER_Boot_BootDiskIo
                     11: 
                     12: #include "Bios.h"
                     13: 
                     14: #pragma pack(1)
                     15: 
                     16: struct PartitionEntryMBR
                     17: {
                     18:        byte BootIndicator;
                     19: 
                     20:        byte StartHead;
                     21:        byte StartCylSector;
                     22:        byte StartCylinder;
                     23: 
                     24:        byte Type;
                     25: 
                     26:        byte EndHead;
                     27:        byte EndSector;
                     28:        byte EndCylinder;
                     29: 
                     30:        uint32 StartLBA;
                     31:        uint32 SectorCountLBA;
                     32: };
                     33: 
                     34: struct MBR
                     35: {
                     36:        byte Code[446];
                     37:        PartitionEntryMBR Partitions[4];
                     38:        uint16 Signature;
                     39: };
                     40: 
                     41: struct BiosLbaPacket
                     42: {
                     43:        byte Size;
                     44:        byte Reserved;
                     45:        uint16 SectorCount;
                     46:        uint32 Buffer;
                     47:        uint64 Sector;
                     48: };
                     49: 
                     50: #pragma pack()
                     51: 
                     52: 
                     53: struct ChsAddress
                     54: {
                     55:        uint16 Cylinder;
                     56:        byte Head;
                     57:        byte Sector;
                     58: };
                     59: 
                     60: struct Partition
                     61: {
                     62:        byte Number;
                     63:        byte Drive;
                     64:        bool Active;
                     65:        uint64 EndSector;
                     66:        bool Primary;
                     67:        uint64 SectorCount;
                     68:        uint64 StartSector;
                     69:        ChsAddress StartChsAddress;
                     70:        byte Type;
                     71: };
                     72: 
                     73: struct DriveGeometry
                     74: {
                     75:        uint16 Cylinders;
                     76:        byte Heads;
                     77:        byte Sectors;
                     78: };
                     79: 
                     80: 
                     81: void ChsToLba (const DriveGeometry &geometry, const ChsAddress &chs, uint64 &lba);
                     82: BiosResult GetActivePartition (byte drive, Partition &partition, size_t &partitionCount, bool silent);
                     83: BiosResult GetDriveGeometry (byte drive, DriveGeometry &geometry, bool silent = false);
                     84: BiosResult GetDrivePartitions (byte drive, Partition *partitionArray, size_t partitionArrayCapacity, size_t &partitionCount, bool activeOnly = false, bool silent = false);
                     85: void LbaToChs (const DriveGeometry &geometry, const uint64 &lba, ChsAddress &chs);
                     86: void Print (const ChsAddress &chs);
                     87: void PrintDiskError (BiosResult error, bool write, byte drive, const uint64 *sector, const ChsAddress *chs = nullptr);
                     88: BiosResult ReadMBR (byte drive, MBR &mbr, bool silent = false);
                     89: BiosResult ReadSectors (byte *buffer, byte drive, const uint64 &sector, uint16 sectorCount, bool silent = false);
                     90: BiosResult ReadSectors (byte *buffer, byte drive, const ChsAddress &chs, byte sectorCount, bool silent = false);
                     91: BiosResult ReadWriteSectors (bool write, uint16 bufferSegment, uint16 bufferOffset, byte drive, const uint64 &sector, uint16 sectorCount, bool silent);
                     92: BiosResult WriteSectors (byte *buffer, byte drive, const uint64 &sector, uint16 sectorCount, bool silent = false);
                     93: BiosResult WriteSectors (byte *buffer, byte drive, const ChsAddress &chs, byte sectorCount, bool silent = false);
                     94: 
                     95: #endif // TC_HEADER_Boot_BootDiskIo

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.