[libvirt] [glib PATCH 0/3] Add ich9 sound device + _domain_os_get_machine()

The first patch is needed to properly support Q35 machine type on GNOME Boxes (or any other app using libvirt-glib) as the ICH9 audio device should be used together with Q35 machine type, The second patch is mostly a convenience for the apps and the third one just adds a test case for the second. Fabiano Fidêncio (3): gconfig-domain-sound: Add ich9 sound device gconfig: add _domain_os_get_machine() tests: Add testes for _domain_os_{set,get}_machine() libvirt-gconfig/libvirt-gconfig-domain-os.c | 7 +++++++ libvirt-gconfig/libvirt-gconfig-domain-os.h | 1 + libvirt-gconfig/libvirt-gconfig-domain-sound.h | 3 ++- libvirt-gconfig/libvirt-gconfig.sym | 1 + tests/test-gconfig.c | 2 ++ tests/xml/gconfig-domain-os.xml | 2 +- 6 files changed, 14 insertions(+), 2 deletions(-) -- 2.19.1

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- libvirt-gconfig/libvirt-gconfig-domain-sound.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libvirt-gconfig/libvirt-gconfig-domain-sound.h b/libvirt-gconfig/libvirt-gconfig-domain-sound.h index 8779754..41b0122 100644 --- a/libvirt-gconfig/libvirt-gconfig-domain-sound.h +++ b/libvirt-gconfig/libvirt-gconfig-domain-sound.h @@ -61,7 +61,8 @@ typedef enum { GVIR_CONFIG_DOMAIN_SOUND_MODEL_ES1370, GVIR_CONFIG_DOMAIN_SOUND_MODEL_PCSPK, GVIR_CONFIG_DOMAIN_SOUND_MODEL_AC97, - GVIR_CONFIG_DOMAIN_SOUND_MODEL_ICH6 + GVIR_CONFIG_DOMAIN_SOUND_MODEL_ICH6, + GVIR_CONFIG_DOMAIN_SOUND_MODEL_ICH9 } GVirConfigDomainSoundModel; GType gvir_config_domain_sound_get_type(void); -- 2.19.1

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- libvirt-gconfig/libvirt-gconfig-domain-os.c | 7 +++++++ libvirt-gconfig/libvirt-gconfig-domain-os.h | 1 + libvirt-gconfig/libvirt-gconfig.sym | 1 + 3 files changed, 9 insertions(+) diff --git a/libvirt-gconfig/libvirt-gconfig-domain-os.c b/libvirt-gconfig/libvirt-gconfig-domain-os.c index f12e1e7..ecbf5b3 100644 --- a/libvirt-gconfig/libvirt-gconfig-domain-os.c +++ b/libvirt-gconfig/libvirt-gconfig-domain-os.c @@ -306,6 +306,13 @@ void gvir_config_domain_os_set_arch(GVirConfigDomainOs *os, const char *arch) xmlNewProp(os_type_node, (xmlChar*)"arch", (xmlChar*)arch); } +const char *gvir_config_domain_os_get_machine(GVirConfigDomainOs *os) +{ + return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(os), + "type", + "machine"); +} + void gvir_config_domain_os_set_machine(GVirConfigDomainOs *os, const char *machine) { xmlNodePtr os_node; diff --git a/libvirt-gconfig/libvirt-gconfig-domain-os.h b/libvirt-gconfig/libvirt-gconfig-domain-os.h index b9b93a6..fe17dd4 100644 --- a/libvirt-gconfig/libvirt-gconfig-domain-os.h +++ b/libvirt-gconfig/libvirt-gconfig-domain-os.h @@ -85,6 +85,7 @@ GVirConfigDomainOs *gvir_config_domain_os_new_from_xml(const gchar *xml, GError void gvir_config_domain_os_set_os_type(GVirConfigDomainOs *os, GVirConfigDomainOsType type); GVirConfigDomainOsType gvir_config_domain_os_get_os_type(GVirConfigDomainOs *os); const char *gvir_config_domain_os_get_arch(GVirConfigDomainOs *os); +const char *gvir_config_domain_os_get_machine(GVirConfigDomainOs *os); void gvir_config_domain_os_set_arch(GVirConfigDomainOs *os, const char *arch); GList *gvir_config_domain_os_get_boot_devices(GVirConfigDomainOs *os); void gvir_config_domain_os_set_boot_devices(GVirConfigDomainOs *os, GList *boot_devices); diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym index db69cba..1e4611e 100644 --- a/libvirt-gconfig/libvirt-gconfig.sym +++ b/libvirt-gconfig/libvirt-gconfig.sym @@ -768,6 +768,7 @@ global: LIBVIRT_GCONFIG_1.0.1 { global: + gvir_config_domain_os_get_machine; gvir_config_domain_set_custom_xml_ns_children; } LIBVIRT_GCONFIG_0.2.4; -- 2.19.1

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- tests/test-gconfig.c | 2 ++ tests/xml/gconfig-domain-os.xml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/test-gconfig.c b/tests/test-gconfig.c index a64da26..3328297 100644 --- a/tests/test-gconfig.c +++ b/tests/test-gconfig.c @@ -214,8 +214,10 @@ static void test_domain_os(void) os = gvir_config_domain_os_new(); gvir_config_domain_os_set_os_type(os, GVIR_CONFIG_DOMAIN_OS_TYPE_HVM); gvir_config_domain_os_set_arch(os, "x86_64"); + gvir_config_domain_os_set_machine(os, "q35"); g_assert_cmpint(gvir_config_domain_os_get_os_type(os), ==, GVIR_CONFIG_DOMAIN_OS_TYPE_HVM); g_assert_cmpstr(gvir_config_domain_os_get_arch(os), ==, "x86_64"); + g_assert_cmpstr(gvir_config_domain_os_get_machine(os), ==, "q35"); devices = g_list_append(devices, GINT_TO_POINTER(GVIR_CONFIG_DOMAIN_OS_BOOT_DEVICE_CDROM)); devices = g_list_append(devices, diff --git a/tests/xml/gconfig-domain-os.xml b/tests/xml/gconfig-domain-os.xml index f712bb0..56af776 100644 --- a/tests/xml/gconfig-domain-os.xml +++ b/tests/xml/gconfig-domain-os.xml @@ -1,6 +1,6 @@ <domain> <os> - <type arch="x86_64">hvm</type> + <type arch="x86_64" machine="q35">hvm</type> <boot dev="cdrom"/> <boot dev="network"/> </os> -- 2.19.1

On 10/11/2018 11:40 AM, Fabiano Fidêncio wrote:
The first patch is needed to properly support Q35 machine type on GNOME Boxes (or any other app using libvirt-glib) as the ICH9 audio device should be used together with Q35 machine type,
The second patch is mostly a convenience for the apps and the third one just adds a test case for the second.
Fabiano Fidêncio (3): gconfig-domain-sound: Add ich9 sound device gconfig: add _domain_os_get_machine() tests: Add testes for _domain_os_{set,get}_machine()
libvirt-gconfig/libvirt-gconfig-domain-os.c | 7 +++++++ libvirt-gconfig/libvirt-gconfig-domain-os.h | 1 + libvirt-gconfig/libvirt-gconfig-domain-sound.h | 3 ++- libvirt-gconfig/libvirt-gconfig.sym | 1 + tests/test-gconfig.c | 2 ++ tests/xml/gconfig-domain-os.xml | 2 +- 6 files changed, 14 insertions(+), 2 deletions(-)
Reviewed-by: Cole Robinson <crobinso@redhat.com> - Cole
participants (2)
-
Cole Robinson
-
Fabiano Fidêncio