1*8d127aa8SGerd Hoffmann /* 2*8d127aa8SGerd Hoffmann * SPDX-License-Identifier: GPL-2.0-or-later 3*8d127aa8SGerd Hoffmann * 4*8d127aa8SGerd Hoffmann * pass hardware information to uefi 5*8d127aa8SGerd Hoffmann * 6*8d127aa8SGerd Hoffmann * see OvmfPkg/Library/HardwareInfoLib/ in edk2 7*8d127aa8SGerd Hoffmann */ 8*8d127aa8SGerd Hoffmann #ifndef QEMU_UEFI_HARDWARE_INFO_H 9*8d127aa8SGerd Hoffmann #define QEMU_UEFI_HARDWARE_INFO_H 10*8d127aa8SGerd Hoffmann 11*8d127aa8SGerd Hoffmann /* data structures */ 12*8d127aa8SGerd Hoffmann 13*8d127aa8SGerd Hoffmann typedef enum { 14*8d127aa8SGerd Hoffmann HardwareInfoTypeUndefined = 0, 15*8d127aa8SGerd Hoffmann HardwareInfoTypeHostBridge = 1, 16*8d127aa8SGerd Hoffmann HardwareInfoQemuUefiVars = 2, 17*8d127aa8SGerd Hoffmann } HARDWARE_INFO_TYPE; 18*8d127aa8SGerd Hoffmann 19*8d127aa8SGerd Hoffmann typedef struct { 20*8d127aa8SGerd Hoffmann union { 21*8d127aa8SGerd Hoffmann uint64_t uint64; 22*8d127aa8SGerd Hoffmann HARDWARE_INFO_TYPE value; 23*8d127aa8SGerd Hoffmann } type; 24*8d127aa8SGerd Hoffmann uint64_t size; 25*8d127aa8SGerd Hoffmann } HARDWARE_INFO_HEADER; 26*8d127aa8SGerd Hoffmann 27*8d127aa8SGerd Hoffmann typedef struct { 28*8d127aa8SGerd Hoffmann uint64_t mmio_address; 29*8d127aa8SGerd Hoffmann } HARDWARE_INFO_SIMPLE_DEVICE; 30*8d127aa8SGerd Hoffmann 31*8d127aa8SGerd Hoffmann /* qemu functions */ 32*8d127aa8SGerd Hoffmann 33*8d127aa8SGerd Hoffmann void hardware_info_register(HARDWARE_INFO_TYPE type, void *info, uint64_t size); 34*8d127aa8SGerd Hoffmann 35*8d127aa8SGerd Hoffmann #endif /* QEMU_UEFI_HARDWARE_INFO_H */ 36