efi/libstub: add prototype of efi_tcg2_protocol::hash_log_extend_event()
Define the right prototype for efi_tcg2_protocol::hash_log_extend_event() and add the required structs so we can start using it to measure the initrd into the TPM if it was loaded by the EFI stub itself. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Link: https://lore.kernel.org/r/20211119114745.1560453-2-ilias.apalodimas@linaro.org Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
parent
f65b813209
commit
4da87c5170
@ -308,6 +308,10 @@ static inline u32 efi64_convert_status(efi_status_t status)
|
||||
#define __efi64_argmap_query_mode(gop, mode, size, info) \
|
||||
((gop), (mode), efi64_zero_upper(size), efi64_zero_upper(info))
|
||||
|
||||
/* TCG2 protocol */
|
||||
#define __efi64_argmap_hash_log_extend_event(prot, fl, addr, size, ev) \
|
||||
((prot), (fl), 0ULL, (u64)(addr), 0ULL, (u64)(size), 0ULL, ev)
|
||||
|
||||
/*
|
||||
* The macros below handle the plumbing for the argument mapping. To add a
|
||||
* mapping for a specific EFI method, simply define a macro
|
||||
|
@ -667,6 +667,29 @@ union apple_properties_protocol {
|
||||
|
||||
typedef u32 efi_tcg2_event_log_format;
|
||||
|
||||
#define INITRD_EVENT_TAG_ID 0x8F3B22ECU
|
||||
#define EV_EVENT_TAG 0x00000006U
|
||||
#define EFI_TCG2_EVENT_HEADER_VERSION 0x1
|
||||
|
||||
struct efi_tcg2_event {
|
||||
u32 event_size;
|
||||
struct {
|
||||
u32 header_size;
|
||||
u16 header_version;
|
||||
u32 pcr_index;
|
||||
u32 event_type;
|
||||
} __packed event_header;
|
||||
/* u8[] event follows here */
|
||||
} __packed;
|
||||
|
||||
struct efi_tcg2_tagged_event {
|
||||
u32 tagged_event_id;
|
||||
u32 tagged_event_data_size;
|
||||
/* u8 tagged event data follows here */
|
||||
} __packed;
|
||||
|
||||
typedef struct efi_tcg2_event efi_tcg2_event_t;
|
||||
typedef struct efi_tcg2_tagged_event efi_tcg2_tagged_event_t;
|
||||
typedef union efi_tcg2_protocol efi_tcg2_protocol_t;
|
||||
|
||||
union efi_tcg2_protocol {
|
||||
@ -677,7 +700,11 @@ union efi_tcg2_protocol {
|
||||
efi_physical_addr_t *,
|
||||
efi_physical_addr_t *,
|
||||
efi_bool_t *);
|
||||
void *hash_log_extend_event;
|
||||
efi_status_t (__efiapi *hash_log_extend_event)(efi_tcg2_protocol_t *,
|
||||
u64,
|
||||
efi_physical_addr_t,
|
||||
u64,
|
||||
const efi_tcg2_event_t *);
|
||||
void *submit_command;
|
||||
void *get_active_pcr_banks;
|
||||
void *set_active_pcr_banks;
|
||||
|
Loading…
Reference in New Issue
Block a user