qcow2: QcowHeaderExtension print names for extension magics
Suggested-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20200606081806.23897-13-vsementsov@virtuozzo.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
a9e750e1ce
commit
aef87784f9
@ -25,7 +25,7 @@ refcount_order 4
|
||||
header_length 72
|
||||
|
||||
Header extension:
|
||||
magic 0x12345678
|
||||
magic 0x12345678 (<unknown>)
|
||||
length 31
|
||||
data 'This is a test header extension'
|
||||
|
||||
@ -53,7 +53,7 @@ refcount_order 4
|
||||
header_length 72
|
||||
|
||||
Header extension:
|
||||
magic 0x12345678
|
||||
magic 0x12345678 (<unknown>)
|
||||
length 31
|
||||
data 'This is a test header extension'
|
||||
|
||||
@ -81,12 +81,12 @@ refcount_order 4
|
||||
header_length 72
|
||||
|
||||
Header extension:
|
||||
magic 0xe2792aca
|
||||
magic 0xe2792aca (Backing format)
|
||||
length 11
|
||||
data 'host_device'
|
||||
|
||||
Header extension:
|
||||
magic 0x12345678
|
||||
magic 0x12345678 (<unknown>)
|
||||
length 31
|
||||
data 'This is a test header extension'
|
||||
|
||||
@ -116,12 +116,12 @@ refcount_order 4
|
||||
header_length 112
|
||||
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
Header extension:
|
||||
magic 0x12345678
|
||||
magic 0x12345678 (<unknown>)
|
||||
length 31
|
||||
data 'This is a test header extension'
|
||||
|
||||
@ -149,12 +149,12 @@ refcount_order 4
|
||||
header_length 112
|
||||
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
Header extension:
|
||||
magic 0x12345678
|
||||
magic 0x12345678 (<unknown>)
|
||||
length 31
|
||||
data 'This is a test header extension'
|
||||
|
||||
@ -182,17 +182,17 @@ refcount_order 4
|
||||
header_length 112
|
||||
|
||||
Header extension:
|
||||
magic 0xe2792aca
|
||||
magic 0xe2792aca (Backing format)
|
||||
length 11
|
||||
data 'host_device'
|
||||
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
Header extension:
|
||||
magic 0x12345678
|
||||
magic 0x12345678 (<unknown>)
|
||||
length 31
|
||||
data 'This is a test header extension'
|
||||
|
||||
|
@ -25,7 +25,7 @@ incompatible_features []
|
||||
compatible_features []
|
||||
autoclear_features [63]
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
@ -37,7 +37,7 @@ incompatible_features []
|
||||
compatible_features []
|
||||
autoclear_features []
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
|
@ -25,7 +25,7 @@ refcount_order 4
|
||||
header_length 112
|
||||
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
@ -83,7 +83,7 @@ refcount_order 4
|
||||
header_length 112
|
||||
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
@ -139,7 +139,7 @@ refcount_order 4
|
||||
header_length 112
|
||||
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
@ -194,7 +194,7 @@ refcount_order 4
|
||||
header_length 112
|
||||
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
@ -263,7 +263,7 @@ refcount_order 4
|
||||
header_length 112
|
||||
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
@ -325,7 +325,7 @@ refcount_order 4
|
||||
header_length 112
|
||||
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
@ -354,7 +354,7 @@ refcount_order 4
|
||||
header_length 112
|
||||
|
||||
Header extension:
|
||||
magic 0x6803f857
|
||||
magic 0x6803f857 (Feature table)
|
||||
length 336
|
||||
data <binary>
|
||||
|
||||
|
@ -39,6 +39,12 @@ class Flags64(Qcow2Field):
|
||||
return str(bits)
|
||||
|
||||
|
||||
class Enum(Qcow2Field):
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.value:#x} ({self.mapping.get(self.value, "<unknown>")})'
|
||||
|
||||
|
||||
class Qcow2StructMeta(type):
|
||||
|
||||
# Mapping from c types to python struct format
|
||||
@ -99,8 +105,17 @@ class Qcow2Struct(metaclass=Qcow2StructMeta):
|
||||
|
||||
class QcowHeaderExtension(Qcow2Struct):
|
||||
|
||||
class Magic(Enum):
|
||||
mapping = {
|
||||
0xe2792aca: 'Backing format',
|
||||
0x6803f857: 'Feature table',
|
||||
0x0537be77: 'Crypto header',
|
||||
0x23852875: 'Bitmaps',
|
||||
0x44415441: 'Data file'
|
||||
}
|
||||
|
||||
fields = (
|
||||
('u32', '{:#x}', 'magic'),
|
||||
('u32', Magic, 'magic'),
|
||||
('u32', '{}', 'length')
|
||||
# length bytes of data follows
|
||||
# then padding to next multiply of 8
|
||||
|
Loading…
Reference in New Issue
Block a user