1 #include "../include/PeImage.h"
2 #include "../include/PeImage2.h"
4 #define SHIM_LOCK_GUID \
5 { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} }
7 //#define INTERFACE_DECL(x)
9 // INTERFACE_DECL(_SHIM_LOCK);
13 // (*EFI_SHIM_LOCK_VERIFY) (
20 // (*EFI_SHIM_LOCK_HASH) (
23 // GNUEFI_PE_COFF_LOADER_IMAGE_CONTEXT *context,
30 // (*EFI_SHIM_LOCK_CONTEXT) (
32 // IN unsigned int datasize,
33 // GNUEFI_PE_COFF_LOADER_IMAGE_CONTEXT *context
36 // typedef struct _SHIM_LOCK {
37 // EFI_SHIM_LOCK_VERIFY Verify;
38 // EFI_SHIM_LOCK_HASH Hash;
39 // EFI_SHIM_LOCK_CONTEXT Context;
42 typedef struct _SHIM_LOCK
44 EFI_STATUS
__attribute__((sysv_abi
)) (*shim_verify
) (VOID
*buffer
, UINT32 size
);
45 EFI_STATUS
__attribute__((sysv_abi
)) (*generate_hash
) (char *data
, int datasize
,
46 GNUEFI_PE_COFF_LOADER_IMAGE_CONTEXT
*context
, UINT8
*sha256hash
,
48 EFI_STATUS
__attribute__((sysv_abi
)) (*read_header
) (void *data
, unsigned int datasize
,
49 GNUEFI_PE_COFF_LOADER_IMAGE_CONTEXT
*context
);
52 EFI_STATUS
start_image(EFI_HANDLE image_handle
, CHAR16
*ImagePath
, VOID
*data
, UINTN datasize
,
53 CHAR16
*Options
, REFIT_VOLUME
*DeviceVolume
);