xref: /openbmc/qemu/include/sysemu/tpm.h (revision 90ce6e26)
1 /*
2  * Public TPM functions
3  *
4  * Copyright (C) 2011-2013 IBM Corporation
5  *
6  * Authors:
7  *  Stefan Berger    <stefanb@us.ibm.com>
8  *
9  * This work is licensed under the terms of the GNU GPL, version 2 or later.
10  * See the COPYING file in the top-level directory.
11  */
12 #ifndef QEMU_TPM_H
13 #define QEMU_TPM_H
14 
15 #include "qemu/option.h"
16 
17 typedef struct TPMState TPMState;
18 
19 int tpm_config_parse(QemuOptsList *opts_list, const char *optarg);
20 int tpm_init(void);
21 void tpm_cleanup(void);
22 
23 typedef enum  TPMVersion {
24     TPM_VERSION_UNSPEC = 0,
25     TPM_VERSION_1_2 = 1,
26     TPM_VERSION_2_0 = 2,
27 } TPMVersion;
28 
29 TPMVersion tpm_tis_get_tpm_version(Object *obj);
30 
31 #define TYPE_TPM_TIS                "tpm-tis"
32 
33 static inline TPMVersion tpm_get_version(void)
34 {
35 #ifdef CONFIG_TPM
36     Object *obj = object_resolve_path_type("", TYPE_TPM_TIS, NULL);
37 
38     if (obj) {
39         return tpm_tis_get_tpm_version(obj);
40     }
41 #endif
42     return TPM_VERSION_UNSPEC;
43 }
44 
45 #endif /* QEMU_TPM_H */
46