linux/include/linux/tboot.h

/* 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 */