@@ -944,6 +944,20 @@ static void make_acpi_fadt(libxl__gc *gc, struct xc_dom_image *dom)
dom->acpitable_size += dom->acpitable_blob->fadt.size;
}
+static void make_acpi_dsdt(libxl__gc *gc, struct xc_dom_image *dom)
+{
+ struct acpi_table_header *dsdt;
+
+ /* Currently there is only the table header in DSDT table. */
+ dsdt = libxl__zalloc(gc, sizeof(*dsdt));
+ make_acpi_header((void *)dsdt, "DSDT", sizeof(*dsdt), 2);
+
+ dom->acpitable_blob->dsdt.table = (void *)dsdt;
+ /* Align to 64bit. */
+ dom->acpitable_blob->dsdt.size = ROUNDUP(sizeof(*dsdt), 3);
+ dom->acpitable_size += ROUNDUP(dom->acpitable_blob->dsdt.size, 3);
+}
+
static int prepare_acpi(libxl__gc *gc, libxl_domain_build_info *info,
libxl__domain_build_state *state,
struct xc_dom_image *dom)
@@ -966,6 +980,7 @@ static int prepare_acpi(libxl__gc *gc, libxl_domain_build_info *info,
make_acpi_gtdt(gc, dom);
make_acpi_fadt(gc, dom);
+ make_acpi_dsdt(gc, dom);
return 0;
}