xref: /freebsd/usr.sbin/bhyve/tpm_emul.h (revision 0daf5f02cfaf08a7fad75d934bbea50242c98ab3)
1e0977857SCorvin Köhne /*-
2e0977857SCorvin Köhne  * SPDX-License-Identifier: BSD-2-Clause
3e0977857SCorvin Köhne  *
4e0977857SCorvin Köhne  * Copyright (c) 2023 Beckhoff Automation GmbH & Co. KG
5e0977857SCorvin Köhne  * Author: Corvin Köhne <corvink@FreeBSD.org>
6e0977857SCorvin Köhne  */
7e0977857SCorvin Köhne 
8e0977857SCorvin Köhne #pragma once
9e0977857SCorvin Köhne 
10e0977857SCorvin Köhne #include <sys/linker_set.h>
11e0977857SCorvin Köhne 
12e0977857SCorvin Köhne #include "config.h"
13e0977857SCorvin Köhne 
14e0977857SCorvin Köhne struct tpm_device;
15e0977857SCorvin Köhne 
16e0977857SCorvin Köhne struct tpm_emul {
17e0977857SCorvin Köhne 	const char *name;
18e0977857SCorvin Köhne 
19e0977857SCorvin Köhne 	int (*init)(void **sc, nvlist_t *nvl);
20e0977857SCorvin Köhne 	void (*deinit)(void *sc);
21*0daf5f02SCorvin Köhne 	int (*execute_cmd)(void *sc, void *cmd, uint32_t cmd_size, void *rsp,
22*0daf5f02SCorvin Köhne 	    uint32_t rsp_size);
23e0977857SCorvin Köhne };
24e0977857SCorvin Köhne #define TPM_EMUL_SET(x) DATA_SET(tpm_emul_set, x)
25