OpenCorePkg/Include/Protocol/OcFirmwareRuntime.h

61 lines
1.5 KiB
C

/** @file
Copyright (C) 2019, vit9696. All rights reserved.
All rights reserved.
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef OC_FIRMWARE_RUNTIME_PROTOCOL_H
#define OC_FIRMWARE_RUNTIME_PROTOCOL_H
#define OC_FIRMWARE_RUNTIME_REVISION 1
//
// OC_FIRMWARE_RUNTIME_PROTOCOL_GUID
// 9C820F96-F16C-4FFD-B266-DF0A8FDFC455
//
#define OC_FIRMWARE_RUNTIME_PROTOCOL_GUID \
{ 0x9C820F96, 0xF16C, 0x4FFD, \
{ 0xB2, 0x66, 0xDF, 0x0A, 0x8F, 0xDF, 0xC4, 0x55 } }
//
// Set NVRAM routing, returns previous value.
//
typedef
BOOLEAN
EFIAPI
(*OC_FWRT_NVRAM_REDIRECT) (
IN BOOLEAN NewValue
);
//
// Set GetVariable override for customising values.
//
typedef
EFI_STATUS
EFIAPI
(*OC_FWRT_ON_GET_VARIABLE) (
IN EFI_GET_VARIABLE GetVariable,
OUT EFI_GET_VARIABLE *OrgGetVariable OPTIONAL
);
//
// Check for revision to ensure binary compatibility.
//
typedef struct {
UINTN Revision;
OC_FWRT_NVRAM_REDIRECT SetNvram;
OC_FWRT_ON_GET_VARIABLE OnGetVariable;
} OC_FIRMWARE_RUNTIME_PROTOCOL;
extern EFI_GUID gOcFirmwareRuntimeProtocolGuid;
#endif // OC_FIRMWARE_RUNTIME_PROTOCOL_H