From 3859b6cf670f3eff97d36e1f247cbcd0811e8351 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Thu, 24 Aug 2017 21:14:03 +0200 Subject: [PATCH] qapi-schema: Collect TPM stuff in qapi/tpm.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sadly, we don't have a TPM maintainer, not even a MAINTAINERS entry. Create one, and mark it orphaned. Signed-off-by: Markus Armbruster Message-Id: <1503602048-12268-12-git-send-email-armbru@redhat.com> Reviewed-by: Marc-André Lureau --- MAINTAINERS | 8 +++ Makefile | 1 + qapi-schema.json | 132 +-------------------------------------------- qapi/tpm.json | 137 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 147 insertions(+), 131 deletions(-) create mode 100644 qapi/tpm.json diff --git a/MAINTAINERS b/MAINTAINERS index 8cebd798ef..5ec945c9af 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1486,6 +1486,14 @@ F: scripts/tracetool/ F: docs/tracing.txt T: git git://github.com/stefanha/qemu.git tracing +TPM +S: Orphan +F: tpm.c +F: hw/tpm/* +F: include/hw/acpi/tpm.h +F: include/sysemu/tpm* +F: qapi/tpm.json + Checkpatch S: Odd Fixes F: scripts/checkpatch.pl diff --git a/Makefile b/Makefile index ea6de37197..3dde210662 100644 --- a/Makefile +++ b/Makefile @@ -418,6 +418,7 @@ qapi-modules = $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/qapi/common.json \ $(SRC_PATH)/qapi/rocker.json \ $(SRC_PATH)/qapi/run-state.json \ $(SRC_PATH)/qapi/sockets.json \ + $(SRC_PATH)/qapi/tpm.json \ $(SRC_PATH)/qapi/trace.json \ $(SRC_PATH)/qapi/transaction.json \ $(SRC_PATH)/qapi/ui.json diff --git a/qapi-schema.json b/qapi-schema.json index 4108ef0cc8..0ad4e0237d 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -86,6 +86,7 @@ { 'include': 'qapi/char.json' } { 'include': 'qapi/net.json' } { 'include': 'qapi/rocker.json' } +{ 'include': 'qapi/tpm.json' } { 'include': 'qapi/ui.json' } { 'include': 'qapi/migration.json' } { 'include': 'qapi/transaction.json' } @@ -2212,137 +2213,6 @@ ## { 'command': 'query-target', 'returns': 'TargetInfo' } -## -# @TpmModel: -# -# An enumeration of TPM models -# -# @tpm-tis: TPM TIS model -# -# Since: 1.5 -## -{ 'enum': 'TpmModel', 'data': [ 'tpm-tis' ] } - -## -# @query-tpm-models: -# -# Return a list of supported TPM models -# -# Returns: a list of TpmModel -# -# Since: 1.5 -# -# Example: -# -# -> { "execute": "query-tpm-models" } -# <- { "return": [ "tpm-tis" ] } -# -## -{ 'command': 'query-tpm-models', 'returns': ['TpmModel'] } - -## -# @TpmType: -# -# An enumeration of TPM types -# -# @passthrough: TPM passthrough type -# -# Since: 1.5 -## -{ 'enum': 'TpmType', 'data': [ 'passthrough' ] } - -## -# @query-tpm-types: -# -# Return a list of supported TPM types -# -# Returns: a list of TpmType -# -# Since: 1.5 -# -# Example: -# -# -> { "execute": "query-tpm-types" } -# <- { "return": [ "passthrough" ] } -# -## -{ 'command': 'query-tpm-types', 'returns': ['TpmType'] } - -## -# @TPMPassthroughOptions: -# -# Information about the TPM passthrough type -# -# @path: string describing the path used for accessing the TPM device -# -# @cancel-path: string showing the TPM's sysfs cancel file -# for cancellation of TPM commands while they are executing -# -# Since: 1.5 -## -{ 'struct': 'TPMPassthroughOptions', 'data': { '*path' : 'str', - '*cancel-path' : 'str'} } - -## -# @TpmTypeOptions: -# -# A union referencing different TPM backend types' configuration options -# -# @type: 'passthrough' The configuration options for the TPM passthrough type -# -# Since: 1.5 -## -{ 'union': 'TpmTypeOptions', - 'data': { 'passthrough' : 'TPMPassthroughOptions' } } - -## -# @TPMInfo: -# -# Information about the TPM -# -# @id: The Id of the TPM -# -# @model: The TPM frontend model -# -# @options: The TPM (backend) type configuration options -# -# Since: 1.5 -## -{ 'struct': 'TPMInfo', - 'data': {'id': 'str', - 'model': 'TpmModel', - 'options': 'TpmTypeOptions' } } - -## -# @query-tpm: -# -# Return information about the TPM device -# -# Returns: @TPMInfo on success -# -# Since: 1.5 -# -# Example: -# -# -> { "execute": "query-tpm" } -# <- { "return": -# [ -# { "model": "tpm-tis", -# "options": -# { "type": "passthrough", -# "data": -# { "cancel-path": "/sys/class/misc/tpm0/device/cancel", -# "path": "/dev/tpm0" -# } -# }, -# "id": "tpm0" -# } -# ] -# } -# -## -{ 'command': 'query-tpm', 'returns': ['TPMInfo'] } - ## # @AcpiTableOptions: # diff --git a/qapi/tpm.json b/qapi/tpm.json new file mode 100644 index 0000000000..e8b2d8dcb7 --- /dev/null +++ b/qapi/tpm.json @@ -0,0 +1,137 @@ +# -*- Mode: Python -*- +# + +## +# = TPM (trusted platform module) devices +## + +## +# @TpmModel: +# +# An enumeration of TPM models +# +# @tpm-tis: TPM TIS model +# +# Since: 1.5 +## +{ 'enum': 'TpmModel', 'data': [ 'tpm-tis' ] } + +## +# @query-tpm-models: +# +# Return a list of supported TPM models +# +# Returns: a list of TpmModel +# +# Since: 1.5 +# +# Example: +# +# -> { "execute": "query-tpm-models" } +# <- { "return": [ "tpm-tis" ] } +# +## +{ 'command': 'query-tpm-models', 'returns': ['TpmModel'] } + +## +# @TpmType: +# +# An enumeration of TPM types +# +# @passthrough: TPM passthrough type +# +# Since: 1.5 +## +{ 'enum': 'TpmType', 'data': [ 'passthrough' ] } + +## +# @query-tpm-types: +# +# Return a list of supported TPM types +# +# Returns: a list of TpmType +# +# Since: 1.5 +# +# Example: +# +# -> { "execute": "query-tpm-types" } +# <- { "return": [ "passthrough" ] } +# +## +{ 'command': 'query-tpm-types', 'returns': ['TpmType'] } + +## +# @TPMPassthroughOptions: +# +# Information about the TPM passthrough type +# +# @path: string describing the path used for accessing the TPM device +# +# @cancel-path: string showing the TPM's sysfs cancel file +# for cancellation of TPM commands while they are executing +# +# Since: 1.5 +## +{ 'struct': 'TPMPassthroughOptions', 'data': { '*path' : 'str', + '*cancel-path' : 'str'} } + +## +# @TpmTypeOptions: +# +# A union referencing different TPM backend types' configuration options +# +# @type: 'passthrough' The configuration options for the TPM passthrough type +# +# Since: 1.5 +## +{ 'union': 'TpmTypeOptions', + 'data': { 'passthrough' : 'TPMPassthroughOptions' } } + +## +# @TPMInfo: +# +# Information about the TPM +# +# @id: The Id of the TPM +# +# @model: The TPM frontend model +# +# @options: The TPM (backend) type configuration options +# +# Since: 1.5 +## +{ 'struct': 'TPMInfo', + 'data': {'id': 'str', + 'model': 'TpmModel', + 'options': 'TpmTypeOptions' } } + +## +# @query-tpm: +# +# Return information about the TPM device +# +# Returns: @TPMInfo on success +# +# Since: 1.5 +# +# Example: +# +# -> { "execute": "query-tpm" } +# <- { "return": +# [ +# { "model": "tpm-tis", +# "options": +# { "type": "passthrough", +# "data": +# { "cancel-path": "/sys/class/misc/tpm0/device/cancel", +# "path": "/dev/tpm0" +# } +# }, +# "id": "tpm0" +# } +# ] +# } +# +## +{ 'command': 'query-tpm', 'returns': ['TPMInfo'] }