qemu/qapi/tpm.json
<<
>>
Prefs
   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# @tpm-crb: TPM CRB model (since 2.12)
  16# @tpm-spapr: TPM SPAPR model (since 5.0)
  17#
  18# Since: 1.5
  19##
  20{ 'enum': 'TpmModel', 'data': [ 'tpm-tis', 'tpm-crb', 'tpm-spapr' ] }
  21##
  22# @query-tpm-models:
  23#
  24# Return a list of supported TPM models
  25#
  26# Returns: a list of TpmModel
  27#
  28# Since: 1.5
  29#
  30# Example:
  31#
  32# -> { "execute": "query-tpm-models" }
  33# <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] }
  34#
  35##
  36{ 'command': 'query-tpm-models', 'returns': ['TpmModel'] }
  37
  38##
  39# @TpmType:
  40#
  41# An enumeration of TPM types
  42#
  43# @passthrough: TPM passthrough type
  44# @emulator: Software Emulator TPM type
  45#            Since: 2.11
  46#
  47# Since: 1.5
  48##
  49{ 'enum': 'TpmType', 'data': [ 'passthrough', 'emulator' ] }
  50
  51##
  52# @query-tpm-types:
  53#
  54# Return a list of supported TPM types
  55#
  56# Returns: a list of TpmType
  57#
  58# Since: 1.5
  59#
  60# Example:
  61#
  62# -> { "execute": "query-tpm-types" }
  63# <- { "return": [ "passthrough", "emulator" ] }
  64#
  65##
  66{ 'command': 'query-tpm-types', 'returns': ['TpmType'] }
  67
  68##
  69# @TPMPassthroughOptions:
  70#
  71# Information about the TPM passthrough type
  72#
  73# @path: string describing the path used for accessing the TPM device
  74#
  75# @cancel-path: string showing the TPM's sysfs cancel file
  76#               for cancellation of TPM commands while they are executing
  77#
  78# Since: 1.5
  79##
  80{ 'struct': 'TPMPassthroughOptions',
  81  'data': { '*path': 'str',
  82            '*cancel-path': 'str' } }
  83
  84##
  85# @TPMEmulatorOptions:
  86#
  87# Information about the TPM emulator type
  88#
  89# @chardev: Name of a unix socket chardev
  90#
  91# Since: 2.11
  92##
  93{ 'struct': 'TPMEmulatorOptions', 'data': { 'chardev' : 'str' } }
  94
  95##
  96# @TpmTypeOptions:
  97#
  98# A union referencing different TPM backend types' configuration options
  99#
 100# @type: - 'passthrough' The configuration options for the TPM passthrough type
 101#        - 'emulator' The configuration options for TPM emulator backend type
 102#
 103# Since: 1.5
 104##
 105{ 'union': 'TpmTypeOptions',
 106   'data': { 'passthrough' : 'TPMPassthroughOptions',
 107             'emulator': 'TPMEmulatorOptions' } }
 108
 109##
 110# @TPMInfo:
 111#
 112# Information about the TPM
 113#
 114# @id: The Id of the TPM
 115#
 116# @model: The TPM frontend model
 117#
 118# @options: The TPM (backend) type configuration options
 119#
 120# Since: 1.5
 121##
 122{ 'struct': 'TPMInfo',
 123  'data': {'id': 'str',
 124           'model': 'TpmModel',
 125           'options': 'TpmTypeOptions' } }
 126
 127##
 128# @query-tpm:
 129#
 130# Return information about the TPM device
 131#
 132# Returns: @TPMInfo on success
 133#
 134# Since: 1.5
 135#
 136# Example:
 137#
 138# -> { "execute": "query-tpm" }
 139# <- { "return":
 140#      [
 141#        { "model": "tpm-tis",
 142#          "options":
 143#            { "type": "passthrough",
 144#              "data":
 145#                { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
 146#                  "path": "/dev/tpm0"
 147#                }
 148#            },
 149#          "id": "tpm0"
 150#        }
 151#      ]
 152#    }
 153#
 154##
 155{ 'command': 'query-tpm', 'returns': ['TPMInfo'] }
 156