On 04/04/2019 16.34, Jason J. Herne wrote: > Add bootindex property and iplb data for vfio-ccw devices. This allows us to > forward boot information into the bios for vfio-ccw devices. > > Refactor s390_get_ccw_device() to return device type. This prevents us from > having to use messy casting logic in several places. > > Signed-off-by: Jason J. Herne <jjhe...@linux.ibm.com> > Acked-by: Halil Pasic <pa...@linux.vnet.ibm.com> > Reviewed-by: Cornelia Huck <coh...@redhat.com> > Reviewed-by: Thomas Huth <th...@redhat.com> > --- [...] > diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c > index 9246729..507d513 100644 > --- a/hw/vfio/ccw.c > +++ b/hw/vfio/ccw.c > @@ -21,11 +21,11 @@ > #include "hw/vfio/vfio.h" > #include "hw/vfio/vfio-common.h" > #include "hw/s390x/s390-ccw.h" > +#include "hw/s390x/vfio-ccw.h" > #include "hw/s390x/ccw-device.h" > #include "exec/address-spaces.h" > #include "qemu/error-report.h" > > -#define TYPE_VFIO_CCW "vfio-ccw" > typedef struct VFIOCCWDevice { > S390CCWDevice cdev; > VFIODevice vdev; > diff --git a/include/hw/s390x/s390-ccw.h b/include/hw/s390x/s390-ccw.h > index 7d15a1a..901d805 100644 > --- a/include/hw/s390x/s390-ccw.h > +++ b/include/hw/s390x/s390-ccw.h > @@ -27,6 +27,7 @@ typedef struct S390CCWDevice { > CcwDevice parent_obj; > CssDevId hostid; > char *mdevid; > + int32_t bootindex; > } S390CCWDevice; > > typedef struct S390CCWDeviceClass { > diff --git a/include/hw/s390x/vfio-ccw.h b/include/hw/s390x/vfio-ccw.h > new file mode 100644 > index 0000000..ee5250d > --- /dev/null > +++ b/include/hw/s390x/vfio-ccw.h > @@ -0,0 +1,28 @@ > +/* > + * vfio based subchannel assignment support > + * > + * Copyright 2017, 2019 IBM Corp. > + * Author(s): Dong Jia Shi <bjsdj...@linux.vnet.ibm.com> > + * Xiao Feng Ren <renxi...@linux.vnet.ibm.com> > + * Pierre Morel <pmo...@linux.vnet.ibm.com> > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or (at > + * your option) any later version. See the COPYING file in the top-level > + * directory. > + */ > + > +#ifndef HW_VFIO_CCW_H > +#define HW_VFIO_CCW_H > + > +#include "hw/vfio/vfio-common.h" > +#include "hw/s390x/s390-ccw.h" > +#include "hw/s390x/ccw-device.h" > + > +#define TYPE_VFIO_CCW "vfio-ccw" > +#define VFIO_CCW(obj) \ > + OBJECT_CHECK(VFIOCCWDevice, (obj), TYPE_VFIO_CCW) > + > +#define TYPE_VFIO_CCW "vfio-ccw" > +typedef struct VFIOCCWDevice VFIOCCWDevice; > + > +#endif >
This causes a build failure with clang: https://gitlab.com/huth/qemu/-/jobs/195530081 I'll squash the following patch to fix this issue: diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c index e6ac21d006..31dd3a2a87 100644 --- a/hw/vfio/ccw.c +++ b/hw/vfio/ccw.c @@ -26,7 +26,7 @@ #include "exec/address-spaces.h" #include "qemu/error-report.h" -typedef struct VFIOCCWDevice { +struct VFIOCCWDevice { S390CCWDevice cdev; VFIODevice vdev; uint64_t io_region_size; @@ -35,7 +35,7 @@ typedef struct VFIOCCWDevice { EventNotifier io_notifier; bool force_orb_pfch; bool warned_orb_pfch; -} VFIOCCWDevice; +}; Thomas