This series was really just supposed to enable guests to use the
special "host" GIC version, but I ended up changing a bunch of other
stuff and adding a whole lot of new test cases.
I've also made it so the GIC availability is always reflected in the
domain XML, the same way other implicit devices and features work.
The GIC-related definitions are in their own file: depending on
whether we end up probing for host GIC support ourselves or relying
on QEMU this might turn out to be a huge overkill :)
Cheers.
Andrea Bolognani (7):
gic: Introduce virGICVersion enumeration
schema: List allowed GIC versions
conf: Use virGICVersion enumeration in virDomainDef
qemu: Default to GIC v2
qemu: Always enable GIC on ARM virt machines
tests: Reorganize and simplify GIC test cases
tests: Add more GIC test cases
docs/schemas/domaincommon.rng | 6 +++-
src/Makefile.am | 1 +
src/conf/domain_conf.c | 15 ++++----
src/conf/domain_conf.h | 3 +-
src/libvirt_private.syms | 5 +++
src/qemu/qemu_command.c | 8 +++--
src/qemu/qemu_domain.c | 29 ++++++++++++++++
src/util/virgic.c | 33 ++++++++++++++++++
src/util/virgic.h | 38 ++++++++++++++++++++
.../qemuxml2argv-aarch64-aavmf-virtio-mmio.xml | 1 +
.../qemuxml2argv-aarch64-gic-default.args | 1 +
.../qemuxml2argv-aarch64-gic-default.xml | 22 ++++++++++++
...gic.args => qemuxml2argv-aarch64-gic-host.args} | 13 +++----
.../qemuxml2argv-aarch64-gic-host.xml | 22 ++++++++++++
.../qemuxml2argv-aarch64-gic-invalid.xml | 22 ++++++++++++
.../qemuxml2argv-aarch64-gic-none.args | 1 +
.../qemuxml2argv-aarch64-gic-none.xml | 19 ++++++++++
.../qemuxml2argv-aarch64-gic-not-arm.xml | 22 ++++++++++++
.../qemuxml2argv-aarch64-gic-not-virt.xml | 22 ++++++++++++
...gicv3.args => qemuxml2argv-aarch64-gic-v2.args} | 12 +++----
...h64-gic.xml => qemuxml2argv-aarch64-gic-v2.xml} | 14 ++------
.../qemuxml2argv-aarch64-gic-v3.args | 20 +++++++++++
...4-gicv3.xml => qemuxml2argv-aarch64-gic-v3.xml} | 14 ++------
tests/qemuxml2argvtest.c | 40 ++++++++++++++++++----
.../qemuxml2xmlout-aarch64-gic-default.xml | 1 +
.../qemuxml2xmlout-aarch64-gic-none.xml | 1 +
tests/qemuxml2xmltest.c | 7 ++--
27 files changed, 331 insertions(+), 61 deletions(-)
create mode 100644 src/util/virgic.c
create mode 100644 src/util/virgic.h
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-default.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-default.xml
rename tests/qemuxml2argvdata/{qemuxml2argv-aarch64-gic.args =>
qemuxml2argv-aarch64-gic-host.args} (57%)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-host.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-invalid.xml
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-not-arm.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-not-virt.xml
rename tests/qemuxml2argvdata/{qemuxml2argv-aarch64-gicv3.args =>
qemuxml2argv-aarch64-gic-v2.args} (55%)
rename tests/qemuxml2argvdata/{qemuxml2argv-aarch64-gic.xml =>
qemuxml2argv-aarch64-gic-v2.xml} (61%)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.args
rename tests/qemuxml2argvdata/{qemuxml2argv-aarch64-gicv3.xml =>
qemuxml2argv-aarch64-gic-v3.xml} (61%)
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-default.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none.xml
--
2.5.0