Message ID | 20191015162705.28087-4-philmd@redhat.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge | expand |
On Tuesday, October 15, 2019, Philippe Mathieu-Daudé <philmd@redhat.com> wrote: > From: Hervé Poussineau <hpoussin@reactos.org> > > We are now able to embed a timer in another object. > > Acked-by: Michael S. Tsirkin <mst@redhat.com> > Acked-by: Paolo Bonzini <pbonzini@redhat.com> > Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> > Message-Id: <20171216090228.28505-4-hpoussin@reactos.org> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > hw/timer/mc146818rtc.c | 30 ------------------------------ > include/hw/timer/mc146818rtc.h | 33 +++++++++++++++++++++++++++++++++ > 2 files changed, 33 insertions(+), 30 deletions(-) > > Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com> > diff --git a/hw/timer/mc146818rtc.c b/hw/timer/mc146818rtc.c > index 6cb378751b..e40b54e743 100644 > --- a/hw/timer/mc146818rtc.c > +++ b/hw/timer/mc146818rtc.c > @@ -71,36 +71,6 @@ > #define RTC_CLOCK_RATE 32768 > #define UIP_HOLD_LENGTH (8 * NANOSECONDS_PER_SECOND / 32768) > > -#define MC146818_RTC(obj) OBJECT_CHECK(RTCState, (obj), TYPE_MC146818_RTC) > - > -typedef struct RTCState { > - ISADevice parent_obj; > - > - MemoryRegion io; > - MemoryRegion coalesced_io; > - uint8_t cmos_data[128]; > - uint8_t cmos_index; > - int32_t base_year; > - uint64_t base_rtc; > - uint64_t last_update; > - int64_t offset; > - qemu_irq irq; > - int it_shift; > - /* periodic timer */ > - QEMUTimer *periodic_timer; > - int64_t next_periodic_time; > - /* update-ended timer */ > - QEMUTimer *update_timer; > - uint64_t next_alarm_time; > - uint16_t irq_reinject_on_ack_count; > - uint32_t irq_coalesced; > - uint32_t period; > - QEMUTimer *coalesced_timer; > - LostTickPolicy lost_tick_policy; > - Notifier suspend_notifier; > - QLIST_ENTRY(RTCState) link; > -} RTCState; > - > static void rtc_set_time(RTCState *s); > static void rtc_update_time(RTCState *s); > static void rtc_set_cmos(RTCState *s, const struct tm *tm); > diff --git a/include/hw/timer/mc146818rtc.h b/include/hw/timer/ > mc146818rtc.h > index fe6ed63f71..0f1c886e5b 100644 > --- a/include/hw/timer/mc146818rtc.h > +++ b/include/hw/timer/mc146818rtc.h > @@ -1,10 +1,43 @@ > #ifndef MC146818RTC_H > #define MC146818RTC_H > > +#include "qapi/qapi-types-misc.h" > +#include "qemu/queue.h" > +#include "qemu/timer.h" > #include "hw/isa/isa.h" > #include "hw/timer/mc146818rtc_regs.h" > > #define TYPE_MC146818_RTC "mc146818rtc" > +#define MC146818_RTC(obj) OBJECT_CHECK(RTCState, (obj), TYPE_MC146818_RTC) > + > +typedef struct RTCState { > + ISADevice parent_obj; > + > + MemoryRegion io; > + MemoryRegion coalesced_io; > + uint8_t cmos_data[128]; > + uint8_t cmos_index; > + int32_t base_year; > + uint64_t base_rtc; > + uint64_t last_update; > + int64_t offset; > + qemu_irq irq; > + int it_shift; > + /* periodic timer */ > + QEMUTimer *periodic_timer; > + int64_t next_periodic_time; > + /* update-ended timer */ > + QEMUTimer *update_timer; > + uint64_t next_alarm_time; > + uint16_t irq_reinject_on_ack_count; > + uint32_t irq_coalesced; > + uint32_t period; > + QEMUTimer *coalesced_timer; > + Notifier clock_reset_notifier; > + LostTickPolicy lost_tick_policy; > + Notifier suspend_notifier; > + QLIST_ENTRY(RTCState) link; > +} RTCState; > > ISADevice *mc146818_rtc_init(ISABus *bus, int base_year, > qemu_irq intercept_irq); > -- > 2.21.0 > > >
diff --git a/hw/timer/mc146818rtc.c b/hw/timer/mc146818rtc.c index 6cb378751b..e40b54e743 100644 --- a/hw/timer/mc146818rtc.c +++ b/hw/timer/mc146818rtc.c @@ -71,36 +71,6 @@ #define RTC_CLOCK_RATE 32768 #define UIP_HOLD_LENGTH (8 * NANOSECONDS_PER_SECOND / 32768) -#define MC146818_RTC(obj) OBJECT_CHECK(RTCState, (obj), TYPE_MC146818_RTC) - -typedef struct RTCState { - ISADevice parent_obj; - - MemoryRegion io; - MemoryRegion coalesced_io; - uint8_t cmos_data[128]; - uint8_t cmos_index; - int32_t base_year; - uint64_t base_rtc; - uint64_t last_update; - int64_t offset; - qemu_irq irq; - int it_shift; - /* periodic timer */ - QEMUTimer *periodic_timer; - int64_t next_periodic_time; - /* update-ended timer */ - QEMUTimer *update_timer; - uint64_t next_alarm_time; - uint16_t irq_reinject_on_ack_count; - uint32_t irq_coalesced; - uint32_t period; - QEMUTimer *coalesced_timer; - LostTickPolicy lost_tick_policy; - Notifier suspend_notifier; - QLIST_ENTRY(RTCState) link; -} RTCState; - static void rtc_set_time(RTCState *s); static void rtc_update_time(RTCState *s); static void rtc_set_cmos(RTCState *s, const struct tm *tm); diff --git a/include/hw/timer/mc146818rtc.h b/include/hw/timer/mc146818rtc.h index fe6ed63f71..0f1c886e5b 100644 --- a/include/hw/timer/mc146818rtc.h +++ b/include/hw/timer/mc146818rtc.h @@ -1,10 +1,43 @@ #ifndef MC146818RTC_H #define MC146818RTC_H +#include "qapi/qapi-types-misc.h" +#include "qemu/queue.h" +#include "qemu/timer.h" #include "hw/isa/isa.h" #include "hw/timer/mc146818rtc_regs.h" #define TYPE_MC146818_RTC "mc146818rtc" +#define MC146818_RTC(obj) OBJECT_CHECK(RTCState, (obj), TYPE_MC146818_RTC) + +typedef struct RTCState { + ISADevice parent_obj; + + MemoryRegion io; + MemoryRegion coalesced_io; + uint8_t cmos_data[128]; + uint8_t cmos_index; + int32_t base_year; + uint64_t base_rtc; + uint64_t last_update; + int64_t offset; + qemu_irq irq; + int it_shift; + /* periodic timer */ + QEMUTimer *periodic_timer; + int64_t next_periodic_time; + /* update-ended timer */ + QEMUTimer *update_timer; + uint64_t next_alarm_time; + uint16_t irq_reinject_on_ack_count; + uint32_t irq_coalesced; + uint32_t period; + QEMUTimer *coalesced_timer; + Notifier clock_reset_notifier; + LostTickPolicy lost_tick_policy; + Notifier suspend_notifier; + QLIST_ENTRY(RTCState) link; +} RTCState; ISADevice *mc146818_rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq);