#ifndef HV_GUEST_LOADER_H #define HV_GUEST_LOADER_H #include "hv/types.h" enum guest_payload_kind { GUEST_PAYLOAD_DIAGNOSTIC = 0, GUEST_PAYLOAD_LINUX_IMAGE = 1, }; struct guest_image_info { enum guest_payload_kind kind; uint64_t ipa_entry; uint64_t ipa_load; uint64_t size; uint64_t dtb_ipa; uint64_t initrd_ipa; uint64_t initrd_size; }; bool guest_load_diagnostic(struct guest_image_info *info); bool guest_load_external_linux(struct guest_image_info *info, paddr_t image_pa, uint64_t image_max_size, paddr_t dtb_pa, uint64_t dtb_max_size, paddr_t initrd_pa, uint64_t initrd_size); bool guest_validate_linux_image_header(const void *image, uint64_t size, struct guest_image_info *info); #endif