|
@@ -39,6 +39,7 @@
|
|
#include "hw/virtio/virtio.h"
|
|
#include "hw/virtio/virtio.h"
|
|
#include "hw/virtio/virtio-pci.h"
|
|
#include "hw/virtio/virtio-pci.h"
|
|
#include "hw/virtio/virtio-net.h"
|
|
#include "hw/virtio/virtio-net.h"
|
|
|
|
+#include "audio/audio.h"
|
|
|
|
|
|
GlobalProperty hw_compat_8_1[] = {};
|
|
GlobalProperty hw_compat_8_1[] = {};
|
|
const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
|
|
const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
|
|
@@ -686,6 +687,26 @@ bool device_type_is_dynamic_sysbus(MachineClass *mc, const char *type)
|
|
return allowed;
|
|
return allowed;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static char *machine_get_audiodev(Object *obj, Error **errp)
|
|
|
|
+{
|
|
|
|
+ MachineState *ms = MACHINE(obj);
|
|
|
|
+
|
|
|
|
+ return g_strdup(ms->audiodev);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static void machine_set_audiodev(Object *obj, const char *value,
|
|
|
|
+ Error **errp)
|
|
|
|
+{
|
|
|
|
+ MachineState *ms = MACHINE(obj);
|
|
|
|
+
|
|
|
|
+ if (!audio_state_by_name(value, errp)) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ g_free(ms->audiodev);
|
|
|
|
+ ms->audiodev = g_strdup(value);
|
|
|
|
+}
|
|
|
|
+
|
|
HotpluggableCPUList *machine_query_hotpluggable_cpus(MachineState *machine)
|
|
HotpluggableCPUList *machine_query_hotpluggable_cpus(MachineState *machine)
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
@@ -931,6 +952,17 @@ out_free:
|
|
qapi_free_BootConfiguration(config);
|
|
qapi_free_BootConfiguration(config);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void machine_add_audiodev_property(MachineClass *mc)
|
|
|
|
+{
|
|
|
|
+ ObjectClass *oc = OBJECT_CLASS(mc);
|
|
|
|
+
|
|
|
|
+ object_class_property_add_str(oc, "audiodev",
|
|
|
|
+ machine_get_audiodev,
|
|
|
|
+ machine_set_audiodev);
|
|
|
|
+ object_class_property_set_description(oc, "audiodev",
|
|
|
|
+ "Audiodev to use for default machine devices");
|
|
|
|
+}
|
|
|
|
+
|
|
static void machine_class_init(ObjectClass *oc, void *data)
|
|
static void machine_class_init(ObjectClass *oc, void *data)
|
|
{
|
|
{
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
@@ -1136,6 +1168,7 @@ static void machine_finalize(Object *obj)
|
|
g_free(ms->device_memory);
|
|
g_free(ms->device_memory);
|
|
g_free(ms->nvdimms_state);
|
|
g_free(ms->nvdimms_state);
|
|
g_free(ms->numa_state);
|
|
g_free(ms->numa_state);
|
|
|
|
+ g_free(ms->audiodev);
|
|
}
|
|
}
|
|
|
|
|
|
bool machine_usb(MachineState *machine)
|
|
bool machine_usb(MachineState *machine)
|