diff --git a/usr.sbin/bhyve/acpi.c b/usr.sbin/bhyve/acpi.c --- a/usr.sbin/bhyve/acpi.c +++ b/usr.sbin/bhyve/acpi.c @@ -245,7 +245,7 @@ const struct acpi_device_list_entry *entry; SLIST_FOREACH(entry, &acpi_devices, chain) { - acpi_device_write_dsdt(entry->dev); + BASL_EXEC(acpi_device_write_dsdt(entry->dev)); } dsdt_line("}"); diff --git a/usr.sbin/bhyve/acpi_device.h b/usr.sbin/bhyve/acpi_device.h --- a/usr.sbin/bhyve/acpi_device.h +++ b/usr.sbin/bhyve/acpi_device.h @@ -50,4 +50,4 @@ UINT8 write_protected, UINT32 address, UINT32 length); int acpi_device_build_table(const struct acpi_device *dev); -void acpi_device_write_dsdt(const struct acpi_device *dev); +int acpi_device_write_dsdt(const struct acpi_device *dev); diff --git a/usr.sbin/bhyve/acpi_device.c b/usr.sbin/bhyve/acpi_device.c --- a/usr.sbin/bhyve/acpi_device.c +++ b/usr.sbin/bhyve/acpi_device.c @@ -17,6 +17,7 @@ #include "acpi.h" #include "acpi_device.h" +#include "basl.h" /** * List entry to enumerate all resources used by an ACPI device. @@ -148,7 +149,7 @@ return (0); } -static void +static int acpi_device_write_dsdt_crs(const struct acpi_device *const dev) { const struct acpi_resource_list_entry *res; @@ -167,14 +168,14 @@ break; } } + + return (0); } -void +int acpi_device_write_dsdt(const struct acpi_device *const dev) { - if (dev == NULL) { - return; - } + assert(dev != NULL); dsdt_line(""); dsdt_line(" Scope (\\_SB)"); @@ -186,9 +187,11 @@ dsdt_line(" Name (_CRS, ResourceTemplate ()"); dsdt_line(" {"); dsdt_indent(4); - acpi_device_write_dsdt_crs(dev); + BASL_EXEC(acpi_device_write_dsdt_crs(dev)); dsdt_unindent(4); dsdt_line(" })"); dsdt_line(" }"); dsdt_line(" }"); + + return (0); }