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