489886d118
This is similar to the existing 'add pointer' functionality, but instead of instructing the guest (BIOS or UEFI) to patch memory, it instructs the guest to write the pointer back to QEMU via a writeable fw_cfg file. Signed-off-by: Ben Warren <ben@skyportsystems.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Tested-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
38 lines
1.4 KiB
C
38 lines
1.4 KiB
C
#ifndef BIOS_LINKER_LOADER_H
|
|
#define BIOS_LINKER_LOADER_H
|
|
|
|
|
|
typedef struct BIOSLinker {
|
|
GArray *cmd_blob;
|
|
GArray *file_list;
|
|
} BIOSLinker;
|
|
|
|
BIOSLinker *bios_linker_loader_init(void);
|
|
|
|
void bios_linker_loader_alloc(BIOSLinker *linker,
|
|
const char *file_name,
|
|
GArray *file_blob,
|
|
uint32_t alloc_align,
|
|
bool alloc_fseg);
|
|
|
|
void bios_linker_loader_add_checksum(BIOSLinker *linker, const char *file,
|
|
unsigned start_offset, unsigned size,
|
|
unsigned checksum_offset);
|
|
|
|
void bios_linker_loader_add_pointer(BIOSLinker *linker,
|
|
const char *dest_file,
|
|
uint32_t dst_patched_offset,
|
|
uint8_t dst_patched_size,
|
|
const char *src_file,
|
|
uint32_t src_offset);
|
|
|
|
void bios_linker_loader_write_pointer(BIOSLinker *linker,
|
|
const char *dest_file,
|
|
uint32_t dst_patched_offset,
|
|
uint8_t dst_patched_size,
|
|
const char *src_file,
|
|
uint32_t src_offset);
|
|
|
|
void bios_linker_loader_cleanup(BIOSLinker *linker);
|
|
#endif
|