#ifndef __DISKDETAILS_H__ #define __DISKDETAILS_H__ #ifdef __cplusplus #include #include #include namespace icsneo { enum class DiskLayout : uint8_t { Spanned = 0, RAID0 = 1 }; struct DiskInfo { bool present; // Disk is connected bool initialized; // Disk is initialized bool formatted; // Disk is formatted uint64_t sectors; uint32_t bytesPerSector; uint64_t size() const { return sectors * bytesPerSector; } }; struct DiskDetails { DiskLayout layout; bool fullFormat; std::vector disks; static std::vector Encode(const DiskDetails& config); static std::shared_ptr Decode(const std::vector& bytes, size_t diskCount, device_eventhandler_t report); }; } // namespace icsneo #endif // __cplusplus #endif