#include "drive.hxx" #include "bpb.hxx" #define MAXIMUM_VOLUME_LABEL_LENGTH (32 * sizeof(WCHAR)) extern "C" { #include "lfs.h" #include "ofsdisk.h" }; typedef struct _DSKBPB { USHORT BytesPerSector; UCHAR SectorsPerCluster; USHORT ReservedSectors; UCHAR Fats; USHORT RootEntries; USHORT Sectors16; UCHAR Media; USHORT SectorsPerFat; USHORT SectorsPerTrack; USHORT Heads; ULONG HiddenSectors; ULONG Sectors32; } DSKBPB; // // This macro takes a Packed BPB and fills in its Unpacked equivalent // #define UnpackOfsBios(Bios,Pbios) { \ CopyUchar2(&((Bios)->BytesPerSector), (Pbios)->BytesPerSector ); \ CopyUchar1(&((Bios)->SectorsPerCluster), (Pbios)->SectorsPerCluster); \ CopyUchar2(&((Bios)->ReservedSectors), (Pbios)->ReservedSectors ); \ CopyUchar1(&((Bios)->Fats), (Pbios)->Fats ); \ CopyUchar2(&((Bios)->RootEntries), (Pbios)->RootEntries ); \ CopyUchar2(&((Bios)->Sectors16), (Pbios)->Sectors16 ); \ CopyUchar1(&((Bios)->Media), (Pbios)->Media ); \ CopyUchar2(&((Bios)->SectorsPerFat), (Pbios)->SectorsPerFat ); \ CopyUchar2(&((Bios)->SectorsPerTrack), (Pbios)->SectorsPerTrack ); \ CopyUchar2(&((Bios)->Heads), (Pbios)->Heads ); \ CopyUchar4(&((Bios)->HiddenSectors), (Pbios)->HiddenSectors ); \ CopyUchar4(&((Bios)->Sectors32), (Pbios)->Sectors32 ); \ }