windows-nt/Source/XPSP1/NT/base/fs/utils/diskedit/ofs.hxx

45 lines
1.5 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
#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 ); \
}