/** @file
Asf protocol define.
Copyright (c) 1985 - 2022, AMI. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __ASF_PROTOCOL_H__
#define __ASF_PROTOCOL_H__
#include
#define ASF_PROTOCOL_GUID \
{ \
0xdec89827, 0x8a7e, 0x45e0, { 0xbc, 0xb5, 0xd5, 0x3b, 0x46, 0x14, 0xad, 0xb8 } \
}
#pragma pack(push, 1)
/**
This is the ASF Boot Option data structure.
**/
typedef struct {
UINT8 SubCommand;
UINT8 Version;
UINT32 IanaId;
UINT8 SpecialCommand;
UINT16 SpecCmdParameter;
UINT16 BootOptionBit;
UINT16 OemParameter;
} ASF_BOOT_OPTION;
/**
This is the ASF PUSH EVENT Structure.
**/
typedef EFI_STATUS (EFIAPI *ASF_PUSH_EVENT)(
IN UINT8 Command,
IN UINTN Length,
IN UINT8 *ASFEvent
);
/**
This is the AMI ASF Protocol Structure.
**/
typedef struct {
ASF_PUSH_EVENT PushEvent;
ASF_BOOT_OPTION *BootOption;
} ASF_PROTOCOL;
#pragma pack(pop)
extern EFI_GUID gAsfProtocolGuid;
#endif //__ASF_PROTOCOL_H__