1bdee56f5SPaolo Bonzini /* 2bdee56f5SPaolo Bonzini * Public TPM functions 3bdee56f5SPaolo Bonzini * 4bdee56f5SPaolo Bonzini * Copyright (C) 2011-2013 IBM Corporation 5bdee56f5SPaolo Bonzini * 6bdee56f5SPaolo Bonzini * Authors: 7bdee56f5SPaolo Bonzini * Stefan Berger <stefanb@us.ibm.com> 8bdee56f5SPaolo Bonzini * 9bdee56f5SPaolo Bonzini * This work is licensed under the terms of the GNU GPL, version 2 or later. 10bdee56f5SPaolo Bonzini * See the COPYING file in the top-level directory. 11bdee56f5SPaolo Bonzini */ 12bdee56f5SPaolo Bonzini #ifndef QEMU_TPM_H 13bdee56f5SPaolo Bonzini #define QEMU_TPM_H 14bdee56f5SPaolo Bonzini 15bdee56f5SPaolo Bonzini #include "qemu/option.h" 16bdee56f5SPaolo Bonzini 17bdee56f5SPaolo Bonzini typedef struct TPMState TPMState; 18bdee56f5SPaolo Bonzini 19bdee56f5SPaolo Bonzini int tpm_config_parse(QemuOptsList *opts_list, const char *optarg); 20bdee56f5SPaolo Bonzini int tpm_init(void); 21bdee56f5SPaolo Bonzini void tpm_cleanup(void); 22bdee56f5SPaolo Bonzini 23116694c3SStefan Berger typedef enum TPMVersion { 24116694c3SStefan Berger TPM_VERSION_UNSPEC = 0, 25116694c3SStefan Berger TPM_VERSION_1_2 = 1, 26116694c3SStefan Berger TPM_VERSION_2_0 = 2, 27116694c3SStefan Berger } TPMVersion; 28116694c3SStefan Berger 29*5cb18b3dSStefan Berger TPMVersion tpm_tis_get_tpm_version(Object *obj); 30*5cb18b3dSStefan Berger 31711b20b4SStefan Berger #define TYPE_TPM_TIS "tpm-tis" 32711b20b4SStefan Berger 33*5cb18b3dSStefan Berger static inline TPMVersion tpm_get_version(void) 34711b20b4SStefan Berger { 35*5cb18b3dSStefan Berger Object *obj = object_resolve_path_type("", TYPE_TPM_TIS, NULL); 36*5cb18b3dSStefan Berger 37*5cb18b3dSStefan Berger if (obj) { 38*5cb18b3dSStefan Berger return tpm_tis_get_tpm_version(obj); 39*5cb18b3dSStefan Berger } 40*5cb18b3dSStefan Berger return TPM_VERSION_UNSPEC; 41711b20b4SStefan Berger } 42711b20b4SStefan Berger 43bdee56f5SPaolo Bonzini #endif /* QEMU_TPM_H */ 44