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