Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / drivers / char / tpm / tpm_ftpm_tee.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) Microsoft Corporation
4  */
5
6 #ifndef __TPM_FTPM_TEE_H__
7 #define __TPM_FTPM_TEE_H__
8
9 #include <linux/tee_drv.h>
10 #include <linux/tpm.h>
11 #include <linux/uuid.h>
12
13 /* The TAFs ID implemented in this TA */
14 #define FTPM_OPTEE_TA_SUBMIT_COMMAND  (0)
15 #define FTPM_OPTEE_TA_EMULATE_PPI     (1)
16
17 /* max. buffer size supported by fTPM  */
18 #define MAX_COMMAND_SIZE       4096
19 #define MAX_RESPONSE_SIZE      4096
20
21 /**
22  * struct ftpm_tee_private - fTPM's private data
23  * @chip:     struct tpm_chip instance registered with tpm framework.
24  * @state:    internal state
25  * @session:  fTPM TA session identifier.
26  * @resp_len: cached response buffer length.
27  * @resp_buf: cached response buffer.
28  * @ctx:      TEE context handler.
29  * @shm:      Memory pool shared with fTPM TA in TEE.
30  */
31 struct ftpm_tee_private {
32         struct tpm_chip *chip;
33         u32 session;
34         size_t resp_len;
35         u8 resp_buf[MAX_RESPONSE_SIZE];
36         struct tee_context *ctx;
37         struct tee_shm *shm;
38 };
39
40 #endif /* __TPM_FTPM_TEE_H__ */