summaryrefslogtreecommitdiff
path: root/block/vhdx.h
diff options
context:
space:
mode:
Diffstat (limited to 'block/vhdx.h')
-rw-r--r--block/vhdx.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/block/vhdx.h b/block/vhdx.h
index 584ebec8fc..d9065595fc 100644
--- a/block/vhdx.h
+++ b/block/vhdx.h
@@ -230,6 +230,7 @@ typedef struct QEMU_PACKED VHDXLogDataSector {
other bits are reserved */
#define VHDX_BAT_STATE_BIT_MASK 0x07
#define VHDX_BAT_FILE_OFF_BITS (64 - 44)
+#define VHDX_BAT_FILE_OFF_MASK 0xFFFFFFFFFFF00000 /* upper 44 bits */
typedef uint64_t VHDXBatEntry;
/* ---- METADATA REGION STRUCTURES ---- */
@@ -334,6 +335,12 @@ typedef struct VHDXLogEntries {
uint32_t tail;
} VHDXLogEntries;
+typedef struct VHDXRegionEntry {
+ uint64_t start;
+ uint64_t end;
+ QLIST_ENTRY(VHDXRegionEntry) entries;
+} VHDXRegionEntry;
+
typedef struct BDRVVHDXState {
CoMutex lock;
@@ -374,6 +381,8 @@ typedef struct BDRVVHDXState {
VHDXParentLocatorEntry *parent_entries;
Error *migration_blocker;
+
+ QLIST_HEAD(VHDXRegionHead, VHDXRegionEntry) regions;
} BDRVVHDXState;
void vhdx_guid_generate(MSGUID *guid);