Message ID | 20200224170301.246623-3-damien.hedde@greensocs.com |
---|---|
State | New |
Headers | show |
Series | Clock framework API | expand |
On Mon, Feb 24, 2020 at 9:06 AM Damien Hedde <damien.hedde@greensocs.com> wrote: > > Signed-off-by: Damien Hedde <damien.hedde@greensocs.com> > Reviewed-by: Peter Maydell <peter.maydell@linaro.org> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > -- > > v7: remove leading underscores in macro args > --- > include/hw/clock.h | 9 +++++++++ > hw/core/clock-vmstate.c | 25 +++++++++++++++++++++++++ > hw/core/Makefile.objs | 1 + > 3 files changed, 35 insertions(+) > create mode 100644 hw/core/clock-vmstate.c > > diff --git a/include/hw/clock.h b/include/hw/clock.h > index 30ac9a9946..8c191751a1 100644 > --- a/include/hw/clock.h > +++ b/include/hw/clock.h > @@ -74,6 +74,15 @@ struct Clock { > QLIST_ENTRY(Clock) sibling; > }; > > +/* > + * vmstate description entry to be added in device vmsd. > + */ > +extern const VMStateDescription vmstate_clock; > +#define VMSTATE_CLOCK(field, state) \ > + VMSTATE_CLOCK_V(field, state, 0) > +#define VMSTATE_CLOCK_V(field, state, version) \ > + VMSTATE_STRUCT_POINTER_V(field, state, version, vmstate_clock, Clock) > + > /** > * clock_setup_canonical_path: > * @clk: clock > diff --git a/hw/core/clock-vmstate.c b/hw/core/clock-vmstate.c > new file mode 100644 > index 0000000000..260b13fc2c > --- /dev/null > +++ b/hw/core/clock-vmstate.c > @@ -0,0 +1,25 @@ > +/* > + * Clock migration structure > + * > + * Copyright GreenSocs 2019-2020 > + * > + * Authors: > + * Damien Hedde > + * > + * 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_clock = { > + .name = "clock", > + .version_id = 0, > + .minimum_version_id = 0, > + .fields = (VMStateField[]) { > + VMSTATE_UINT64(period, Clock), > + VMSTATE_END_OF_LIST() > + } > +}; > diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs > index d7080edf89..e3d796fdd4 100644 > --- a/hw/core/Makefile.objs > +++ b/hw/core/Makefile.objs > @@ -22,6 +22,7 @@ common-obj-$(CONFIG_SOFTMMU) += null-machine.o > common-obj-$(CONFIG_SOFTMMU) += loader.o > common-obj-$(CONFIG_SOFTMMU) += machine-hmp-cmds.o > common-obj-$(CONFIG_SOFTMMU) += numa.o > +common-obj-$(CONFIG_SOFTMMU) += clock-vmstate.o > obj-$(CONFIG_SOFTMMU) += machine-qmp-cmds.o > > common-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o > -- > 2.24.1 > >
diff --git a/include/hw/clock.h b/include/hw/clock.h index 30ac9a9946..8c191751a1 100644 --- a/include/hw/clock.h +++ b/include/hw/clock.h @@ -74,6 +74,15 @@ struct Clock { QLIST_ENTRY(Clock) sibling; }; +/* + * vmstate description entry to be added in device vmsd. + */ +extern const VMStateDescription vmstate_clock; +#define VMSTATE_CLOCK(field, state) \ + VMSTATE_CLOCK_V(field, state, 0) +#define VMSTATE_CLOCK_V(field, state, version) \ + VMSTATE_STRUCT_POINTER_V(field, state, version, vmstate_clock, Clock) + /** * clock_setup_canonical_path: * @clk: clock diff --git a/hw/core/clock-vmstate.c b/hw/core/clock-vmstate.c new file mode 100644 index 0000000000..260b13fc2c --- /dev/null +++ b/hw/core/clock-vmstate.c @@ -0,0 +1,25 @@ +/* + * Clock migration structure + * + * Copyright GreenSocs 2019-2020 + * + * Authors: + * Damien Hedde + * + * 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_clock = { + .name = "clock", + .version_id = 0, + .minimum_version_id = 0, + .fields = (VMStateField[]) { + VMSTATE_UINT64(period, Clock), + VMSTATE_END_OF_LIST() + } +}; diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index d7080edf89..e3d796fdd4 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -22,6 +22,7 @@ common-obj-$(CONFIG_SOFTMMU) += null-machine.o common-obj-$(CONFIG_SOFTMMU) += loader.o common-obj-$(CONFIG_SOFTMMU) += machine-hmp-cmds.o common-obj-$(CONFIG_SOFTMMU) += numa.o +common-obj-$(CONFIG_SOFTMMU) += clock-vmstate.o obj-$(CONFIG_SOFTMMU) += machine-qmp-cmds.o common-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o