misc-target.json (7c18f2d663521f1b31b821a13358ce38075eaf7d) | misc-target.json (a937b6aa739f65f2cae2ad9a7eb65a309ad2a359) |
---|---|
1# -*- Mode: Python -*- 2# vim: filetype=python 3# 4 5## 6# @rtc-reset-reinjection: 7# | 1# -*- Mode: Python -*- 2# vim: filetype=python 3# 4 5## 6# @rtc-reset-reinjection: 7# |
8# This command will reset the RTC interrupt reinjection backlog. 9# Can be used if another mechanism to synchronize guest time 10# is in effect, for example QEMU guest agent's guest-set-time 11# command. | 8# This command will reset the RTC interrupt reinjection backlog. Can 9# be used if another mechanism to synchronize guest time is in effect, 10# for example QEMU guest agent's guest-set-time command. |
12# 13# Since: 2.1 14# 15# Example: 16# 17# -> { "execute": "rtc-reset-reinjection" } 18# <- { "return": {} } | 11# 12# Since: 2.1 13# 14# Example: 15# 16# -> { "execute": "rtc-reset-reinjection" } 17# <- { "return": {} } |
19# | |
20## 21{ 'command': 'rtc-reset-reinjection', 22 'if': 'TARGET_I386' } 23 24## 25# @SevState: 26# 27# An enumeration of SEV state information used during @query-sev. 28# 29# @uninit: The guest is uninitialized. 30# | 18## 19{ 'command': 'rtc-reset-reinjection', 20 'if': 'TARGET_I386' } 21 22## 23# @SevState: 24# 25# An enumeration of SEV state information used during @query-sev. 26# 27# @uninit: The guest is uninitialized. 28# |
31# @launch-update: The guest is currently being launched; plaintext data and 32# register state is being imported. | 29# @launch-update: The guest is currently being launched; plaintext 30# data and register state is being imported. |
33# | 31# |
34# @launch-secret: The guest is currently being launched; ciphertext data 35# is being imported. | 32# @launch-secret: The guest is currently being launched; ciphertext 33# data is being imported. |
36# 37# @running: The guest is fully launched or migrated in. 38# | 34# 35# @running: The guest is fully launched or migrated in. 36# |
39# @send-update: The guest is currently being migrated out to another machine. | 37# @send-update: The guest is currently being migrated out to another 38# machine. |
40# | 39# |
41# @receive-update: The guest is currently being migrated from another machine. | 40# @receive-update: The guest is currently being migrated from another 41# machine. |
42# 43# Since: 2.12 44## 45{ 'enum': 'SevState', 46 'data': ['uninit', 'launch-update', 'launch-secret', 'running', 47 'send-update', 'receive-update' ], 48 'if': 'TARGET_I386' } 49 --- 40 unchanged lines hidden (view full) --- 90# Since: 2.12 91# 92# Example: 93# 94# -> { "execute": "query-sev" } 95# <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0, 96# "build-id" : 0, "policy" : 0, "state" : "running", 97# "handle" : 1 } } | 42# 43# Since: 2.12 44## 45{ 'enum': 'SevState', 46 'data': ['uninit', 'launch-update', 'launch-secret', 'running', 47 'send-update', 'receive-update' ], 48 'if': 'TARGET_I386' } 49 --- 40 unchanged lines hidden (view full) --- 90# Since: 2.12 91# 92# Example: 93# 94# -> { "execute": "query-sev" } 95# <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0, 96# "build-id" : 0, "policy" : 0, "state" : "running", 97# "handle" : 1 } } |
98# | |
99## 100{ 'command': 'query-sev', 'returns': 'SevInfo', 101 'if': 'TARGET_I386' } 102 103## 104# @SevLaunchMeasureInfo: 105# 106# SEV Guest Launch measurement information --- 13 unchanged lines hidden (view full) --- 120# Returns: The @SevLaunchMeasureInfo for the guest 121# 122# Since: 2.12 123# 124# Example: 125# 126# -> { "execute": "query-sev-launch-measure" } 127# <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } } | 98## 99{ 'command': 'query-sev', 'returns': 'SevInfo', 100 'if': 'TARGET_I386' } 101 102## 103# @SevLaunchMeasureInfo: 104# 105# SEV Guest Launch measurement information --- 13 unchanged lines hidden (view full) --- 119# Returns: The @SevLaunchMeasureInfo for the guest 120# 121# Since: 2.12 122# 123# Example: 124# 125# -> { "execute": "query-sev-launch-measure" } 126# <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } } |
128# | |
129## 130{ 'command': 'query-sev-launch-measure', 'returns': 'SevLaunchMeasureInfo', 131 'if': 'TARGET_I386' } 132 133## 134# @SevCapability: 135# | 127## 128{ 'command': 'query-sev-launch-measure', 'returns': 'SevLaunchMeasureInfo', 129 'if': 'TARGET_I386' } 130 131## 132# @SevCapability: 133# |
136# The struct describes capability for a Secure Encrypted Virtualization 137# feature. | 134# The struct describes capability for a Secure Encrypted 135# Virtualization feature. |
138# 139# @pdh: Platform Diffie-Hellman key (base64 encoded) 140# 141# @cert-chain: PDH certificate chain (base64 encoded) 142# 143# @cpu0-id: Unique ID of CPU0 (base64 encoded) (since 7.1) 144# 145# @cbitpos: C-bit location in page table entry 146# | 136# 137# @pdh: Platform Diffie-Hellman key (base64 encoded) 138# 139# @cert-chain: PDH certificate chain (base64 encoded) 140# 141# @cpu0-id: Unique ID of CPU0 (base64 encoded) (since 7.1) 142# 143# @cbitpos: C-bit location in page table entry 144# |
147# @reduced-phys-bits: Number of physical Address bit reduction when SEV is 148# enabled | 145# @reduced-phys-bits: Number of physical Address bit reduction when 146# SEV is enabled |
149# 150# Since: 2.12 151## 152{ 'struct': 'SevCapability', 153 'data': { 'pdh': 'str', 154 'cert-chain': 'str', 155 'cpu0-id': 'str', 156 'cbitpos': 'int', 157 'reduced-phys-bits': 'int'}, 158 'if': 'TARGET_I386' } 159 160## 161# @query-sev-capabilities: 162# | 147# 148# Since: 2.12 149## 150{ 'struct': 'SevCapability', 151 'data': { 'pdh': 'str', 152 'cert-chain': 'str', 153 'cpu0-id': 'str', 154 'cbitpos': 'int', 155 'reduced-phys-bits': 'int'}, 156 'if': 'TARGET_I386' } 157 158## 159# @query-sev-capabilities: 160# |
163# This command is used to get the SEV capabilities, and is supported on AMD 164# X86 platforms only. | 161# This command is used to get the SEV capabilities, and is supported 162# on AMD X86 platforms only. |
165# 166# Returns: SevCapability objects. 167# 168# Since: 2.12 169# 170# Example: 171# 172# -> { "execute": "query-sev-capabilities" } 173# <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE", 174# "cpu0-id": "2lvmGwo+...61iEinw==", 175# "cbitpos": 47, "reduced-phys-bits": 1}} | 163# 164# Returns: SevCapability objects. 165# 166# Since: 2.12 167# 168# Example: 169# 170# -> { "execute": "query-sev-capabilities" } 171# <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE", 172# "cpu0-id": "2lvmGwo+...61iEinw==", 173# "cbitpos": 47, "reduced-phys-bits": 1}} |
176# | |
177## 178{ 'command': 'query-sev-capabilities', 'returns': 'SevCapability', 179 'if': 'TARGET_I386' } 180 181## 182# @sev-inject-launch-secret: 183# 184# This command injects a secret blob into memory of SEV guest. --- 26 unchanged lines hidden (view full) --- 211 212## 213# @query-sev-attestation-report: 214# 215# This command is used to get the SEV attestation report, and is 216# supported on AMD X86 platforms only. 217# 218# @mnonce: a random 16 bytes value encoded in base64 (it will be | 174## 175{ 'command': 'query-sev-capabilities', 'returns': 'SevCapability', 176 'if': 'TARGET_I386' } 177 178## 179# @sev-inject-launch-secret: 180# 181# This command injects a secret blob into memory of SEV guest. --- 26 unchanged lines hidden (view full) --- 208 209## 210# @query-sev-attestation-report: 211# 212# This command is used to get the SEV attestation report, and is 213# supported on AMD X86 platforms only. 214# 215# @mnonce: a random 16 bytes value encoded in base64 (it will be |
219# included in report) | 216# included in report) |
220# 221# Returns: SevAttestationReport objects. 222# 223# Since: 6.1 224# 225# Example: 226# 227# -> { "execute" : "query-sev-attestation-report", 228# "arguments": { "mnonce": "aaaaaaa" } } 229# <- { "return" : { "data": "aaaaaaaabbbddddd"} } | 217# 218# Returns: SevAttestationReport objects. 219# 220# Since: 6.1 221# 222# Example: 223# 224# -> { "execute" : "query-sev-attestation-report", 225# "arguments": { "mnonce": "aaaaaaa" } } 226# <- { "return" : { "data": "aaaaaaaabbbddddd"} } |
230# | |
231## 232{ 'command': 'query-sev-attestation-report', 233 'data': { 'mnonce': 'str' }, 234 'returns': 'SevAttestationReport', 235 'if': 'TARGET_I386' } 236 237## 238# @dump-skeys: --- 6 unchanged lines hidden (view full) --- 245# 246# Since: 2.5 247# 248# Example: 249# 250# -> { "execute": "dump-skeys", 251# "arguments": { "filename": "/tmp/skeys" } } 252# <- { "return": {} } | 227## 228{ 'command': 'query-sev-attestation-report', 229 'data': { 'mnonce': 'str' }, 230 'returns': 'SevAttestationReport', 231 'if': 'TARGET_I386' } 232 233## 234# @dump-skeys: --- 6 unchanged lines hidden (view full) --- 241# 242# Since: 2.5 243# 244# Example: 245# 246# -> { "execute": "dump-skeys", 247# "arguments": { "filename": "/tmp/skeys" } } 248# <- { "return": {} } |
253# | |
254## 255{ 'command': 'dump-skeys', 256 'data': { 'filename': 'str' }, 257 'if': 'TARGET_S390X' } 258 259## 260# @GICCapability: 261# 262# The struct describes capability for a specific GIC (Generic | 249## 250{ 'command': 'dump-skeys', 251 'data': { 'filename': 'str' }, 252 'if': 'TARGET_S390X' } 253 254## 255# @GICCapability: 256# 257# The struct describes capability for a specific GIC (Generic |
263# Interrupt Controller) version. These bits are not only decided by 264# QEMU/KVM software version, but also decided by the hardware that 265# the program is running upon. | 258# Interrupt Controller) version. These bits are not only decided by 259# QEMU/KVM software version, but also decided by the hardware that the 260# program is running upon. |
266# | 261# |
267# @version: version of GIC to be described. Currently, only 2 and 3 268# are supported. | 262# @version: version of GIC to be described. Currently, only 2 and 3 263# are supported. |
269# 270# @emulated: whether current QEMU/hardware supports emulated GIC | 264# 265# @emulated: whether current QEMU/hardware supports emulated GIC |
271# device in user space. | 266# device in user space. |
272# | 267# |
273# @kernel: whether current QEMU/hardware supports hardware 274# accelerated GIC device in kernel. | 268# @kernel: whether current QEMU/hardware supports hardware accelerated 269# GIC device in kernel. |
275# 276# Since: 2.6 277## 278{ 'struct': 'GICCapability', 279 'data': { 'version': 'int', 280 'emulated': 'bool', 281 'kernel': 'bool' }, 282 'if': 'TARGET_ARM' } 283 284## 285# @query-gic-capabilities: 286# | 270# 271# Since: 2.6 272## 273{ 'struct': 'GICCapability', 274 'data': { 'version': 'int', 275 'emulated': 'bool', 276 'kernel': 'bool' }, 277 'if': 'TARGET_ARM' } 278 279## 280# @query-gic-capabilities: 281# |
287# This command is ARM-only. It will return a list of GICCapability | 282# This command is ARM-only. It will return a list of GICCapability |
288# objects that describe its capability bits. 289# 290# Returns: a list of GICCapability objects. 291# 292# Since: 2.6 293# 294# Example: 295# 296# -> { "execute": "query-gic-capabilities" } 297# <- { "return": [{ "version": 2, "emulated": true, "kernel": false }, 298# { "version": 3, "emulated": false, "kernel": true } ] } | 283# objects that describe its capability bits. 284# 285# Returns: a list of GICCapability objects. 286# 287# Since: 2.6 288# 289# Example: 290# 291# -> { "execute": "query-gic-capabilities" } 292# <- { "return": [{ "version": 2, "emulated": true, "kernel": false }, 293# { "version": 3, "emulated": false, "kernel": true } ] } |
299# | |
300## 301{ 'command': 'query-gic-capabilities', 'returns': ['GICCapability'], 302 'if': 'TARGET_ARM' } 303 304## 305# @SGXEPCSection: 306# 307# Information about intel SGX EPC section info --- 44 unchanged lines hidden (view full) --- 352# 353# Example: 354# 355# -> { "execute": "query-sgx" } 356# <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true, 357# "flc": true, 358# "sections": [{"node": 0, "size": 67108864}, 359# {"node": 1, "size": 29360128}]} } | 294## 295{ 'command': 'query-gic-capabilities', 'returns': ['GICCapability'], 296 'if': 'TARGET_ARM' } 297 298## 299# @SGXEPCSection: 300# 301# Information about intel SGX EPC section info --- 44 unchanged lines hidden (view full) --- 346# 347# Example: 348# 349# -> { "execute": "query-sgx" } 350# <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true, 351# "flc": true, 352# "sections": [{"node": 0, "size": 67108864}, 353# {"node": 1, "size": 29360128}]} } |
360# | |
361## 362{ 'command': 'query-sgx', 'returns': 'SGXInfo', 'if': 'TARGET_I386' } 363 364## 365# @query-sgx-capabilities: 366# 367# Returns information from host SGX capabilities 368# 369# Returns: @SGXInfo 370# 371# Since: 6.2 372# 373# Example: 374# 375# -> { "execute": "query-sgx-capabilities" } 376# <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true, 377# "flc": true, 378# "section" : [{"node": 0, "size": 67108864}, 379# {"node": 1, "size": 29360128}]} } | 354## 355{ 'command': 'query-sgx', 'returns': 'SGXInfo', 'if': 'TARGET_I386' } 356 357## 358# @query-sgx-capabilities: 359# 360# Returns information from host SGX capabilities 361# 362# Returns: @SGXInfo 363# 364# Since: 6.2 365# 366# Example: 367# 368# -> { "execute": "query-sgx-capabilities" } 369# <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true, 370# "flc": true, 371# "section" : [{"node": 0, "size": 67108864}, 372# {"node": 1, "size": 29360128}]} } |
380# | |
381## 382{ 'command': 'query-sgx-capabilities', 'returns': 'SGXInfo', 'if': 'TARGET_I386' } 383 384 385## 386# @EvtchnPortType: 387# 388# An enumeration of Xen event channel port types. --- 76 unchanged lines hidden (view full) --- 465# "vcpu": 0, 466# "remote-domain": "", 467# "masked": false, 468# "type": "virq", 469# "target": 0 470# } 471# ] 472# } | 373## 374{ 'command': 'query-sgx-capabilities', 'returns': 'SGXInfo', 'if': 'TARGET_I386' } 375 376 377## 378# @EvtchnPortType: 379# 380# An enumeration of Xen event channel port types. --- 76 unchanged lines hidden (view full) --- 457# "vcpu": 0, 458# "remote-domain": "", 459# "masked": false, 460# "type": "virq", 461# "target": 0 462# } 463# ] 464# } |
473# | |
474## 475{ 'command': 'xen-event-list', 476 'returns': ['EvtchnInfo'], 477 'if': 'TARGET_I386' } 478 479## 480# @xen-event-inject: 481# 482# Inject a Xen event channel port (interrupt) to the guest. 483# 484# @port: The port number 485# | 465## 466{ 'command': 'xen-event-list', 467 'returns': ['EvtchnInfo'], 468 'if': 'TARGET_I386' } 469 470## 471# @xen-event-inject: 472# 473# Inject a Xen event channel port (interrupt) to the guest. 474# 475# @port: The port number 476# |
486# Returns: - Nothing on success. | 477# Returns: 478# - Nothing on success. |
487# 488# Since: 8.0 489# 490# Example: 491# 492# -> { "execute": "xen-event-inject", "arguments": { "port": 1 } } 493# <- { "return": { } } | 479# 480# Since: 8.0 481# 482# Example: 483# 484# -> { "execute": "xen-event-inject", "arguments": { "port": 1 } } 485# <- { "return": { } } |
494# | |
495## 496{ 'command': 'xen-event-inject', 497 'data': { 'port': 'uint32' }, 498 'if': 'TARGET_I386' } | 486## 487{ 'command': 'xen-event-inject', 488 'data': { 'port': 'uint32' }, 489 'if': 'TARGET_I386' } |