|
@@ -386,6 +386,8 @@ void acpi_ghes_add_fw_cfg(AcpiGhesState *ags, FWCfgState *s,
|
|
/* Create a read-write fw_cfg file for Address */
|
|
/* Create a read-write fw_cfg file for Address */
|
|
fw_cfg_add_file_callback(s, ACPI_GHES_DATA_ADDR_FW_CFG_FILE, NULL, NULL,
|
|
fw_cfg_add_file_callback(s, ACPI_GHES_DATA_ADDR_FW_CFG_FILE, NULL, NULL,
|
|
NULL, &(ags->ghes_addr_le), sizeof(ags->ghes_addr_le), false);
|
|
NULL, &(ags->ghes_addr_le), sizeof(ags->ghes_addr_le), false);
|
|
|
|
+
|
|
|
|
+ ags->present = true;
|
|
}
|
|
}
|
|
|
|
|
|
int acpi_ghes_record_errors(uint8_t source_id, uint64_t physical_address)
|
|
int acpi_ghes_record_errors(uint8_t source_id, uint64_t physical_address)
|
|
@@ -443,3 +445,18 @@ int acpi_ghes_record_errors(uint8_t source_id, uint64_t physical_address)
|
|
|
|
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+bool acpi_ghes_present(void)
|
|
|
|
+{
|
|
|
|
+ AcpiGedState *acpi_ged_state;
|
|
|
|
+ AcpiGhesState *ags;
|
|
|
|
+
|
|
|
|
+ acpi_ged_state = ACPI_GED(object_resolve_path_type("", TYPE_ACPI_GED,
|
|
|
|
+ NULL));
|
|
|
|
+
|
|
|
|
+ if (!acpi_ged_state) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ ags = &acpi_ged_state->ghes_state;
|
|
|
|
+ return ags->present;
|
|
|
|
+}
|