]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - usr.sbin/bhyve/tpm_intf.h
Merge LUA 5.4.6
[FreeBSD/FreeBSD.git] / usr.sbin / bhyve / tpm_intf.h
1 /*-
2  * SPDX-License-Identifier: BSD-2-Clause
3  *
4  * Copyright (c) 2022 Beckhoff Automation GmbH & Co. KG
5  * Author: Corvin Köhne <c.koehne@beckhoff.com>
6  */
7
8 #pragma once
9
10 #include <vmmapi.h>
11
12 #include "config.h"
13 #include "tpm_device.h"
14 #include "tpm_emul.h"
15
16 #define TPM_INTF_TYPE_FIFO_PTP 0x0
17 #define TPM_INTF_TYPE_CRB 0x1
18 #define TPM_INTF_TYPE_FIFO_TIS 0xF
19
20 #define TPM_INTF_VERSION_FIFO 0
21 #define TPM_INTF_VERSION_CRB 1
22
23 #define TPM_INTF_CAP_CRB_DATA_XFER_SIZE_4 0
24 #define TPM_INTF_CAP_CRB_DATA_XFER_SIZE_8 1
25 #define TPM_INTF_CAP_CRB_DATA_XFER_SIZE_32 2
26 #define TPM_INTF_CAP_CRB_DATA_XFER_SIZE_64 3
27
28 #define TPM_INTF_SELECTOR_FIFO 0
29 #define TPM_INTF_SELECTOR_CRB 1
30
31 struct tpm_intf {
32         const char *name;
33
34         int (*init)(void **sc, struct tpm_emul *emul, void *emul_sc);
35         void (*deinit)(void *sc);
36         int (*build_acpi_table)(void *sc, struct vmctx *vm_ctx);
37 };
38 #define TPM_INTF_SET(x) DATA_SET(tpm_intf_set, x)