]> git.proxmox.com Git - mirror_qemu.git/blame - backends/tpm/tpm_int.h
Merge tag 'pull-target-arm-20231219' of https://git.linaro.org/people/pmaydell/qemu...
[mirror_qemu.git] / backends / tpm / tpm_int.h
CommitLineData
d1a0cf73
SB
1/*
2 * TPM configuration
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 */
ca64b086
PMD
12#ifndef BACKENDS_TPM_INT_H
13#define BACKENDS_TPM_INT_H
d1a0cf73 14
ae960401 15#include "qemu/option.h"
eccc0b0f 16#include "sysemu/tpm.h"
ae960401 17
67af320c 18#define TPM_STANDARD_CMDLINE_OPTS \
bb716238
SB
19 { \
20 .name = "type", \
21 .type = QEMU_OPT_STRING, \
22 .help = "Type of TPM backend", \
23 }
24
4549a8b7
SB
25struct tpm_req_hdr {
26 uint16_t tag;
27 uint32_t len;
28 uint32_t ordinal;
29} QEMU_PACKED;
30
31struct tpm_resp_hdr {
32 uint16_t tag;
33 uint32_t len;
34 uint32_t errcode;
35} QEMU_PACKED;
36
37#define TPM_TAG_RQU_COMMAND 0xc1
38#define TPM_TAG_RQU_AUTH1_COMMAND 0xc2
39#define TPM_TAG_RQU_AUTH2_COMMAND 0xc3
40
41#define TPM_TAG_RSP_COMMAND 0xc4
42#define TPM_TAG_RSP_AUTH1_COMMAND 0xc5
43#define TPM_TAG_RSP_AUTH2_COMMAND 0xc6
44
7e095e84 45#define TPM_BAD_PARAMETER 3
4549a8b7 46#define TPM_FAIL 9
7e095e84
SB
47#define TPM_KEYNOTFOUND 13
48#define TPM_BAD_PARAM_SIZE 25
49#define TPM_ENCRYPT_ERROR 32
50#define TPM_DECRYPT_ERROR 33
51#define TPM_BAD_KEY_PROPERTY 40
52#define TPM_BAD_MODE 44
53#define TPM_BAD_VERSION 46
54#define TPM_BAD_LOCALITY 61
4549a8b7 55
fd859081 56#define TPM_ORD_ContinueSelfTest 0x53
4549a8b7 57#define TPM_ORD_GetTicks 0xf1
abc5cda0 58#define TPM_ORD_GetCapability 0x65
4549a8b7 59
abc5cda0
SB
60#define TPM_CAP_PROPERTY 0x05
61
62#define TPM_CAP_PROP_INPUT_BUFFER 0x124
56a3c24f
SB
63
64/* TPM2 defines */
65#define TPM2_ST_NO_SESSIONS 0x8001
66
67#define TPM2_CC_ReadClock 0x00000181
abc5cda0
SB
68#define TPM2_CC_GetCapability 0x0000017a
69
70#define TPM2_CAP_TPM_PROPERTIES 0x6
71
72#define TPM2_PT_MAX_COMMAND_SIZE 0x11e
56a3c24f 73
7e095e84
SB
74#define TPM_RC_INSUFFICIENT 0x9a
75#define TPM_RC_FAILURE 0x101
76#define TPM_RC_LOCALITY 0x907
77
eccc0b0f
PMD
78int tpm_util_get_buffer_size(int tpm_fd, TPMVersion tpm_version,
79 size_t *buffersize);
80
81typedef struct TPMSizedBuffer {
82 uint32_t size;
83 uint8_t *buffer;
84} TPMSizedBuffer;
85
86void tpm_sized_buffer_reset(TPMSizedBuffer *tsb);
87
ca64b086 88#endif /* BACKENDS_TPM_INT_H */