summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorIgor Mammedov2022-10-17 12:21:41 +0200
committerMichael S. Tsirkin2022-11-07 20:08:17 +0100
commit5dbad0af10ff7d4f83db7f4ddd872d85332ebecc (patch)
tree04a3573ef30fa56a47902e7386b7d46fd53e5c3f /include
parenttests: acpi: whitelist DSDT before generating ICH9_SMB AML automatically (diff)
downloadqemu-5dbad0af10ff7d4f83db7f4ddd872d85332ebecc.tar.gz
qemu-5dbad0af10ff7d4f83db7f4ddd872d85332ebecc.tar.xz
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')
-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);
}
}