/* SPDX-License-Identifier: GPL-2.0-only */ /* * tboot.h: shared data structure with tboot and kernel and functions * used by kernel for runtime support of Intel(R) Trusted * Execution Technology * * Copyright (c) 2006-2009, Intel Corporation */ #ifndef _LINUX_TBOOT_H #define _LINUX_TBOOT_H /* these must have the values from 0-5 in this order */ enum { … }; #ifdef CONFIG_INTEL_TXT #include <linux/acpi.h> /* used to communicate between tboot and the launched kernel */ #define TB_KEY_SIZE … #define MAX_TB_MAC_REGIONS … struct tboot_mac_region { … } __packed; /* GAS - Generic Address Structure (ACPI 2.0+) */ struct tboot_acpi_generic_address { … } __packed; /* * combines Sx info from FADT and FACS tables per ACPI 2.0+ spec * (https://uefi.org/specifications) */ struct tboot_acpi_sleep_info { … } __packed; /* * shared memory page used for communication between tboot and kernel */ struct tboot { … } __packed; /* * UUID for tboot data struct to facilitate matching * defined as {663C8DFF-E8B3-4b82-AABF-19EA4D057A08} by tboot, which is * represented as {} in the char array used here */ #define TBOOT_UUID … bool tboot_enabled(void); extern void tboot_probe(void); extern void tboot_shutdown(u32 shutdown_type); extern struct acpi_table_header *tboot_get_dmar_table( struct acpi_table_header *dmar_tbl); #else #define tboot_enabled … #define tboot_probe … #define tboot_shutdown … #define tboot_sleep … #define tboot_get_dmar_table … #endif /* !CONFIG_INTEL_TXT */ #endif /* _LINUX_TBOOT_H */