diff options
| author | Javier <dev.git@javispedro.com> | 2026-10-26 00:50:06 +0100 |
|---|---|---|
| committer | Javier <dev.git@javispedro.com> | 2026-10-26 00:50:06 +0100 |
| commit | 6b8a368c51082fdd010ef5e1b0be4eb9b5059d1a (patch) | |
| tree | e274d41a8dd5e912e20617a937a1fda5af91f8de /inc/bpb.h | |
| parent | 9b1cf601360fb194047e6dcc2af75c2f38c611ec (diff) | |
| download | chu-6b8a368c51082fdd010ef5e1b0be4eb9b5059d1a.tar.gz chu-6b8a368c51082fdd010ef5e1b0be4eb9b5059d1a.zip | |
refactor common parts into inc/ch375.h and add win9x, linux drivers
Diffstat (limited to 'inc/bpb.h')
| -rw-r--r-- | inc/bpb.h | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/inc/bpb.h b/inc/bpb.h deleted file mode 100644 index 8df04a1..0000000 --- a/inc/bpb.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef BPB_H -#define BPB_H - -#include <stdint.h> -#include "sassert.h" - -#define DOS_BPB_OFFSET_ON_DISK 0x0B - -typedef _Packed struct DOS_BPB_DOS3 -{ - /** Number of bytes per sector. */ - uint16_t bytesPerSector; - /** Number of sectors per cluster. Must be power of 2. */ - uint8_t sectorsPerCluster; - /** Number of reserved sectors. */ - uint16_t reservedSectors; - /** Number of FATs. */ - uint8_t numberOfFATs; - /** Maximum number of entries in the root directory. */ - uint16_t rootDirEntries; - /** Total number of sectors on the drive. If drive larger than 32MB, this field is zero, see numberOfSectorsLarge. */ - uint16_t numberOfSectors; - /** Media descriptor byte. */ - uint8_t mediaType; - /** Number of sectors used by a FAT. */ - uint16_t sectorsPerFAT; - /** Number of sectors per track. */ - uint16_t sectorsPerTrack; - /** Number of heads. */ - uint16_t numberOfHeads; - /** Number of hidden sectors on the drive, from the start of the drive. */ - uint32_t hiddenSectors; - /** Number of sectors, only used if drive > 32MB. */ - uint32_t numberOfSectorsLarge; -} DOS_BPB_DOS3; -STATIC_ASSERT(sizeof(DOS_BPB_DOS3) == 25); - -typedef _Packed struct DOS_BPB_DOS4 -{ - struct DOS_BPB_DOS3; - uint8_t physicalDriveNumber; - uint8_t flags; - uint8_t extendedBootSignature; - uint32_t volumeSerialNumber; - char volumeLabel[11]; - char fsType[8]; -} DOS_BPB_DOS4; -STATIC_ASSERT(sizeof(DOS_BPB_DOS4) == 25 + 26); - -typedef _Packed struct DOS_BPB_FAT32 -{ - struct DOS_BPB_DOS3; - uint32_t sectorPerFatLarge; - uint16_t extendedFlags; - uint16_t version; - uint32_t rootDirCluster; - uint16_t infoSector; - uint16_t backupBootSector; - - char bootFileName[12]; - uint8_t physicalDriveNumber; - uint8_t flags; - uint8_t extendedBootSignature; - uint32_t volumeSerialNumber; - char volumeLabel[11]; - char fsType[8]; -} DOS_BPB_FAT32; -STATIC_ASSERT(sizeof(DOS_BPB_FAT32) == 25 + 54); - -/** Union of all BPB types. Default is DOS4 / FAT16. */ -typedef union DOS_BPB -{ - struct DOS_BPB_DOS3; - struct DOS_BPB_DOS4 fat16; - struct DOS_BPB_FAT32 fat32; -} DOS_BPB; - -typedef enum DOS_BPB_MEDIA_TYPE -{ - DOS_BPB_MEDIA_HDD = 0xF8 -} DOS_BPB_MEDIA_TYPE; - -#endif // BPB_H |
