OSDN Git Service

vl: add missing display_remote++
[qmiga/qemu.git] / qapi / tpm.json
1 # -*- Mode: Python -*-
2 # vim: filetype=python
3 #
4
5 ##
6 # = TPM (trusted platform module) devices
7 ##
8
9 ##
10 # @TpmModel:
11 #
12 # An enumeration of TPM models
13 #
14 # @tpm-tis: TPM TIS model
15 #
16 # @tpm-crb: TPM CRB model (since 2.12)
17 #
18 # @tpm-spapr: TPM SPAPR model (since 5.0)
19 #
20 # Since: 1.5
21 ##
22 { 'enum': 'TpmModel', 'data': [ 'tpm-tis', 'tpm-crb', 'tpm-spapr' ],
23   'if': 'CONFIG_TPM' }
24
25 ##
26 # @query-tpm-models:
27 #
28 # Return a list of supported TPM models
29 #
30 # Returns: a list of TpmModel
31 #
32 # Since: 1.5
33 #
34 # Example:
35 #
36 # -> { "execute": "query-tpm-models" }
37 # <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] }
38 ##
39 { 'command': 'query-tpm-models', 'returns': ['TpmModel'],
40   'if': 'CONFIG_TPM' }
41
42 ##
43 # @TpmType:
44 #
45 # An enumeration of TPM types
46 #
47 # @passthrough: TPM passthrough type
48 #
49 # @emulator: Software Emulator TPM type (since 2.11)
50 #
51 # Since: 1.5
52 ##
53 { 'enum': 'TpmType', 'data': [ 'passthrough', 'emulator' ],
54   'if': 'CONFIG_TPM' }
55
56 ##
57 # @query-tpm-types:
58 #
59 # Return a list of supported TPM types
60 #
61 # Returns: a list of TpmType
62 #
63 # Since: 1.5
64 #
65 # Example:
66 #
67 # -> { "execute": "query-tpm-types" }
68 # <- { "return": [ "passthrough", "emulator" ] }
69 ##
70 { 'command': 'query-tpm-types', 'returns': ['TpmType'],
71   'if': 'CONFIG_TPM' }
72
73 ##
74 # @TPMPassthroughOptions:
75 #
76 # Information about the TPM passthrough type
77 #
78 # @path: string describing the path used for accessing the TPM device
79 #
80 # @cancel-path: string showing the TPM's sysfs cancel file for
81 #     cancellation of TPM commands while they are executing
82 #
83 # Since: 1.5
84 ##
85 { 'struct': 'TPMPassthroughOptions',
86   'data': { '*path': 'str',
87             '*cancel-path': 'str' },
88   'if': 'CONFIG_TPM' }
89
90 ##
91 # @TPMEmulatorOptions:
92 #
93 # Information about the TPM emulator type
94 #
95 # @chardev: Name of a unix socket chardev
96 #
97 # Since: 2.11
98 ##
99 { 'struct': 'TPMEmulatorOptions', 'data': { 'chardev' : 'str' },
100   'if': 'CONFIG_TPM' }
101
102 ##
103 # @TPMPassthroughOptionsWrapper:
104 #
105 # Since: 1.5
106 ##
107 { 'struct': 'TPMPassthroughOptionsWrapper',
108   'data': { 'data': 'TPMPassthroughOptions' },
109   'if': 'CONFIG_TPM' }
110
111 ##
112 # @TPMEmulatorOptionsWrapper:
113 #
114 # Since: 2.11
115 ##
116 { 'struct': 'TPMEmulatorOptionsWrapper',
117   'data': { 'data': 'TPMEmulatorOptions' },
118   'if': 'CONFIG_TPM' }
119
120 ##
121 # @TpmTypeOptions:
122 #
123 # A union referencing different TPM backend types' configuration
124 # options
125 #
126 # @type:
127 #     - 'passthrough' The configuration options for the TPM
128 #       passthrough type
129 #     - 'emulator' The configuration options for TPM emulator backend
130 #       type
131 #
132 # Since: 1.5
133 ##
134 { 'union': 'TpmTypeOptions',
135   'base': { 'type': 'TpmType' },
136   'discriminator': 'type',
137   'data': { 'passthrough' : 'TPMPassthroughOptionsWrapper',
138             'emulator': 'TPMEmulatorOptionsWrapper' },
139   'if': 'CONFIG_TPM' }
140
141 ##
142 # @TPMInfo:
143 #
144 # Information about the TPM
145 #
146 # @id: The Id of the TPM
147 #
148 # @model: The TPM frontend model
149 #
150 # @options: The TPM (backend) type configuration options
151 #
152 # Since: 1.5
153 ##
154 { 'struct': 'TPMInfo',
155   'data': {'id': 'str',
156            'model': 'TpmModel',
157            'options': 'TpmTypeOptions' },
158   'if': 'CONFIG_TPM' }
159
160 ##
161 # @query-tpm:
162 #
163 # Return information about the TPM device
164 #
165 # Returns: @TPMInfo on success
166 #
167 # Since: 1.5
168 #
169 # Example:
170 #
171 # -> { "execute": "query-tpm" }
172 # <- { "return":
173 #      [
174 #        { "model": "tpm-tis",
175 #          "options":
176 #            { "type": "passthrough",
177 #              "data":
178 #                { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
179 #                  "path": "/dev/tpm0"
180 #                }
181 #            },
182 #          "id": "tpm0"
183 #        }
184 #      ]
185 #    }
186 ##
187 { 'command': 'query-tpm', 'returns': ['TPMInfo'],
188   'if': 'CONFIG_TPM' }