/** @file
  Protocol/GUID definition to describe a x86 Linux kernel image loaded
  into memory.

  Note that this protocol is considered internal ABI, and may be change
  structure at any time without regard for backward compatibility.

  Copyright (c) 2020, Arm, Ltd. All rights reserved.<BR>

  SPDX-License-Identifier: BSD-2-Clause-Patent
**/

#pragma once

#define OVMF_LOADED_X86_LINUX_KERNEL_PROTOCOL_GUID \
  {0xa3edc05d, 0xb618, 0x4ff6, {0x95, 0x52, 0x76, 0xd7, 0x88, 0x63, 0x43, 0xc8}}

typedef struct {
  VOID     *SetupBuf;
  VOID     *KernelBuf;
  CHAR8    *CommandLine;
  VOID     *InitrdData;
  UINTN    SetupSize;
  UINTN    KernelInitialSize;
  UINTN    InitrdSize;
  UINTN    CommandLineSize;
} OVMF_LOADED_X86_LINUX_KERNEL;

extern EFI_GUID  gOvmfLoadedX86LinuxKernelProtocolGuid;
