diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2011-10-16 12:19:12 +0200 |
---|---|---|
committer | Jan Kiszka <jan.kiszka@siemens.com> | 2012-01-19 12:14:40 +0100 |
commit | 7a380ca350f84b5b99391da20a2b4ea505b0524d (patch) | |
tree | a47120ebc693433afa1a09d9ef217bb8cc777556 /hw/apic_internal.h | |
parent | dae01685280cef9b70ade9167340b5373eada9e8 (diff) |
apic: Open-code timer save/restore
To enable migration between accelerated and non-accelerated APIC models,
we will need to handle the timer saving and restoring specially and can
no longer rely on the automatics of VMSTATE_TIMER. Specifically,
accelerated model will not start any QEMUTimer.
This patch therefore factors out the generic bits into apic_next_timer
and use a post-load callback to implemented model-specific logic.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Diffstat (limited to 'hw/apic_internal.h')
-rw-r--r-- | hw/apic_internal.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/apic_internal.h b/hw/apic_internal.h index a7433fb0e6..1db4f061b5 100644 --- a/hw/apic_internal.h +++ b/hw/apic_internal.h @@ -92,6 +92,7 @@ struct APICCommonState { int64_t next_time; int idx; QEMUTimer *timer; + int64_t timer_expiry; int sipi_vector; int wait_for_sipi; }; @@ -104,9 +105,11 @@ struct APICCommonInfo { void (*set_base)(APICCommonState *s, uint64_t val); void (*set_tpr)(APICCommonState *s, uint8_t val); void (*external_nmi)(APICCommonState *s); + void (*post_load)(APICCommonState *s); }; void apic_report_irq_delivered(int delivered); void apic_qdev_register(APICCommonInfo *info); +bool apic_next_timer(APICCommonState *s, int64_t current_time); #endif /* !QEMU_APIC_INTERNAL_H */ |