mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-24 00:18:36 -07:00
VMDK's implementation of .bdrv_get_specific_info() returns information
about its extent files, ostensibly in the form of ImageInfo objects.
However, it does not get this information through
bdrv_query_image_info(), but fills only a select few fields with custom
information that does not always match the fields' purposes.
For example, @format, which is supposed to be a block driver name, is
filled with the extent type, e.g. SPARSE or FLAT.
In ImageInfo, @compressed shows whether the data that can be seen in the
image is stored in compressed form or not. For example, a compressed
qcow2 image will store compressed data in its data file, but when
accessing the qcow2 node, you will see normal data. This is not how
VMDK uses the @compressed field for its extent files: Instead, it
signifies whether accessing the extent file will yield compressed data
(which the VMDK driver then (de-)compresses).
Create a new structure to represent the extent information. This allows
us to clarify the fields' meanings, and it clearly shows that these are
not complete ImageInfo objects. (That is, if a user wants an extent
file's ImageInfo object, they will need to query it separately, and will
not get it from ImageInfoSpecificVmdk.extents.)
Note that this removes the last use of ['ImageInfo'] (i.e. an array of
ImageInfo objects), so the QAPI generator will no longer generate
ImageInfoList by default. However, we use it in qemu-img.c, so we need
to create a dummy object to force the generate to create that type,
similarly to DummyForceArrays in machine.json (introduced in commit
|
||
|---|---|---|
| .. | ||
| acpi.json | ||
| audio.json | ||
| authz.json | ||
| block-core.json | ||
| block-export.json | ||
| block.json | ||
| char.json | ||
| common.json | ||
| compat.json | ||
| control.json | ||
| crypto.json | ||
| dump.json | ||
| error.json | ||
| introspect.json | ||
| job.json | ||
| machine-target.json | ||
| machine.json | ||
| meson.build | ||
| migration.json | ||
| misc-target.json | ||
| misc.json | ||
| net.json | ||
| opts-visitor.c | ||
| pci.json | ||
| pragma.json | ||
| qapi-clone-visitor.c | ||
| qapi-dealloc-visitor.c | ||
| qapi-forward-visitor.c | ||
| qapi-schema.json | ||
| qapi-type-helpers.c | ||
| qapi-util.c | ||
| qapi-visit-core.c | ||
| qdev.json | ||
| qmp-dispatch.c | ||
| qmp-event.c | ||
| qmp-registry.c | ||
| qobject-input-visitor.c | ||
| qobject-output-visitor.c | ||
| qom.json | ||
| rdma.json | ||
| replay.json | ||
| rocker.json | ||
| run-state.json | ||
| sockets.json | ||
| stats.json | ||
| string-input-visitor.c | ||
| string-output-visitor.c | ||
| tpm.json | ||
| trace-events | ||
| trace.h | ||
| trace.json | ||
| transaction.json | ||
| ui.json | ||
| virtio.json | ||
| yank.json | ||