tpm: move qdev_prop_tpm to hw/tpm/
PATCH v2 1/1 tpm: move qdev_prop_tpm to hw/tpm/
Building with --disable-tpm yields
../hw/core/qdev-properties-system.o: In function `set_tpm':/home/cohuck/git/qemu/hw/core/qdev-properties-system.c:274: undefined reference to qemu_find_tpm_be' /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:278: undefined reference to tpm_backend_init' ../hw/core/qdev-properties-system.o: In function `release_tpm':/home/cohuck/git/qemu/hw/core/qdev-properties-system.c:291: undefined reference to `tpm_backend_reset'
Move the implementation of DEFINE_PROP_TPMBE to hw/tpm/ so that it is only built when tpm is actually configured, and build tpm_util in every case.
---v1->v2: fix x86_64 build with mingw (always build tpm_util)
--- hw/core/qdev-properties-system.c | 64 -------------------------------------- hw/tpm/Makefile.objs | 5 +-- hw/tpm/tpm_util.c | 67 ++++++++++++++++++++++++++++++++++++++++ hw/tpm/tpm_util.h | 3 ++ include/hw/qdev-properties.h | 2 -- 5 files changed, 73 insertions(+), 68 deletions(-)
hw/core/qdev-properties-system.c +0 -64
@@ -21,7 +21,6 @@#include "net/hub.h" #include "qapi/visitor.h" #include "chardev/char-fe.h" -#include "sysemu/tpm_backend.h" #include "sysemu/iothread.h" static void get_pointer(Object *obj, Visitor *v, Property *prop,
@@ -237,69 +236,6 @@ const PropertyInfo qdev_prop_chr = { .release = release_chr, }; -/* --- character device --- */ - -static void get_tpm (Object *obj,Visitor *v,const char *name,void *opaque, -Error **errp) -{ -DeviceState *dev =DEVICE (obj); -TPMBackend **be =qdev_get_prop_ptr (dev, opaque); -char *p; - - p =g_strdup (*be ? (*be)->id :"" ); -visit_type_str (v, name, &p, errp); -g_free (p); -} - -static void set_tpm (Object *obj,Visitor *v,const char *name,void *opaque, -Error **errp) -{ -DeviceState *dev =DEVICE (obj); -Error *local_err =NULL ; -Property *prop = opaque; -TPMBackend *s, **be =qdev_get_prop_ptr (dev, prop); -char *str; - -if (dev->realized) { -qdev_prop_set_after_realize (dev, name, errp); -return ; - } - -visit_type_str (v, name, &str, &local_err); -if (local_err) { -error_propagate (errp, local_err); -return ; - } - - s =qemu_find_tpm_be (str); -if (s ==NULL ) { -error_setg (errp,"Property '%s.%s' can't find value '%s'" , -object_get_typename (obj), prop->name, str); - }else if (tpm_backend_init (s,TPM_IF (obj), errp) ==0 ) { - *be = s;/* weak reference, avoid cyclic ref */ - } -g_free (str); -} - -static void release_tpm (Object *obj,const char *name,void *opaque) -{ -DeviceState *dev =DEVICE (obj); -Property *prop = opaque; -TPMBackend **be =qdev_get_prop_ptr (dev, prop); - -if (*be) { -tpm_backend_reset (*be); - } -} - -const PropertyInfo qdev_prop_tpm = { - .name ="str" , - .description ="ID of a tpm to use as a backend" , - .get = get_tpm, - .set = set_tpm, - .release = release_tpm, -}; -/* --- netdev device --- */ static void get_netdev (Object *obj,Visitor *v,const char *name,void *opaque,Error **errp)
hw/tpm/Makefile.objs +3 -2
@@ -1,3 +1,4 @@ +common-obj-y += tpm_util.o common-obj-$(CONFIG_TPM_TIS) += tpm_tis.o -common-obj-$(CONFIG_TPM_PASSTHROUGH) += tpm_passthrough.o tpm_util.o -common-obj-$(CONFIG_TPM_EMULATOR) += tpm_emulator.o tpm_util.o +common-obj-$(CONFIG_TPM_PASSTHROUGH) += tpm_passthrough.o +common-obj-$(CONFIG_TPM_EMULATOR) += tpm_emulator.o
hw/tpm/tpm_util.c +67 -0
82 lines not on this page · raw message
hw/tpm/tpm_util.h +3 -0
@@ -39,4 +39,7 @@ static inline uint32_t tpm_cmd_get_size(const void *b)int tpm_util_get_buffer_size (int tpm_fd,TPMVersion tpm_version,size_t *buffersize); +#define DEFINE_PROP_TPMBE (_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, qdev_prop_tpm, TPMBackend *) +#endif /* TPM_TPM_UTIL_H */
include/hw/qdev-properties.h +0 -2
@@ -187,8 +187,6 @@ extern const PropertyInfo qdev_prop_link;#define DEFINE_PROP_CHR (_n, _s, _f) \ DEFINE_PROP(_n, _s, _f, qdev_prop_chr, CharBackend) -#define DEFINE_PROP_TPMBE (_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, qdev_prop_tpm, TPMBackend *)#define DEFINE_PROP_STRING (_n, _s, _f) \ DEFINE_PROP(_n, _s, _f, qdev_prop_string, char*)#define DEFINE_PROP_NETDEV (_n, _s, _f) \
Signature · 1 line
2.13.6
Quoted 18 lines · Cornelia Huck
Building with --disable-tpm yields
../hw/core/qdev-properties-system.o: In function `set_tpm':/home/cohuck/git/qemu/hw/core/qdev-properties-system.c:274: undefined reference toqemu_find_tpm_be' /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:278: undefined reference totpm_backend_init'../hw/core/qdev-properties-system.o: In function `release_tpm':/home/cohuck/git/qemu/hw/core/qdev-properties-system.c:291: undefined reference to `tpm_backend_reset'Move the implementation of
DEFINE_PROP_TPMBEto hw/tpm/ so that it is only built when tpm is actually configured, and buildtpm_utilin every case.Fixes 493b78303532 ("qdev: add DEFINE_PROP_TPMBE")Reported-by Thomas Huth <[email protected]>Reviewed-by Marc-André Lureau <[email protected]>Signed-off-by Cornelia Huck <[email protected]>---
v1->v2: fixx86_64build with mingw (always buildtpm_util)
Quoted 8 lines
--- hw/core/qdev-properties-system.c | 64 -------------------------------------- hw/tpm/Makefile.objs | 5 +-- hw/tpm/tpm_util.c | 67 ++++++++++++++++++++++++++++++++++++++++ hw/tpm/tpm_util.h | 3 ++ include/hw/qdev-properties.h | 2 -- 5 files changed, 73 insertions(+), 68 deletions(-)
Quoted 27 lines · Laurent Vivier
Quoted 18 lines · Cornelia Huck
Building with --disable-tpm yields
../hw/core/qdev-properties-system.o: In function `set_tpm':/home/cohuck/git/qemu/hw/core/qdev-properties-system.c:274: undefined reference toqemu_find_tpm_be' /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:278: undefined reference totpm_backend_init'../hw/core/qdev-properties-system.o: In function `release_tpm':/home/cohuck/git/qemu/hw/core/qdev-properties-system.c:291: undefined reference to `tpm_backend_reset'Move the implementation of
DEFINE_PROP_TPMBEto hw/tpm/ so that it is only built when tpm is actually configured, and buildtpm_utilin every case.Fixes 493b78303532 ("qdev: add DEFINE_PROP_TPMBE")Reported-by Thomas Huth <[email protected]>Reviewed-by Marc-André Lureau <[email protected]>Signed-off-by Cornelia Huck <[email protected]>---
v1->v2: fixx86_64build with mingw (always buildtpm_util)Quoted 8 lines
--- hw/core/qdev-properties-system.c | 64 -------------------------------------- hw/tpm/Makefile.objs | 5 +-- hw/tpm/tpm_util.c | 67 ++++++++++++++++++++++++++++++++++++++++ hw/tpm/tpm_util.h | 3 ++ include/hw/qdev-properties.h | 2 -- 5 files changed, 73 insertions(+), 68 deletions(-)
Quoted 4 lines
Reviewed-by Laurent Vivier <[email protected]>
Thanks. Preparing a pull request for tomorrow.
Stefan