mirror of
https://git.proxmox.com/git/efi-boot-shim
synced 2025-07-15 07:00:04 +00:00
86 lines
2.2 KiB
C
86 lines
2.2 KiB
C
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
#ifndef SHIM_CC_H
|
|
#define SHIM_CC_H
|
|
|
|
typedef struct {
|
|
uint8_t Major;
|
|
uint8_t Minor;
|
|
} EFI_CC_VERSION;
|
|
|
|
#define EFI_CC_TYPE_NONE 0
|
|
#define EFI_CC_TYPE_SEV 1
|
|
#define EFI_CC_TYPE_TDX 2
|
|
|
|
typedef struct {
|
|
uint8_t Type;
|
|
uint8_t SubType;
|
|
} EFI_CC_TYPE;
|
|
|
|
typedef uint32_t EFI_CC_EVENT_LOG_BITMAP;
|
|
typedef uint32_t EFI_CC_EVENT_LOG_FORMAT;
|
|
typedef uint32_t EFI_CC_EVENT_ALGORITHM_BITMAP;
|
|
typedef uint32_t EFI_CC_MR_INDEX;
|
|
|
|
#define TDX_MR_INDEX_MRTD 0
|
|
#define TDX_MR_INDEX_RTMR0 1
|
|
#define TDX_MR_INDEX_RTMR1 2
|
|
#define TDX_MR_INDEX_RTMR2 3
|
|
#define TDX_MR_INDEX_RTMR3 4
|
|
|
|
#define EFI_CC_EVENT_LOG_FORMAT_TCG_2 0x00000002
|
|
#define EFI_CC_BOOT_HASH_ALG_SHA384 0x00000004
|
|
#define EFI_CC_EVENT_HEADER_VERSION 1
|
|
|
|
typedef struct tdEFI_CC_EVENT_HEADER {
|
|
uint32_t HeaderSize;
|
|
uint16_t HeaderVersion;
|
|
EFI_CC_MR_INDEX MrIndex;
|
|
uint32_t EventType;
|
|
} __attribute__((packed)) EFI_CC_EVENT_HEADER;
|
|
|
|
typedef struct tdEFI_CC_EVENT {
|
|
uint32_t Size;
|
|
EFI_CC_EVENT_HEADER Header;
|
|
uint8_t Event[1];
|
|
} __attribute__((packed)) EFI_CC_EVENT;
|
|
|
|
typedef struct tdEFI_CC_BOOT_SERVICE_CAPABILITY {
|
|
uint8_t Size;
|
|
EFI_CC_VERSION StructureVersion;
|
|
EFI_CC_VERSION ProtocolVersion;
|
|
EFI_CC_EVENT_ALGORITHM_BITMAP HashAlgorithmBitmap;
|
|
EFI_CC_EVENT_LOG_BITMAP SupportedEventLogs;
|
|
EFI_CC_TYPE CcType;
|
|
} EFI_CC_BOOT_SERVICE_CAPABILITY;
|
|
|
|
struct efi_cc_protocol
|
|
{
|
|
EFI_STATUS (EFIAPI *get_capability) (
|
|
struct efi_cc_protocol *this,
|
|
EFI_CC_BOOT_SERVICE_CAPABILITY *ProtocolCapability);
|
|
EFI_STATUS (EFIAPI *get_event_log) (
|
|
struct efi_cc_protocol *this,
|
|
EFI_CC_EVENT_LOG_FORMAT EventLogFormat,
|
|
EFI_PHYSICAL_ADDRESS *EventLogLocation,
|
|
EFI_PHYSICAL_ADDRESS *EventLogLastEntry,
|
|
BOOLEAN *EventLogTruncated);
|
|
EFI_STATUS (EFIAPI *hash_log_extend_event) (
|
|
struct efi_cc_protocol *this,
|
|
uint64_t Flags,
|
|
EFI_PHYSICAL_ADDRESS DataToHash,
|
|
uint64_t DataToHashLen,
|
|
EFI_CC_EVENT *EfiCcEvent);
|
|
EFI_STATUS (EFIAPI *map_pcr_to_mr_index) (
|
|
struct efi_cc_protocol *this,
|
|
uint32_t PcrIndex,
|
|
EFI_CC_MR_INDEX *MrIndex);
|
|
};
|
|
|
|
typedef struct efi_cc_protocol efi_cc_protocol_t;
|
|
|
|
#define EFI_CC_FLAG_PE_COFF_IMAGE 0x0000000000000010
|
|
|
|
#endif /* SHIM_CC_H */
|
|
// vim:fenc=utf-8:tw=75
|