Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
[qemu.git] / hw / tpm / tpm_ppi.h
1 /*
2 * TPM Physical Presence Interface
3 *
4 * Copyright (C) 2018 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 TPM_TPM_PPI_H
13 #define TPM_TPM_PPI_H
14
15 #include "exec/address-spaces.h"
16
17 typedef struct TPMPPI {
18 MemoryRegion ram;
19 uint8_t *buf;
20 } TPMPPI;
21
22 /**
23 * tpm_ppi_init:
24 * @tpmppi: a TPMPPI
25 * @m: the address-space / MemoryRegion to use
26 * @addr: the address of the PPI region
27 * @obj: the owner object
28 *
29 * Register the TPM PPI memory region at @addr on the given address
30 * space for the object @obj.
31 **/
32 void tpm_ppi_init(TPMPPI *tpmppi, struct MemoryRegion *m,
33 hwaddr addr, Object *obj);
34
35 /**
36 * tpm_ppi_reset:
37 * @tpmppi: a TPMPPI
38 *
39 * Function to call on machine reset. It will check if the "Memory
40 * overwrite" variable is set, and perform a memory clear on volatile
41 * memory if requested.
42 **/
43 void tpm_ppi_reset(TPMPPI *tpmppi);
44
45 #endif /* TPM_TPM_PPI_H */