Message ID | 1523819244-29954-3-git-send-email-akrowiak@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
Series | s390x: vfio-ap: guest dedicated crypto adapters | expand |
On 15/04/2018 21:07, Tony Krowiak wrote: > This patch introduces the base object for an AP device. > > Signed-off-by: Tony Krowiak <akrowiak@linux.vnet.ibm.com> > --- > hw/s390x/Makefile.objs | 1 + > hw/s390x/ap-device.c | 39 +++++++++++++++++++++++++++++++++++++++ > include/hw/s390x/ap-device.h | 38 ++++++++++++++++++++++++++++++++++++++ > ui/keycodemapdb | 2 +- > 4 files changed, 79 insertions(+), 1 deletions(-) > create mode 100644 hw/s390x/ap-device.c > create mode 100644 include/hw/s390x/ap-device.h > > diff --git a/hw/s390x/Makefile.objs b/hw/s390x/Makefile.objs > index dc704b5..3247a07 100644 > --- a/hw/s390x/Makefile.objs > +++ b/hw/s390x/Makefile.objs > @@ -17,3 +17,4 @@ obj-y += s390-stattrib.o > obj-$(CONFIG_KVM) += s390-skeys-kvm.o > obj-$(CONFIG_KVM) += s390-stattrib-kvm.o > obj-y += s390-ccw.o > +obj-y += ap-device.o > diff --git a/hw/s390x/ap-device.c b/hw/s390x/ap-device.c > new file mode 100644 > index 0000000..3cd4bae > --- /dev/null > +++ b/hw/s390x/ap-device.c > @@ -0,0 +1,39 @@ > +/* > + * Adjunct Processor (AP) matrix device > + * > + * Copyright 2018 IBM Corp. > + * Author(s): Tony Krowiak <akrowiak@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. > + */ > +#include "qemu/osdep.h" > +#include "qemu/module.h" > +#include "qapi/error.h" > +#include "hw/qdev.h" > +#include "hw/s390x/ap-device.h" > + > +static void ap_class_init(ObjectClass *klass, void *data) > +{ > + DeviceClass *dc = DEVICE_CLASS(klass); > + > + dc->desc = "AP device class"; > + dc->hotpluggable = false; > +} > + > +static const TypeInfo ap_device_info = { > + .name = AP_DEVICE_TYPE, > + .parent = TYPE_DEVICE, > + .instance_size = sizeof(APDevice), > + .class_size = sizeof(APDeviceClass), > + .class_init = ap_class_init, > + .abstract = true, > +}; > + > +static void ap_device_register(void) > +{ > + type_register_static(&ap_device_info); > +} > + > +type_init(ap_device_register) > diff --git a/include/hw/s390x/ap-device.h b/include/hw/s390x/ap-device.h > new file mode 100644 > index 0000000..693df90 > --- /dev/null > +++ b/include/hw/s390x/ap-device.h > @@ -0,0 +1,38 @@ > +/* > + * Adjunct Processor (AP) matrix device interfaces > + * > + * Copyright 2018 IBM Corp. > + * Author(s): Tony Krowiak <akrowiak@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_S390X_AP_DEVICE_H > +#define HW_S390X_AP_DEVICE_H > + > +#define AP_DEVICE_TYPE "ap-device" > + > +typedef struct APDevice { > + DeviceState parent_obj; > +} APDevice; > + > +typedef struct APDeviceClass { > + DeviceClass parent_class; > +} APDeviceClass; > + > +static inline APDevice *to_ap_dev(DeviceState *dev) > +{ > + return container_of(dev, APDevice, parent_obj); > +} > + > +#define AP_DEVICE(obj) \ > + OBJECT_CHECK(APDevice, (obj), AP_DEVICE_TYPE) > + > +#define AP_DEVICE_GET_CLASS(obj) \ > + OBJECT_GET_CLASS(APDeviceClass, (obj), AP_DEVICE_TYPE) > + > +#define AP_DEVICE_CLASS(klass) \ > + OBJECT_CLASS_CHECK(APDeviceClass, (klass), AP_DEVICE_TYPE) > + > +#endif /* HW_S390X_AP_DEVICE_H */ until here, LGTM Does this next hunk belong to the patch? > diff --git a/ui/keycodemapdb b/ui/keycodemapdb > index 6b3d716..16e5b07 160000 > --- a/ui/keycodemapdb > +++ b/ui/keycodemapdb > @@ -1 +1 @@ > -Subproject commit 6b3d716e2b6472eb7189d3220552280ef3d832ce > +Subproject commit 16e5b0787687d8904dad2c026107409eb9bfcb95
On 04/18/2018 05:16 AM, Pierre Morel wrote: > On 15/04/2018 21:07, Tony Krowiak wrote: >> This patch introduces the base object for an AP device. >> >> Signed-off-by: Tony Krowiak <akrowiak@linux.vnet.ibm.com> >> --- >> hw/s390x/Makefile.objs | 1 + >> hw/s390x/ap-device.c | 39 >> +++++++++++++++++++++++++++++++++++++++ >> include/hw/s390x/ap-device.h | 38 >> ++++++++++++++++++++++++++++++++++++++ >> ui/keycodemapdb | 2 +- >> 4 files changed, 79 insertions(+), 1 deletions(-) >> create mode 100644 hw/s390x/ap-device.c >> create mode 100644 include/hw/s390x/ap-device.h >> >> diff --git a/hw/s390x/Makefile.objs b/hw/s390x/Makefile.objs >> index dc704b5..3247a07 100644 >> --- a/hw/s390x/Makefile.objs >> +++ b/hw/s390x/Makefile.objs >> @@ -17,3 +17,4 @@ obj-y += s390-stattrib.o >> obj-$(CONFIG_KVM) += s390-skeys-kvm.o >> obj-$(CONFIG_KVM) += s390-stattrib-kvm.o >> obj-y += s390-ccw.o >> +obj-y += ap-device.o >> diff --git a/hw/s390x/ap-device.c b/hw/s390x/ap-device.c >> new file mode 100644 >> index 0000000..3cd4bae >> --- /dev/null >> +++ b/hw/s390x/ap-device.c >> @@ -0,0 +1,39 @@ >> +/* >> + * Adjunct Processor (AP) matrix device >> + * >> + * Copyright 2018 IBM Corp. >> + * Author(s): Tony Krowiak <akrowiak@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. >> + */ >> +#include "qemu/osdep.h" >> +#include "qemu/module.h" >> +#include "qapi/error.h" >> +#include "hw/qdev.h" >> +#include "hw/s390x/ap-device.h" >> + >> +static void ap_class_init(ObjectClass *klass, void *data) >> +{ >> + DeviceClass *dc = DEVICE_CLASS(klass); >> + >> + dc->desc = "AP device class"; >> + dc->hotpluggable = false; >> +} >> + >> +static const TypeInfo ap_device_info = { >> + .name = AP_DEVICE_TYPE, >> + .parent = TYPE_DEVICE, >> + .instance_size = sizeof(APDevice), >> + .class_size = sizeof(APDeviceClass), >> + .class_init = ap_class_init, >> + .abstract = true, >> +}; >> + >> +static void ap_device_register(void) >> +{ >> + type_register_static(&ap_device_info); >> +} >> + >> +type_init(ap_device_register) >> diff --git a/include/hw/s390x/ap-device.h b/include/hw/s390x/ap-device.h >> new file mode 100644 >> index 0000000..693df90 >> --- /dev/null >> +++ b/include/hw/s390x/ap-device.h >> @@ -0,0 +1,38 @@ >> +/* >> + * Adjunct Processor (AP) matrix device interfaces >> + * >> + * Copyright 2018 IBM Corp. >> + * Author(s): Tony Krowiak <akrowiak@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_S390X_AP_DEVICE_H >> +#define HW_S390X_AP_DEVICE_H >> + >> +#define AP_DEVICE_TYPE "ap-device" >> + >> +typedef struct APDevice { >> + DeviceState parent_obj; >> +} APDevice; >> + >> +typedef struct APDeviceClass { >> + DeviceClass parent_class; >> +} APDeviceClass; >> + >> +static inline APDevice *to_ap_dev(DeviceState *dev) >> +{ >> + return container_of(dev, APDevice, parent_obj); >> +} >> + >> +#define AP_DEVICE(obj) \ >> + OBJECT_CHECK(APDevice, (obj), AP_DEVICE_TYPE) >> + >> +#define AP_DEVICE_GET_CLASS(obj) \ >> + OBJECT_GET_CLASS(APDeviceClass, (obj), AP_DEVICE_TYPE) >> + >> +#define AP_DEVICE_CLASS(klass) \ >> + OBJECT_CLASS_CHECK(APDeviceClass, (klass), AP_DEVICE_TYPE) >> + >> +#endif /* HW_S390X_AP_DEVICE_H */ > > until here, LGTM > > Does this next hunk belong to the patch? No it doesn't. I had compile problems due to keycodemap errors which I fixed, but I have no idea how this got in here. There is a v5 coming, I'll make sure this is removed. >> diff --git a/ui/keycodemapdb b/ui/keycodemapdb >> index 6b3d716..16e5b07 160000 >> --- a/ui/keycodemapdb >> +++ b/ui/keycodemapdb >> @@ -1 +1 @@ >> -Subproject commit 6b3d716e2b6472eb7189d3220552280ef3d832ce >> +Subproject commit 16e5b0787687d8904dad2c026107409eb9bfcb95 > >
diff --git a/hw/s390x/Makefile.objs b/hw/s390x/Makefile.objs index dc704b5..3247a07 100644 --- a/hw/s390x/Makefile.objs +++ b/hw/s390x/Makefile.objs @@ -17,3 +17,4 @@ obj-y += s390-stattrib.o obj-$(CONFIG_KVM) += s390-skeys-kvm.o obj-$(CONFIG_KVM) += s390-stattrib-kvm.o obj-y += s390-ccw.o +obj-y += ap-device.o diff --git a/hw/s390x/ap-device.c b/hw/s390x/ap-device.c new file mode 100644 index 0000000..3cd4bae --- /dev/null +++ b/hw/s390x/ap-device.c @@ -0,0 +1,39 @@ +/* + * Adjunct Processor (AP) matrix device + * + * Copyright 2018 IBM Corp. + * Author(s): Tony Krowiak <akrowiak@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. + */ +#include "qemu/osdep.h" +#include "qemu/module.h" +#include "qapi/error.h" +#include "hw/qdev.h" +#include "hw/s390x/ap-device.h" + +static void ap_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + + dc->desc = "AP device class"; + dc->hotpluggable = false; +} + +static const TypeInfo ap_device_info = { + .name = AP_DEVICE_TYPE, + .parent = TYPE_DEVICE, + .instance_size = sizeof(APDevice), + .class_size = sizeof(APDeviceClass), + .class_init = ap_class_init, + .abstract = true, +}; + +static void ap_device_register(void) +{ + type_register_static(&ap_device_info); +} + +type_init(ap_device_register) diff --git a/include/hw/s390x/ap-device.h b/include/hw/s390x/ap-device.h new file mode 100644 index 0000000..693df90 --- /dev/null +++ b/include/hw/s390x/ap-device.h @@ -0,0 +1,38 @@ +/* + * Adjunct Processor (AP) matrix device interfaces + * + * Copyright 2018 IBM Corp. + * Author(s): Tony Krowiak <akrowiak@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_S390X_AP_DEVICE_H +#define HW_S390X_AP_DEVICE_H + +#define AP_DEVICE_TYPE "ap-device" + +typedef struct APDevice { + DeviceState parent_obj; +} APDevice; + +typedef struct APDeviceClass { + DeviceClass parent_class; +} APDeviceClass; + +static inline APDevice *to_ap_dev(DeviceState *dev) +{ + return container_of(dev, APDevice, parent_obj); +} + +#define AP_DEVICE(obj) \ + OBJECT_CHECK(APDevice, (obj), AP_DEVICE_TYPE) + +#define AP_DEVICE_GET_CLASS(obj) \ + OBJECT_GET_CLASS(APDeviceClass, (obj), AP_DEVICE_TYPE) + +#define AP_DEVICE_CLASS(klass) \ + OBJECT_CLASS_CHECK(APDeviceClass, (klass), AP_DEVICE_TYPE) + +#endif /* HW_S390X_AP_DEVICE_H */ diff --git a/ui/keycodemapdb b/ui/keycodemapdb index 6b3d716..16e5b07 160000 --- a/ui/keycodemapdb +++ b/ui/keycodemapdb @@ -1 +1 @@ -Subproject commit 6b3d716e2b6472eb7189d3220552280ef3d832ce +Subproject commit 16e5b0787687d8904dad2c026107409eb9bfcb95
This patch introduces the base object for an AP device. Signed-off-by: Tony Krowiak <akrowiak@linux.vnet.ibm.com> --- hw/s390x/Makefile.objs | 1 + hw/s390x/ap-device.c | 39 +++++++++++++++++++++++++++++++++++++++ include/hw/s390x/ap-device.h | 38 ++++++++++++++++++++++++++++++++++++++ ui/keycodemapdb | 2 +- 4 files changed, 79 insertions(+), 1 deletions(-) create mode 100644 hw/s390x/ap-device.c create mode 100644 include/hw/s390x/ap-device.h