CloverBootloader/Include/Protocol/EmuVariableControl.h

59 lines
1.4 KiB
C

/** @file
Module Name:
EmuVariableControl.h
Protocol for controlling EmuVariableUefi driver - installing or uninstalling RT var services emulation.
initial version - dmazar
**/
#ifndef __EmuVariableControl_H__
#define __EmuVariableControl_H__
typedef struct _EMU_VARIABLE_CONTROL_PROTOCOL EMU_VARIABLE_CONTROL_PROTOCOL;
/**
* EMU_VARIABLE_CONTROL_PROTOCOL.InstallEmulation() type definition
*/
typedef EFI_STATUS (EFIAPI * EMU_VARIABLE_CONTROL_INSTALL_EMULATION) (
IN EMU_VARIABLE_CONTROL_PROTOCOL *This
);
/**
* EMU_VARIABLE_CONTROL_PROTOCOL.UninstallEmulation() type definition
*/
typedef EFI_STATUS (EFIAPI * EMU_VARIABLE_CONTROL_UNINSTALL_EMULATION) (
IN EMU_VARIABLE_CONTROL_PROTOCOL *This
);
/**
* EMU_VARIABLE_CONTROL_PROTOCOL
*/
struct _EMU_VARIABLE_CONTROL_PROTOCOL {
///
/// Installs RT var services emulation, replaces original RT var services.
///
EMU_VARIABLE_CONTROL_INSTALL_EMULATION InstallEmulation;
///
/// Uninstalls RT var services emulation, returns original RT var services back.
///
EMU_VARIABLE_CONTROL_INSTALL_EMULATION UninstallEmulation;
};
#define EMU_VARIABLE_CONTROL_PROTOCOL_GUID \
{ \
0x21f41e73, 0xd214, 0x4fcd, {0x85, 0x50, 0x0d, 0x11, 0x51, 0xcf, 0x8e, 0xfb } \
}
/** EMU_VARIABLE_CONTROL_PROTOCOL GUID */
extern EFI_GUID gEmuVariableControlProtocolGuid;
#endif