On Tue, Jul 26, 2016 at 8:00 AM, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 26 July 2016 at 15:37, Alistair Francis <alistai...@gmail.com> wrote: >> Signed-off-by: Alistair Francis <alist...@alistair23.me> >> --- >> >> hw/core/irq.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ >> include/hw/irq.h | 13 +++++++++++++ >> 2 files changed, 57 insertions(+) >> >> diff --git a/hw/core/irq.c b/hw/core/irq.c >> index 49ff2e6..73b18b4 100644 >> --- a/hw/core/irq.c >> +++ b/hw/core/irq.c >> @@ -27,6 +27,7 @@ >> #include "qom/object.h" >> >> #define IRQ(obj) OBJECT_CHECK(struct IRQState, (obj), TYPE_IRQ) >> +#define OR_IRQ(obj) OBJECT_CHECK(struct OrIRQState, (obj), TYPE_OR_IRQ) >> >> struct IRQState { >> Object parent_obj; >> @@ -36,6 +37,15 @@ struct IRQState { >> int n; >> }; >> >> +struct OrIRQState { >> + Object parent_obj; >> + >> + qemu_irq in_irq; >> + qemu_irq *out_irqs; >> + int *levels; > > The data in the memory pointed to by 'levels' is state, and you > need to migrate it somehow. (Otherwise you'll give the wrong > results the next time an input changes following a migration.)
A simple vmstate should be enough for that right? Thanks, Alistair > > thanks > -- PMM >