On 6/10/20 10:02 PM, Philippe Mathieu-Daudé wrote: > Hi, > > Today I started to review some vTPM patches and got very > confused by the files under hw/tpm/. In particular after > running: > > $ git grep TYPE_TPM_BACKEND > backends/tpm.c:188: .name = TYPE_TPM_BACKEND, > hw/tpm/tpm_emulator.c:985: .parent = TYPE_TPM_BACKEND, > hw/tpm/tpm_passthrough.c:393: .parent = TYPE_TPM_BACKEND, > include/sysemu/tpm_backend.h:21:#define TYPE_TPM_BACKEND "tpm-backend" > > As there is no particular reason to keep this mixed, clean it up. > > Philippe Mathieu-Daudé (8): > hw/tpm: Do not include 'qemu/osdep.h' in header > hw/tpm: Include missing 'qemu/option.h' header > hw/tpm: Move 'hw/acpi/tpm.h' inclusion from header to sources > hw/tpm: Remove unnecessary 'tpm_int.h' header inclusion > hw/tpm: Move few declarations from 'tpm_util.h' to 'tpm_int.h' > hw/tpm: Move DEFINE_PROP_TPMBE() macro to 'tmp_prop.h' local header > hw/tpm: Make 'tpm_util.h' publicly accessible as "sysemu/tpm_util.h" > tpm: Move backend code under the 'backends/' directory > > Makefile | 2 +- > {hw/tpm => backends}/tpm_int.h | 19 +++++++++++--- > {hw/tpm => backends}/tpm_ioctl.h | 0 > hw/tpm/tpm_ppi.h | 1 - > hw/tpm/tpm_prop.h | 31 +++++++++++++++++++++++ > hw/tpm/tpm_tis.h | 1 - > {hw/tpm => include/sysemu}/tpm_util.h | 19 +++----------- > {hw/tpm => backends}/tpm_emulator.c | 2 +- > {hw/tpm => backends}/tpm_passthrough.c | 2 +- > {hw/tpm => backends}/tpm_util.c | 2 +- > hw/tpm/tpm_crb.c | 4 +-- > hw/tpm/tpm_spapr.c | 4 +-- > hw/tpm/tpm_tis_common.c | 4 +-- > hw/tpm/tpm_tis_isa.c | 3 ++- > hw/tpm/tpm_tis_sysbus.c | 3 ++- > tests/qtest/tpm-emu.c | 2 +- > MAINTAINERS | 2 +- > backends/Kconfig | 14 +++++++++++ > backends/Makefile.objs | 3 +++ > backends/trace-events | 32 ++++++++++++++++++++++++ > hw/tpm/Kconfig | 15 ------------ > hw/tpm/Makefile.objs | 3 --- > hw/tpm/trace-events | 34 +------------------------- > 23 files changed, 116 insertions(+), 86 deletions(-) > rename {hw/tpm => backends}/tpm_int.h (81%) > rename {hw/tpm => backends}/tpm_ioctl.h (100%) > create mode 100644 hw/tpm/tpm_prop.h > rename {hw/tpm => include/sysemu}/tpm_util.h (80%) > rename {hw/tpm => backends}/tpm_emulator.c (99%) > rename {hw/tpm => backends}/tpm_passthrough.c (99%) > rename {hw/tpm => backends}/tpm_util.c (99%) > create mode 100644 backends/Kconfig
Beh I forgot to commit the docs/ changes... -- >8 -- diff --git a/docs/specs/tpm.rst b/docs/specs/tpm.rst index 5e61238bc5..546109ebf7 100644 --- a/docs/specs/tpm.rst +++ b/docs/specs/tpm.rst @@ -199,8 +199,8 @@ to be used with the passthrough backend or the swtpm backend. QEMU files related to TPM backends: - ``backends/tpm.c`` + - ``include/sysemu/tpm.h`` - ``include/sysemu/tpm_backend.h`` - - ``include/sysemu/tpm_backend_int.h`` The QEMU TPM passthrough device ------------------------------- @@ -232,9 +232,9 @@ Integrity Measurement Architecture (IMA), are not expecting to share PCRs. QEMU files related to the TPM passthrough device: - - ``hw/tpm/tpm_passthrough.c`` - - ``hw/tpm/tpm_util.c`` - - ``hw/tpm/tpm_util.h`` + - ``backends/tpm_passthrough.c`` + - ``backends/tpm_util.c`` + - ``include/sysemu/tpm_util.h`` Command line to start QEMU with the TPM passthrough device using the host's @@ -292,9 +292,9 @@ instrumented to initialize a TPM 1.2 or TPM 2 device using this command. QEMU files related to the TPM emulator device: - - ``hw/tpm/tpm_emulator.c`` - - ``hw/tpm/tpm_util.c`` - - ``hw/tpm/tpm_util.h`` + - ``backends/tpm_emulator.c`` + - ``backends/tpm_util.c`` + - ``include/sysemu/tpm_util.h`` The following commands start the swtpm with a UnixIO control channel over a socket interface. They do not need to be run as root. --- I'll wait for some review before respining.