summary refs log tree commit diff stats
path: root/include/hw/acpi/acpi_aml_interface.h
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2022-10-17 12:21:41 +0200
committerMichael S. Tsirkin <mst@redhat.com>2022-11-07 14:08:17 -0500
commit5dbad0af10ff7d4f83db7f4ddd872d85332ebecc (patch)
tree04a3573ef30fa56a47902e7386b7d46fd53e5c3f /include/hw/acpi/acpi_aml_interface.h
parentffb745909bcdd676c62532e301875f66ab505973 (diff)
downloadfocaccia-qemu-5dbad0af10ff7d4f83db7f4ddd872d85332ebecc.tar.gz
focaccia-qemu-5dbad0af10ff7d4f83db7f4ddd872d85332ebecc.zip
acpi: add get_dev_aml_func() helper
It will be used in followup commits to figure out if
device has it's own, device specific AML block.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20221017102146.2254096-7-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Ani Sinha <ani@anisinha.ca>
Diffstat (limited to 'include/hw/acpi/acpi_aml_interface.h')
-rw-r--r--include/hw/acpi/acpi_aml_interface.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/include/hw/acpi/acpi_aml_interface.h b/include/hw/acpi/acpi_aml_interface.h
index ab76f0e55d..436da069d6 100644
--- a/include/hw/acpi/acpi_aml_interface.h
+++ b/include/hw/acpi/acpi_aml_interface.h
@@ -29,11 +29,20 @@ struct AcpiDevAmlIfClass {
     dev_aml_fn build_dev_aml;
 };
 
-static inline void call_dev_aml_func(DeviceState *dev, Aml *scope)
+static inline dev_aml_fn get_dev_aml_func(DeviceState *dev)
 {
     if (object_dynamic_cast(OBJECT(dev), TYPE_ACPI_DEV_AML_IF)) {
         AcpiDevAmlIfClass *klass = ACPI_DEV_AML_IF_GET_CLASS(dev);
-        klass->build_dev_aml(ACPI_DEV_AML_IF(dev), scope);
+        return klass->build_dev_aml;
+    }
+    return NULL;
+}
+
+static inline void call_dev_aml_func(DeviceState *dev, Aml *scope)
+{
+    dev_aml_fn fn = get_dev_aml_func(dev);
+    if (fn) {
+        fn(ACPI_DEV_AML_IF(dev), scope);
     }
 }