Message ID | 20190904125531.27545-3-damien.hedde@greensocs.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Clock framework API | expand |
On 9/4/19 2:55 PM, Damien Hedde wrote: > Signed-off-by: Damien Hedde <damien.hedde@greensocs.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > This was in the previous reviewed commit. But it can't be in the > clock.c file in order to allow linux-user builds. > --- > hw/core/Makefile.objs | 1 + > hw/core/clock-vmstate.c | 25 +++++++++++++++++++++++++ > include/hw/clock.h | 9 +++++++++ > 3 files changed, 35 insertions(+) > create mode 100644 hw/core/clock-vmstate.c > > diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs > index c66a5b2c6b..8fcebf2e67 100644 > --- a/hw/core/Makefile.objs > +++ b/hw/core/Makefile.objs > @@ -4,6 +4,7 @@ common-obj-y += bus.o reset.o > common-obj-y += resettable.o > common-obj-$(CONFIG_SOFTMMU) += qdev-fw.o > common-obj-$(CONFIG_SOFTMMU) += fw-path-provider.o > +common-obj-$(CONFIG_SOFTMMU) += clock-vmstate.o > # irq.o needed for qdev GPIO handling: > common-obj-y += irq.o > common-obj-y += hotplug.o > diff --git a/hw/core/clock-vmstate.c b/hw/core/clock-vmstate.c > new file mode 100644 > index 0000000000..c781369c15 > --- /dev/null > +++ b/hw/core/clock-vmstate.c > @@ -0,0 +1,25 @@ > +/* > + * Clock migration structure > + * > + * Copyright GreenSocs 2019 > + * > + * Authors: > + * Damien Hedde <damien.hedde@greensocs.com> > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + */ > + > +#include "qemu/osdep.h" > +#include "migration/vmstate.h" > +#include "hw/clock.h" > + > +const VMStateDescription vmstate_clockin = { > + .name = "clock", > + .version_id = 0, > + .minimum_version_id = 0, > + .fields = (VMStateField[]) { > + VMSTATE_UINT64(frequency, ClockIn), > + VMSTATE_END_OF_LIST() > + } > +}; > diff --git a/include/hw/clock.h b/include/hw/clock.h > index fd11202ba4..e7efb6ad17 100644 > --- a/include/hw/clock.h > +++ b/include/hw/clock.h > @@ -34,6 +34,15 @@ struct ClockOut { > QLIST_HEAD(, ClockIn) followers; /* list of registered clocks */ > }; > > +/* > + * vmstate description entry to be added in device vmsd. > + */ > +extern const VMStateDescription vmstate_clockin; > +#define VMSTATE_CLOCKIN(_field, _state) \ > + VMSTATE_CLOCKIN_V(_field, _state, 0) > +#define VMSTATE_CLOCKIN_V(_field, _state, _version) \ > + VMSTATE_STRUCT_POINTER_V(_field, _state, _version, vmstate_clockin, ClockIn) > + > /** > * clock_out_setup_canonical_path: > * @clk: clock >
On Wed, 4 Sep 2019 at 13:56, Damien Hedde <damien.hedde@greensocs.com> wrote: > > Signed-off-by: Damien Hedde <damien.hedde@greensocs.com> > --- > This was in the previous reviewed commit. But it can't be in the > clock.c file in order to allow linux-user builds. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> thanks -- PMM
diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index c66a5b2c6b..8fcebf2e67 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -4,6 +4,7 @@ common-obj-y += bus.o reset.o common-obj-y += resettable.o common-obj-$(CONFIG_SOFTMMU) += qdev-fw.o common-obj-$(CONFIG_SOFTMMU) += fw-path-provider.o +common-obj-$(CONFIG_SOFTMMU) += clock-vmstate.o # irq.o needed for qdev GPIO handling: common-obj-y += irq.o common-obj-y += hotplug.o diff --git a/hw/core/clock-vmstate.c b/hw/core/clock-vmstate.c new file mode 100644 index 0000000000..c781369c15 --- /dev/null +++ b/hw/core/clock-vmstate.c @@ -0,0 +1,25 @@ +/* + * Clock migration structure + * + * Copyright GreenSocs 2019 + * + * Authors: + * Damien Hedde <damien.hedde@greensocs.com> + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "migration/vmstate.h" +#include "hw/clock.h" + +const VMStateDescription vmstate_clockin = { + .name = "clock", + .version_id = 0, + .minimum_version_id = 0, + .fields = (VMStateField[]) { + VMSTATE_UINT64(frequency, ClockIn), + VMSTATE_END_OF_LIST() + } +}; diff --git a/include/hw/clock.h b/include/hw/clock.h index fd11202ba4..e7efb6ad17 100644 --- a/include/hw/clock.h +++ b/include/hw/clock.h @@ -34,6 +34,15 @@ struct ClockOut { QLIST_HEAD(, ClockIn) followers; /* list of registered clocks */ }; +/* + * vmstate description entry to be added in device vmsd. + */ +extern const VMStateDescription vmstate_clockin; +#define VMSTATE_CLOCKIN(_field, _state) \ + VMSTATE_CLOCKIN_V(_field, _state, 0) +#define VMSTATE_CLOCKIN_V(_field, _state, _version) \ + VMSTATE_STRUCT_POINTER_V(_field, _state, _version, vmstate_clockin, ClockIn) + /** * clock_out_setup_canonical_path: * @clk: clock
Signed-off-by: Damien Hedde <damien.hedde@greensocs.com> --- This was in the previous reviewed commit. But it can't be in the clock.c file in order to allow linux-user builds. --- hw/core/Makefile.objs | 1 + hw/core/clock-vmstate.c | 25 +++++++++++++++++++++++++ include/hw/clock.h | 9 +++++++++ 3 files changed, 35 insertions(+) create mode 100644 hw/core/clock-vmstate.c