1#ifndef DISK_IMAGE_UTILS_HH
2#define DISK_IMAGE_UTILS_HH
12class SectorAccessibleDisk;
22 std::array<uint8_t, 8>
name;
36 std::array<uint8_t, 512-30>
pad;
40 std::array<uint8_t, 9>
pad1;
42 std::array<uint8_t, 512-43>
pad2;
57static_assert(
sizeof(MSXBootSector) == 512);
76 [[nodiscard]]
auto base()
const {
return subspan<8>(
filename, 0); }
77 [[nodiscard]]
auto ext ()
const {
return subspan<3>(
filename, 8); }
98static_assert(
alignof(
Partition) == 1,
"must not have alignment requirements");
103 std::array<Partition, 31>
part;
110 std::array<char, 435>
pad;
124 std::array<uint8_t, 512>
raw;
134namespace DiskImageUtils {
bool hasPartitionTable(SectorAccessibleDisk &disk)
Check whether the given disk is partitioned.
void checkSupportedPartition(SectorAccessibleDisk &disk, unsigned partition)
Check whether partition is of type FAT12 or FAT16.
Partition & getPartition(SectorAccessibleDisk &disk, unsigned partition, SectorBuffer &buf)
Gets the requested partition.
void format(SectorAccessibleDisk &disk, MSXBootSectorType bootType)
Format the given disk (= a single partition).
unsigned partition(SectorAccessibleDisk &disk, std::span< const unsigned > sizes, MSXBootSectorType bootType)
Write a partition table to the given disk and format each partition.
This file implemented 3 utility functions:
std::array< uint8_t, 512-30 > pad
struct openmsx::MSXBootSector::@1::@2 dos1
struct openmsx::MSXBootSector::@1::@4 extended
struct openmsx::MSXBootSector::@1::@3 dos2
uint8_t extendedBootSignature
std::array< uint8_t, 3 > jumpCode
Endian::L16 hiddenSectors
std::array< uint8_t, 8 > fileSystemType
std::array< uint8_t, 8 > name
std::array< uint8_t, 11 > volumeLabel
Endian::UA_L16 dirEntries
union openmsx::MSXBootSector::@1 params
std::array< uint8_t, 512-62 > padding
std::array< uint8_t, 512-43 > pad2
std::array< uint8_t, 9 > pad1
Endian::L32 hiddenSectors
std::array< uint8_t, 10 > reserved
static constexpr uint8_t ATT_READONLY
static constexpr uint8_t ATT_SYSTEM
static constexpr uint8_t ATT_VOLUME
bool operator==(const MSXDirEntry &other) const =default
static constexpr uint8_t ATT_ARCHIVE
static constexpr uint8_t ATT_REGULAR
static constexpr uint8_t ATT_DIRECTORY
std::array< char, 8+3 > filename
static constexpr uint8_t ATT_HIDDEN
std::array< char, 435 > pad
std::array< Partition, 4 > part
std::array< char, 11 > header
std::array< Partition, 31 > part
std::array< char, 3 > pad
std::array< char, 11 > header
PartitionTableSunrise ptSunrise
std::array< uint8_t, 512 > raw
std::array< MSXDirEntry, 16 > dirEntry
PartitionTableNextor ptNextor