[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 4/9] block: vhdx - log support struct and defines
From: |
Jeff Cody |
Subject: |
[Qemu-devel] [PATCH 4/9] block: vhdx - log support struct and defines |
Date: |
Wed, 24 Jul 2013 13:54:40 -0400 |
This adds some magic number defines, and internal structure
definitions for VHDX log replay support.
Signed-off-by: Jeff Cody <address@hidden>
---
block/vhdx.h | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/block/vhdx.h b/block/vhdx.h
index c8d8593..2db6615 100644
--- a/block/vhdx.h
+++ b/block/vhdx.h
@@ -151,7 +151,10 @@ typedef struct QEMU_PACKED VHDXRegionTableEntry {
/* ---- LOG ENTRY STRUCTURES ---- */
+#define VHDX_LOG_MIN_SIZE (1024*1024)
+#define VHDX_LOG_SECTOR_SIZE 4096
#define VHDX_LOG_HDR_SIZE 64
+#define VHDX_LOG_SIGNATURE 0x65676f6c
typedef struct QEMU_PACKED VHDXLogEntryHeader {
uint32_t signature; /* "loge" in ASCII */
uint32_t checksum; /* CRC-32C hash of the 64KB table */
@@ -174,7 +177,8 @@ typedef struct QEMU_PACKED VHDXLogEntryHeader {
} VHDXLogEntryHeader;
#define VHDX_LOG_DESC_SIZE 32
-
+#define VHDX_LOG_DESC_SIGNATURE 0x63736564
+#define VHDX_LOG_ZERO_SIGNATURE 0x6f72657a
typedef struct QEMU_PACKED VHDXLogDescriptor {
uint32_t signature; /* "zero" or "desc" in ASCII */
union {
@@ -194,6 +198,7 @@ typedef struct QEMU_PACKED VHDXLogDescriptor {
vhdx_log_entry_header */
} VHDXLogDescriptor;
+#define VHDX_LOG_DATA_SIGNATURE 0x61746164
typedef struct QEMU_PACKED VHDXLogDataSector {
uint32_t data_signature; /* "data" in ASCII */
uint32_t sequence_high; /* 4 MSB of 8 byte sequence_number */
@@ -318,6 +323,18 @@ typedef struct VHDXMetadataEntries {
uint16_t present;
} VHDXMetadataEntries;
+typedef struct VHDXLogEntries {
+ uint64_t offset;
+ uint64_t length;
+ uint32_t head;
+ uint32_t tail;
+} VHDXLogEntries;
+
+typedef struct VHDXLogEntryInfo {
+ uint64_t sector_start;
+ uint32_t desc_count;
+} VHDXLogEntryInfo;
+
typedef struct BDRVVHDXState {
CoMutex lock;
@@ -351,6 +368,8 @@ typedef struct BDRVVHDXState {
MSGUID session_guid;
+ VHDXLogEntries log;
+
VHDXParentLocatorHeader parent_header;
VHDXParentLocatorEntry *parent_entries;
--
1.8.1.4
- [Qemu-devel] [PATCH 0/9] VHDX log replay and write support, Jeff Cody, 2013/07/24
- [Qemu-devel] [PATCH 1/9] block: vhdx - minor comments and typo correction., Jeff Cody, 2013/07/24
- [Qemu-devel] [PATCH 3/9] block: vhdx code movement - VHDXMetadataEntries and BDRVVHDXState to header., Jeff Cody, 2013/07/24
- [Qemu-devel] [PATCH 2/9] block: vhdx - add header update capability., Jeff Cody, 2013/07/24
- [Qemu-devel] [PATCH 4/9] block: vhdx - log support struct and defines,
Jeff Cody <=
- [Qemu-devel] [PATCH 5/9] block: vhdx - break endian translation functions out, Jeff Cody, 2013/07/24
- [Qemu-devel] [PATCH 6/9] block: vhdx - update log guid in header, and first write tracker, Jeff Cody, 2013/07/24
- [Qemu-devel] [PATCH 7/9] block: vhdx - log parsing, replay, and flush support, Jeff Cody, 2013/07/24
- [Qemu-devel] [PATCH 8/9] block: vhdx - add log write support, Jeff Cody, 2013/07/24