[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 3/6] Qemu-Xen-vTPM: Xen frontend driver infrastructure
> -----Original Message----- > From: Stefan Berger [mailto:stefanb@xxxxxxxxxxxxxxxxxx] > Sent: Monday, May 04, 2015 11:36 PM > To: Xu, Quan; stefano.stabellini@xxxxxxxxxxxxx; eblake@xxxxxxxxxx > Cc: qemu-devel@xxxxxxxxxx; wei.liu2@xxxxxxxxxx; dgdegra@xxxxxxxxxxxxx; > xen-devel@xxxxxxxxxxxxx > Subject: Re: [PATCH v6 3/6] Qemu-Xen-vTPM: Xen frontend driver infrastructure > > On 05/04/2015 03:22 AM, Quan Xu wrote: > > This patch adds infrastructure for xen front drivers living in qemu, > > so drivers don't need to implement common stuff on their own. It's > > mostly xenbus management stuff: some functions to access XenStore, > > setting up XenStore watches, callbacks on device discovery and state > > changes, and handle event channel between the virtual machines. > > > > Call xen_fe_register() function to register XenDevOps, and make sure, > > [...] > > 3 = "" > > [...] > > device = "" (frontend device, the backend is running in QEMU/.etc) > > vkbd = "" > > [...] > > vif = "" > > [...] > > > > .. > > > > (QEMU) xen_vtpmdev_ops is initialized with the following process: > > xen_hvm_init() > > [...] > > -->xen_fe_register("vtpm", ...) > > -->xenstore_fe_scan() > > -->xen_fe_try_init(ops) > > --> XenDevOps.init() > > -->xen_fe_get_xendev() > > --> XenDevOps.alloc() > > -->xen_fe_check() > > -->xen_fe_try_initialise() > > --> XenDevOps.initialise() > > -->xen_fe_try_connected() > > --> XenDevOps.connected() > > -->xs_watch() > > [...] > > > > Signed-off-by: Quan Xu <quan.xu@xxxxxxxxx> > > > > --Changes in v6: > > -Replace buf_size with PAGE_SIZE and use length rather than > > shr->length. > > --- > > hw/tpm/Makefile.objs | 1 + > > hw/tpm/xen_vtpm_frontend.c | 315 > +++++++++++++++++++++++++++++++++++++++++++ > > hw/xen/xen_frontend.c | 20 +++ > > include/hw/xen/xen_backend.h | 5 + > > include/hw/xen/xen_common.h | 6 + > > xen-hvm.c | 5 + > > 6 files changed, 352 insertions(+) > > create mode 100644 hw/tpm/xen_vtpm_frontend.c > > > > diff --git a/hw/tpm/Makefile.objs b/hw/tpm/Makefile.objs index > > 99f5983..57919fa 100644 > > --- a/hw/tpm/Makefile.objs > > +++ b/hw/tpm/Makefile.objs > > @@ -1,2 +1,3 @@ > > common-obj-$(CONFIG_TPM_TIS) += tpm_tis.o > > common-obj-$(CONFIG_TPM_PASSTHROUGH) += tpm_passthrough.o > > +common-obj-$(CONFIG_TPM_XENSTUBDOMS) += xen_vtpm_frontend.o > > diff --git a/hw/tpm/xen_vtpm_frontend.c b/hw/tpm/xen_vtpm_frontend.c > > new file mode 100644 index 0000000..d6e7cc6 > > --- /dev/null > > +++ b/hw/tpm/xen_vtpm_frontend.c > > @@ -0,0 +1,315 @@ > > +/* > > + * Connect to Xen vTPM stubdom domain > > + * > > + * Copyright (c) 2015 Intel Corporation > > + * Authors: > > + * Quan Xu <quan.xu@xxxxxxxxx> > > + * > > + * This library is free software; you can redistribute it and/or > > + * modify it under the terms of the GNU Lesser General Public > > + * License as published by the Free Software Foundation; either > > + * version 2 of the License, or (at your option) any later version. > > + * > > + * This library is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > > + * Lesser General Public License for more details. > > + * > > + * You should have received a copy of the GNU Lesser General Public > > + * License along with this library; if not, see > > +<http://www.gnu.org/licenses/> */ > > + > > +#include <stdio.h> > > +#include <stdlib.h> > > +#include <stdarg.h> > > +#include <string.h> > > +#include <unistd.h> > > +#include <signal.h> > > +#include <inttypes.h> > > +#include <time.h> > > +#include <fcntl.h> > > +#include <errno.h> > > +#include <sys/ioctl.h> > > +#include <sys/types.h> > > +#include <sys/stat.h> > > +#include <sys/mman.h> > > +#include <sys/uio.h> > > + > > +#include "hw/hw.h" > > +#include "block/aio.h" > > +#include "hw/xen/xen_backend.h" > > + > > +#ifndef XS_STUBDOM_VTPM_ENABLE > > +#define XS_STUBDOM_VTPM_ENABLE "1" > > +#endif > > + > > +#ifndef PAGE_SIZE > > +#define PAGE_SIZE 4096 > > +#endif > > You should be able to use TARGET_PAGE_SIZE from exec/cpu-all.h I think. > > With this change: Reviewed-by: Stefan Berger <stefanb@xxxxxxxxxxxxxxxxxx> Stefan, If I add #include "exec/cpu-all.h" in hw/tpm/xen_vtpm_frontend.c, there are some errors as following: ++++ error ++++ In file included from hw/tpm/xen_vtpm_frontend.c:41:0: /root/qemu2/include/exec/cpu-all.h:42:46: error: attempt to use poisoned "TARGET_WORDS_BIGENDIAN" /root/qemu2/include/exec/cpu-all.h:46:8: error: attempt to use poisoned "BSWAP_NEEDED" /root/qemu2/include/exec/cpu-all.h:109:5: error: "TARGET_LONG_SIZE" is not defined [-Werror=undef] /root/qemu2/include/exec/cpu-all.h:122:13: error: attempt to use poisoned "TARGET_WORDS_BIGENDIAN" /root/qemu2/include/exec/cpu-all.h:174:9: error: attempt to use poisoned "TARGET_PAGE_SIZE" /root/qemu2/include/exec/cpu-all.h:174:32: error: attempt to use poisoned "TARGET_PAGE_BITS" /root/qemu2/include/exec/cpu-all.h:175:9: error: attempt to use poisoned "TARGET_PAGE_MASK" /root/qemu2/include/exec/cpu-all.h:175:28: error: attempt to use poisoned "TARGET_PAGE_SIZE" /root/qemu2/include/exec/cpu-all.h:176:9: error: attempt to use poisoned "TARGET_PAGE_ALIGN" /root/qemu2/include/exec/cpu-all.h:176:44: error: attempt to use poisoned "TARGET_PAGE_SIZE" /root/qemu2/include/exec/cpu-all.h:176:68: error: attempt to use poisoned "TARGET_PAGE_MASK" /root/qemu2/include/exec/cpu-all.h:211:1: error: attempt to use poisoned "CPUArchState" /root/qemu2/include/exec/cpu-all.h:211:1: error: unknown type name 'CPUArchState' /root/qemu2/include/exec/cpu-all.h:211:24: error: attempt to use poisoned "CPUArchState" /root/qemu2/include/exec/cpu-all.h:211:24: error: unknown type name 'CPUArchState' /root/qemu2/include/exec/cpu-all.h:222:9: error: attempt to use poisoned "CPU_INTERRUPT_HARD" /root/qemu2/include/exec/cpu-all.h:226:9: error: attempt to use poisoned "CPU_INTERRUPT_EXITTB" /root/qemu2/include/exec/cpu-all.h:229:9: error: attempt to use poisoned "CPU_INTERRUPT_HALT" /root/qemu2/include/exec/cpu-all.h:232:9: error: attempt to use poisoned "CPU_INTERRUPT_DEBUG" [....] +++ error +++ ------ --- Could I replace PAGE_SIZE with VTPM_ PAGE_SIZE, instead of TARGET_PAGE_SIZE from exec/cpu-all.h?? +#ifndef VTPM_PAGE_SIZE +#define VTPM_PAGE_SIZE 4096 +#endif + [...]VTPM_PAGE_SIZE ... I send out v7 today. Any comment, I can continue to enhance it. thanks. Thanks Quan Xu > > Regards, > Stefan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |