1b0227cdbSMarkus Armbruster# -*- Mode: Python -*- 2f7160f32SAndrea Bolognani# vim: filetype=python 3b0227cdbSMarkus Armbruster# 4b0227cdbSMarkus Armbruster 5b0227cdbSMarkus Armbruster## 6b0227cdbSMarkus Armbruster# @RTC_CHANGE: 7b0227cdbSMarkus Armbruster# 8b0227cdbSMarkus Armbruster# Emitted when the guest changes the RTC time. 9b0227cdbSMarkus Armbruster# 10b0227cdbSMarkus Armbruster# @offset: offset between base RTC clock (as specified by -rtc base), and 11b0227cdbSMarkus Armbruster# new RTC clock value 12b0227cdbSMarkus Armbruster# 13b0227cdbSMarkus Armbruster# Note: This event is rate-limited. 14b0227cdbSMarkus Armbruster# 159bc6e893SMarkus Armbruster# Since: 0.13 16b0227cdbSMarkus Armbruster# 17b0227cdbSMarkus Armbruster# Example: 18b0227cdbSMarkus Armbruster# 19b0227cdbSMarkus Armbruster# <- { "event": "RTC_CHANGE", 20b0227cdbSMarkus Armbruster# "data": { "offset": 78 }, 21b0227cdbSMarkus Armbruster# "timestamp": { "seconds": 1267020223, "microseconds": 435656 } } 22b0227cdbSMarkus Armbruster# 23b0227cdbSMarkus Armbruster## 24b0227cdbSMarkus Armbruster{ 'event': 'RTC_CHANGE', 25b0227cdbSMarkus Armbruster 'data': { 'offset': 'int' }, 268a9f1e1dSMarc-André Lureau 'if': { 'any': [ 'TARGET_ALPHA', 278a9f1e1dSMarc-André Lureau 'TARGET_ARM', 288a9f1e1dSMarc-André Lureau 'TARGET_HPPA', 298a9f1e1dSMarc-André Lureau 'TARGET_I386', 308a9f1e1dSMarc-André Lureau 'TARGET_MIPS', 318a9f1e1dSMarc-André Lureau 'TARGET_MIPS64', 328a9f1e1dSMarc-André Lureau 'TARGET_PPC', 338a9f1e1dSMarc-André Lureau 'TARGET_PPC64', 348a9f1e1dSMarc-André Lureau 'TARGET_S390X', 358a9f1e1dSMarc-André Lureau 'TARGET_SH4', 368a9f1e1dSMarc-André Lureau 'TARGET_SPARC' ] } } 37b0227cdbSMarkus Armbruster 38b0227cdbSMarkus Armbruster## 39b0227cdbSMarkus Armbruster# @rtc-reset-reinjection: 40b0227cdbSMarkus Armbruster# 41b0227cdbSMarkus Armbruster# This command will reset the RTC interrupt reinjection backlog. 42b0227cdbSMarkus Armbruster# Can be used if another mechanism to synchronize guest time 43b0227cdbSMarkus Armbruster# is in effect, for example QEMU guest agent's guest-set-time 44b0227cdbSMarkus Armbruster# command. 45b0227cdbSMarkus Armbruster# 46b0227cdbSMarkus Armbruster# Since: 2.1 47b0227cdbSMarkus Armbruster# 48b0227cdbSMarkus Armbruster# Example: 49b0227cdbSMarkus Armbruster# 50b0227cdbSMarkus Armbruster# -> { "execute": "rtc-reset-reinjection" } 51b0227cdbSMarkus Armbruster# <- { "return": {} } 52b0227cdbSMarkus Armbruster# 53b0227cdbSMarkus Armbruster## 54b0227cdbSMarkus Armbruster{ 'command': 'rtc-reset-reinjection', 558a9f1e1dSMarc-André Lureau 'if': 'TARGET_I386' } 56b0227cdbSMarkus Armbruster 57b0227cdbSMarkus Armbruster 58b0227cdbSMarkus Armbruster## 59b0227cdbSMarkus Armbruster# @SevState: 60b0227cdbSMarkus Armbruster# 61b0227cdbSMarkus Armbruster# An enumeration of SEV state information used during @query-sev. 62b0227cdbSMarkus Armbruster# 63b0227cdbSMarkus Armbruster# @uninit: The guest is uninitialized. 64b0227cdbSMarkus Armbruster# 65b0227cdbSMarkus Armbruster# @launch-update: The guest is currently being launched; plaintext data and 66b0227cdbSMarkus Armbruster# register state is being imported. 67b0227cdbSMarkus Armbruster# 68b0227cdbSMarkus Armbruster# @launch-secret: The guest is currently being launched; ciphertext data 69b0227cdbSMarkus Armbruster# is being imported. 70b0227cdbSMarkus Armbruster# 71b0227cdbSMarkus Armbruster# @running: The guest is fully launched or migrated in. 72b0227cdbSMarkus Armbruster# 73b0227cdbSMarkus Armbruster# @send-update: The guest is currently being migrated out to another machine. 74b0227cdbSMarkus Armbruster# 75b0227cdbSMarkus Armbruster# @receive-update: The guest is currently being migrated from another machine. 76b0227cdbSMarkus Armbruster# 77b0227cdbSMarkus Armbruster# Since: 2.12 78b0227cdbSMarkus Armbruster## 79b0227cdbSMarkus Armbruster{ 'enum': 'SevState', 80b0227cdbSMarkus Armbruster 'data': ['uninit', 'launch-update', 'launch-secret', 'running', 81b0227cdbSMarkus Armbruster 'send-update', 'receive-update' ], 828a9f1e1dSMarc-André Lureau 'if': 'TARGET_I386' } 83b0227cdbSMarkus Armbruster 84b0227cdbSMarkus Armbruster## 85b0227cdbSMarkus Armbruster# @SevInfo: 86b0227cdbSMarkus Armbruster# 87b0227cdbSMarkus Armbruster# Information about Secure Encrypted Virtualization (SEV) support 88b0227cdbSMarkus Armbruster# 89b0227cdbSMarkus Armbruster# @enabled: true if SEV is active 90b0227cdbSMarkus Armbruster# 91b0227cdbSMarkus Armbruster# @api-major: SEV API major version 92b0227cdbSMarkus Armbruster# 93b0227cdbSMarkus Armbruster# @api-minor: SEV API minor version 94b0227cdbSMarkus Armbruster# 95b0227cdbSMarkus Armbruster# @build-id: SEV FW build id 96b0227cdbSMarkus Armbruster# 97b0227cdbSMarkus Armbruster# @policy: SEV policy value 98b0227cdbSMarkus Armbruster# 99b0227cdbSMarkus Armbruster# @state: SEV guest state 100b0227cdbSMarkus Armbruster# 101b0227cdbSMarkus Armbruster# @handle: SEV firmware handle 102b0227cdbSMarkus Armbruster# 103b0227cdbSMarkus Armbruster# Since: 2.12 104b0227cdbSMarkus Armbruster## 105b0227cdbSMarkus Armbruster{ 'struct': 'SevInfo', 106b0227cdbSMarkus Armbruster 'data': { 'enabled': 'bool', 107b0227cdbSMarkus Armbruster 'api-major': 'uint8', 108b0227cdbSMarkus Armbruster 'api-minor' : 'uint8', 109b0227cdbSMarkus Armbruster 'build-id' : 'uint8', 110b0227cdbSMarkus Armbruster 'policy' : 'uint32', 111b0227cdbSMarkus Armbruster 'state' : 'SevState', 112b0227cdbSMarkus Armbruster 'handle' : 'uint32' 113b0227cdbSMarkus Armbruster }, 1148a9f1e1dSMarc-André Lureau 'if': 'TARGET_I386' 115b0227cdbSMarkus Armbruster} 116b0227cdbSMarkus Armbruster 117b0227cdbSMarkus Armbruster## 118b0227cdbSMarkus Armbruster# @query-sev: 119b0227cdbSMarkus Armbruster# 120b0227cdbSMarkus Armbruster# Returns information about SEV 121b0227cdbSMarkus Armbruster# 122b0227cdbSMarkus Armbruster# Returns: @SevInfo 123b0227cdbSMarkus Armbruster# 124b0227cdbSMarkus Armbruster# Since: 2.12 125b0227cdbSMarkus Armbruster# 126b0227cdbSMarkus Armbruster# Example: 127b0227cdbSMarkus Armbruster# 128b0227cdbSMarkus Armbruster# -> { "execute": "query-sev" } 129b0227cdbSMarkus Armbruster# <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0, 130b0227cdbSMarkus Armbruster# "build-id" : 0, "policy" : 0, "state" : "running", 131b0227cdbSMarkus Armbruster# "handle" : 1 } } 132b0227cdbSMarkus Armbruster# 133b0227cdbSMarkus Armbruster## 134b0227cdbSMarkus Armbruster{ 'command': 'query-sev', 'returns': 'SevInfo', 1358a9f1e1dSMarc-André Lureau 'if': 'TARGET_I386' } 136b0227cdbSMarkus Armbruster 137b0227cdbSMarkus Armbruster 138b0227cdbSMarkus Armbruster## 139b0227cdbSMarkus Armbruster# @SevLaunchMeasureInfo: 140b0227cdbSMarkus Armbruster# 141b0227cdbSMarkus Armbruster# SEV Guest Launch measurement information 142b0227cdbSMarkus Armbruster# 143b0227cdbSMarkus Armbruster# @data: the measurement value encoded in base64 144b0227cdbSMarkus Armbruster# 145b0227cdbSMarkus Armbruster# Since: 2.12 146b0227cdbSMarkus Armbruster# 147b0227cdbSMarkus Armbruster## 148b0227cdbSMarkus Armbruster{ 'struct': 'SevLaunchMeasureInfo', 'data': {'data': 'str'}, 1498a9f1e1dSMarc-André Lureau 'if': 'TARGET_I386' } 150b0227cdbSMarkus Armbruster 151b0227cdbSMarkus Armbruster## 152b0227cdbSMarkus Armbruster# @query-sev-launch-measure: 153b0227cdbSMarkus Armbruster# 154b0227cdbSMarkus Armbruster# Query the SEV guest launch information. 155b0227cdbSMarkus Armbruster# 156b0227cdbSMarkus Armbruster# Returns: The @SevLaunchMeasureInfo for the guest 157b0227cdbSMarkus Armbruster# 158b0227cdbSMarkus Armbruster# Since: 2.12 159b0227cdbSMarkus Armbruster# 160b0227cdbSMarkus Armbruster# Example: 161b0227cdbSMarkus Armbruster# 162b0227cdbSMarkus Armbruster# -> { "execute": "query-sev-launch-measure" } 163b0227cdbSMarkus Armbruster# <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } } 164b0227cdbSMarkus Armbruster# 165b0227cdbSMarkus Armbruster## 166b0227cdbSMarkus Armbruster{ 'command': 'query-sev-launch-measure', 'returns': 'SevLaunchMeasureInfo', 1678a9f1e1dSMarc-André Lureau 'if': 'TARGET_I386' } 168b0227cdbSMarkus Armbruster 169b0227cdbSMarkus Armbruster 170b0227cdbSMarkus Armbruster## 171b0227cdbSMarkus Armbruster# @SevCapability: 172b0227cdbSMarkus Armbruster# 173b0227cdbSMarkus Armbruster# The struct describes capability for a Secure Encrypted Virtualization 174b0227cdbSMarkus Armbruster# feature. 175b0227cdbSMarkus Armbruster# 176b0227cdbSMarkus Armbruster# @pdh: Platform Diffie-Hellman key (base64 encoded) 177b0227cdbSMarkus Armbruster# 178b0227cdbSMarkus Armbruster# @cert-chain: PDH certificate chain (base64 encoded) 179b0227cdbSMarkus Armbruster# 180b0227cdbSMarkus Armbruster# @cbitpos: C-bit location in page table entry 181b0227cdbSMarkus Armbruster# 182b0227cdbSMarkus Armbruster# @reduced-phys-bits: Number of physical Address bit reduction when SEV is 183b0227cdbSMarkus Armbruster# enabled 184b0227cdbSMarkus Armbruster# 185b0227cdbSMarkus Armbruster# Since: 2.12 186b0227cdbSMarkus Armbruster## 187b0227cdbSMarkus Armbruster{ 'struct': 'SevCapability', 188b0227cdbSMarkus Armbruster 'data': { 'pdh': 'str', 189b0227cdbSMarkus Armbruster 'cert-chain': 'str', 190b0227cdbSMarkus Armbruster 'cbitpos': 'int', 191b0227cdbSMarkus Armbruster 'reduced-phys-bits': 'int'}, 1928a9f1e1dSMarc-André Lureau 'if': 'TARGET_I386' } 193b0227cdbSMarkus Armbruster 194b0227cdbSMarkus Armbruster## 195b0227cdbSMarkus Armbruster# @query-sev-capabilities: 196b0227cdbSMarkus Armbruster# 197b0227cdbSMarkus Armbruster# This command is used to get the SEV capabilities, and is supported on AMD 198b0227cdbSMarkus Armbruster# X86 platforms only. 199b0227cdbSMarkus Armbruster# 200b0227cdbSMarkus Armbruster# Returns: SevCapability objects. 201b0227cdbSMarkus Armbruster# 202b0227cdbSMarkus Armbruster# Since: 2.12 203b0227cdbSMarkus Armbruster# 204b0227cdbSMarkus Armbruster# Example: 205b0227cdbSMarkus Armbruster# 206b0227cdbSMarkus Armbruster# -> { "execute": "query-sev-capabilities" } 207b0227cdbSMarkus Armbruster# <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE", 208b0227cdbSMarkus Armbruster# "cbitpos": 47, "reduced-phys-bits": 5}} 209b0227cdbSMarkus Armbruster# 210b0227cdbSMarkus Armbruster## 211b0227cdbSMarkus Armbruster{ 'command': 'query-sev-capabilities', 'returns': 'SevCapability', 2128a9f1e1dSMarc-André Lureau 'if': 'TARGET_I386' } 213b0227cdbSMarkus Armbruster 214b0227cdbSMarkus Armbruster## 215c7f7e697STobin Feldman-Fitzthum# @sev-inject-launch-secret: 216c7f7e697STobin Feldman-Fitzthum# 217c7f7e697STobin Feldman-Fitzthum# This command injects a secret blob into memory of SEV guest. 218c7f7e697STobin Feldman-Fitzthum# 219c7f7e697STobin Feldman-Fitzthum# @packet-header: the launch secret packet header encoded in base64 220c7f7e697STobin Feldman-Fitzthum# 221c7f7e697STobin Feldman-Fitzthum# @secret: the launch secret data to be injected encoded in base64 222c7f7e697STobin Feldman-Fitzthum# 223c7f7e697STobin Feldman-Fitzthum# @gpa: the guest physical address where secret will be injected. 224c7f7e697STobin Feldman-Fitzthum# 225c7f7e697STobin Feldman-Fitzthum# Since: 6.0 226c7f7e697STobin Feldman-Fitzthum# 227c7f7e697STobin Feldman-Fitzthum## 228c7f7e697STobin Feldman-Fitzthum{ 'command': 'sev-inject-launch-secret', 229f522cef9SJames Bottomley 'data': { 'packet-header': 'str', 'secret': 'str', '*gpa': 'uint64' }, 2308a9f1e1dSMarc-André Lureau 'if': 'TARGET_I386' } 231c7f7e697STobin Feldman-Fitzthum 232c7f7e697STobin Feldman-Fitzthum## 233993e2605SPhilippe Mathieu-Daudé# @SevAttestationReport: 234993e2605SPhilippe Mathieu-Daudé# 235993e2605SPhilippe Mathieu-Daudé# The struct describes attestation report for a Secure Encrypted 236993e2605SPhilippe Mathieu-Daudé# Virtualization feature. 237993e2605SPhilippe Mathieu-Daudé# 238993e2605SPhilippe Mathieu-Daudé# @data: guest attestation report (base64 encoded) 239993e2605SPhilippe Mathieu-Daudé# 240993e2605SPhilippe Mathieu-Daudé# 241993e2605SPhilippe Mathieu-Daudé# Since: 6.1 242993e2605SPhilippe Mathieu-Daudé## 243993e2605SPhilippe Mathieu-Daudé{ 'struct': 'SevAttestationReport', 244993e2605SPhilippe Mathieu-Daudé 'data': { 'data': 'str'}, 245993e2605SPhilippe Mathieu-Daudé 'if': 'TARGET_I386' } 246993e2605SPhilippe Mathieu-Daudé 247993e2605SPhilippe Mathieu-Daudé## 248993e2605SPhilippe Mathieu-Daudé# @query-sev-attestation-report: 249993e2605SPhilippe Mathieu-Daudé# 250993e2605SPhilippe Mathieu-Daudé# This command is used to get the SEV attestation report, and is 251993e2605SPhilippe Mathieu-Daudé# supported on AMD X86 platforms only. 252993e2605SPhilippe Mathieu-Daudé# 253993e2605SPhilippe Mathieu-Daudé# @mnonce: a random 16 bytes value encoded in base64 (it will be 254993e2605SPhilippe Mathieu-Daudé# included in report) 255993e2605SPhilippe Mathieu-Daudé# 256993e2605SPhilippe Mathieu-Daudé# Returns: SevAttestationReport objects. 257993e2605SPhilippe Mathieu-Daudé# 258993e2605SPhilippe Mathieu-Daudé# Since: 6.1 259993e2605SPhilippe Mathieu-Daudé# 260993e2605SPhilippe Mathieu-Daudé# Example: 261993e2605SPhilippe Mathieu-Daudé# 262993e2605SPhilippe Mathieu-Daudé# -> { "execute" : "query-sev-attestation-report", 263993e2605SPhilippe Mathieu-Daudé# "arguments": { "mnonce": "aaaaaaa" } } 264993e2605SPhilippe Mathieu-Daudé# <- { "return" : { "data": "aaaaaaaabbbddddd"} } 265993e2605SPhilippe Mathieu-Daudé# 266993e2605SPhilippe Mathieu-Daudé## 267993e2605SPhilippe Mathieu-Daudé{ 'command': 'query-sev-attestation-report', 268993e2605SPhilippe Mathieu-Daudé 'data': { 'mnonce': 'str' }, 269993e2605SPhilippe Mathieu-Daudé 'returns': 'SevAttestationReport', 270993e2605SPhilippe Mathieu-Daudé 'if': 'TARGET_I386' } 271993e2605SPhilippe Mathieu-Daudé 272993e2605SPhilippe Mathieu-Daudé## 273b0227cdbSMarkus Armbruster# @dump-skeys: 274b0227cdbSMarkus Armbruster# 275b0227cdbSMarkus Armbruster# Dump guest's storage keys 276b0227cdbSMarkus Armbruster# 277b0227cdbSMarkus Armbruster# @filename: the path to the file to dump to 278b0227cdbSMarkus Armbruster# 279b0227cdbSMarkus Armbruster# This command is only supported on s390 architecture. 280b0227cdbSMarkus Armbruster# 281b0227cdbSMarkus Armbruster# Since: 2.5 282b0227cdbSMarkus Armbruster# 283b0227cdbSMarkus Armbruster# Example: 284b0227cdbSMarkus Armbruster# 285b0227cdbSMarkus Armbruster# -> { "execute": "dump-skeys", 286b0227cdbSMarkus Armbruster# "arguments": { "filename": "/tmp/skeys" } } 287b0227cdbSMarkus Armbruster# <- { "return": {} } 288b0227cdbSMarkus Armbruster# 289b0227cdbSMarkus Armbruster## 290b0227cdbSMarkus Armbruster{ 'command': 'dump-skeys', 291b0227cdbSMarkus Armbruster 'data': { 'filename': 'str' }, 2928a9f1e1dSMarc-André Lureau 'if': 'TARGET_S390X' } 293b0227cdbSMarkus Armbruster 294b0227cdbSMarkus Armbruster## 295b0227cdbSMarkus Armbruster# @GICCapability: 296b0227cdbSMarkus Armbruster# 297b0227cdbSMarkus Armbruster# The struct describes capability for a specific GIC (Generic 298b0227cdbSMarkus Armbruster# Interrupt Controller) version. These bits are not only decided by 299b0227cdbSMarkus Armbruster# QEMU/KVM software version, but also decided by the hardware that 300b0227cdbSMarkus Armbruster# the program is running upon. 301b0227cdbSMarkus Armbruster# 302b0227cdbSMarkus Armbruster# @version: version of GIC to be described. Currently, only 2 and 3 303b0227cdbSMarkus Armbruster# are supported. 304b0227cdbSMarkus Armbruster# 305b0227cdbSMarkus Armbruster# @emulated: whether current QEMU/hardware supports emulated GIC 306b0227cdbSMarkus Armbruster# device in user space. 307b0227cdbSMarkus Armbruster# 308b0227cdbSMarkus Armbruster# @kernel: whether current QEMU/hardware supports hardware 309b0227cdbSMarkus Armbruster# accelerated GIC device in kernel. 310b0227cdbSMarkus Armbruster# 311b0227cdbSMarkus Armbruster# Since: 2.6 312b0227cdbSMarkus Armbruster## 313b0227cdbSMarkus Armbruster{ 'struct': 'GICCapability', 314b0227cdbSMarkus Armbruster 'data': { 'version': 'int', 315b0227cdbSMarkus Armbruster 'emulated': 'bool', 316b0227cdbSMarkus Armbruster 'kernel': 'bool' }, 3178a9f1e1dSMarc-André Lureau 'if': 'TARGET_ARM' } 318b0227cdbSMarkus Armbruster 319b0227cdbSMarkus Armbruster## 320b0227cdbSMarkus Armbruster# @query-gic-capabilities: 321b0227cdbSMarkus Armbruster# 322b0227cdbSMarkus Armbruster# This command is ARM-only. It will return a list of GICCapability 323b0227cdbSMarkus Armbruster# objects that describe its capability bits. 324b0227cdbSMarkus Armbruster# 325b0227cdbSMarkus Armbruster# Returns: a list of GICCapability objects. 326b0227cdbSMarkus Armbruster# 327b0227cdbSMarkus Armbruster# Since: 2.6 328b0227cdbSMarkus Armbruster# 329b0227cdbSMarkus Armbruster# Example: 330b0227cdbSMarkus Armbruster# 331b0227cdbSMarkus Armbruster# -> { "execute": "query-gic-capabilities" } 332b0227cdbSMarkus Armbruster# <- { "return": [{ "version": 2, "emulated": true, "kernel": false }, 333b0227cdbSMarkus Armbruster# { "version": 3, "emulated": false, "kernel": true } ] } 334b0227cdbSMarkus Armbruster# 335b0227cdbSMarkus Armbruster## 336b0227cdbSMarkus Armbruster{ 'command': 'query-gic-capabilities', 'returns': ['GICCapability'], 3378a9f1e1dSMarc-André Lureau 'if': 'TARGET_ARM' } 3383ea1a802SBrijesh Singh 3393ea1a802SBrijesh Singh 3403ea1a802SBrijesh Singh## 341*4755927aSYang Zhong# @SGXEPCSection: 342*4755927aSYang Zhong# 343*4755927aSYang Zhong# Information about intel SGX EPC section info 344*4755927aSYang Zhong# 345*4755927aSYang Zhong# @node: the numa node 346*4755927aSYang Zhong# 347*4755927aSYang Zhong# @size: the size of epc section 348*4755927aSYang Zhong# 349*4755927aSYang Zhong# Since: 6.2 350*4755927aSYang Zhong## 351*4755927aSYang Zhong{ 'struct': 'SGXEPCSection', 352*4755927aSYang Zhong 'data': { 'node': 'int', 353*4755927aSYang Zhong 'size': 'uint64'}} 354*4755927aSYang Zhong 355*4755927aSYang Zhong## 35657d874c4SYang Zhong# @SGXInfo: 35757d874c4SYang Zhong# 35857d874c4SYang Zhong# Information about intel Safe Guard eXtension (SGX) support 35957d874c4SYang Zhong# 36057d874c4SYang Zhong# @sgx: true if SGX is supported 36157d874c4SYang Zhong# 36257d874c4SYang Zhong# @sgx1: true if SGX1 is supported 36357d874c4SYang Zhong# 36457d874c4SYang Zhong# @sgx2: true if SGX2 is supported 36557d874c4SYang Zhong# 36657d874c4SYang Zhong# @flc: true if FLC is supported 36757d874c4SYang Zhong# 368*4755927aSYang Zhong# @sections: The EPC sections info for guest 36957d874c4SYang Zhong# 37057d874c4SYang Zhong# Since: 6.2 37157d874c4SYang Zhong## 37257d874c4SYang Zhong{ 'struct': 'SGXInfo', 37357d874c4SYang Zhong 'data': { 'sgx': 'bool', 37457d874c4SYang Zhong 'sgx1': 'bool', 37557d874c4SYang Zhong 'sgx2': 'bool', 37657d874c4SYang Zhong 'flc': 'bool', 377*4755927aSYang Zhong 'sections': ['SGXEPCSection']}, 37857d874c4SYang Zhong 'if': 'TARGET_I386' } 37957d874c4SYang Zhong 38057d874c4SYang Zhong## 38157d874c4SYang Zhong# @query-sgx: 38257d874c4SYang Zhong# 38357d874c4SYang Zhong# Returns information about SGX 38457d874c4SYang Zhong# 38557d874c4SYang Zhong# Returns: @SGXInfo 38657d874c4SYang Zhong# 38757d874c4SYang Zhong# Since: 6.2 38857d874c4SYang Zhong# 38957d874c4SYang Zhong# Example: 39057d874c4SYang Zhong# 39157d874c4SYang Zhong# -> { "execute": "query-sgx" } 39257d874c4SYang Zhong# <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true, 39357d874c4SYang Zhong# "flc": true, "section-size" : 0 } } 39457d874c4SYang Zhong# 39557d874c4SYang Zhong## 39657d874c4SYang Zhong{ 'command': 'query-sgx', 'returns': 'SGXInfo', 'if': 'TARGET_I386' } 3970205c4faSYang Zhong 3980205c4faSYang Zhong## 3990205c4faSYang Zhong# @query-sgx-capabilities: 4000205c4faSYang Zhong# 4010205c4faSYang Zhong# Returns information from host SGX capabilities 4020205c4faSYang Zhong# 4030205c4faSYang Zhong# Returns: @SGXInfo 4040205c4faSYang Zhong# 4050205c4faSYang Zhong# Since: 6.2 4060205c4faSYang Zhong# 4070205c4faSYang Zhong# Example: 4080205c4faSYang Zhong# 4090205c4faSYang Zhong# -> { "execute": "query-sgx-capabilities" } 4100205c4faSYang Zhong# <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true, 4110205c4faSYang Zhong# "flc": true, "section-size" : 0 } } 4120205c4faSYang Zhong# 4130205c4faSYang Zhong## 4140205c4faSYang Zhong{ 'command': 'query-sgx-capabilities', 'returns': 'SGXInfo', 'if': 'TARGET_I386' } 415