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