]> code.delx.au - refind/blob - refind/mok.h
New documentation figure
[refind] / refind / mok.h
1 #include "../include/PeImage.h"
2
3 #define SHIM_LOCK_GUID \
4 { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} }
5
6 //#define INTERFACE_DECL(x)
7
8 // INTERFACE_DECL(_SHIM_LOCK);
9 //
10 // typedef
11 // EFI_STATUS
12 // (*EFI_SHIM_LOCK_VERIFY) (
13 // IN VOID *buffer,
14 // IN UINT32 size
15 // );
16 //
17 // typedef
18 // EFI_STATUS
19 // (*EFI_SHIM_LOCK_HASH) (
20 // IN char *data,
21 // IN int datasize,
22 // GNUEFI_PE_COFF_LOADER_IMAGE_CONTEXT *context,
23 // UINT8 *sha256hash,
24 // UINT8 *sha1hash
25 // );
26 //
27 // typedef
28 // EFI_STATUS
29 // (*EFI_SHIM_LOCK_CONTEXT) (
30 // IN VOID *data,
31 // IN unsigned int datasize,
32 // GNUEFI_PE_COFF_LOADER_IMAGE_CONTEXT *context
33 // );
34 //
35 // typedef struct _SHIM_LOCK {
36 // EFI_SHIM_LOCK_VERIFY Verify;
37 // EFI_SHIM_LOCK_HASH Hash;
38 // EFI_SHIM_LOCK_CONTEXT Context;
39 // } SHIM_LOCK;
40
41 typedef struct _SHIM_LOCK
42 {
43 EFI_STATUS __attribute__((sysv_abi)) (*shim_verify) (VOID *buffer, UINT32 size);
44 EFI_STATUS __attribute__((sysv_abi)) (*generate_hash) (char *data, int datasize,
45 GNUEFI_PE_COFF_LOADER_IMAGE_CONTEXT *context, UINT8 *sha256hash,
46 UINT8 *sha1hash);
47 EFI_STATUS __attribute__((sysv_abi)) (*read_header) (void *data, unsigned int datasize,
48 GNUEFI_PE_COFF_LOADER_IMAGE_CONTEXT *context);
49 } SHIM_LOCK;
50
51 EFI_STATUS start_image(EFI_HANDLE image_handle, CHAR16 *ImagePath, VOID *data, UINTN datasize,
52 CHAR16 *Options, REFIT_VOLUME *DeviceVolume);