vmgenid.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef ACPI_VMGENID_H
  2. #define ACPI_VMGENID_H
  3. #include "hw/acpi/bios-linker-loader.h"
  4. #include "hw/qdev-core.h"
  5. #include "qemu/uuid.h"
  6. #include "qom/object.h"
  7. #define TYPE_VMGENID "vmgenid"
  8. #define VMGENID_GUID "guid"
  9. #define VMGENID_GUID_FW_CFG_FILE "etc/vmgenid_guid"
  10. #define VMGENID_ADDR_FW_CFG_FILE "etc/vmgenid_addr"
  11. #define VMGENID_FW_CFG_SIZE 4096 /* Occupy a page of memory */
  12. #define VMGENID_GUID_OFFSET 40 /* allow space for
  13. * OVMF SDT Header Probe Suppressor
  14. */
  15. OBJECT_DECLARE_SIMPLE_TYPE(VmGenIdState, VMGENID)
  16. struct VmGenIdState {
  17. DeviceState parent_obj;
  18. QemuUUID guid; /* The 128-bit GUID seen by the guest */
  19. uint8_t vmgenid_addr_le[8]; /* Address of the GUID (little-endian) */
  20. };
  21. /* returns NULL unless there is exactly one device */
  22. static inline Object *find_vmgenid_dev(void)
  23. {
  24. return object_resolve_path_type("", TYPE_VMGENID, NULL);
  25. }
  26. void vmgenid_build_acpi(VmGenIdState *vms, GArray *table_data, GArray *guid,
  27. BIOSLinker *linker, const char *oem_id);
  28. void vmgenid_add_fw_cfg(VmGenIdState *vms, FWCfgState *s, GArray *guid);
  29. #endif