On 2012-06-05 12:25, Avi Kivity wrote: > On 06/05/2012 04:00 AM, Michael Roth wrote: >> Add our annotations according to QIDL documentation. >> >> +qc_declaration typedef struct RTCState { >> + ISADevice _immutable dev; >> + MemoryRegion _immutable io; >> uint8_t cmos_data[128]; >> uint8_t cmos_index; >> struct tm current_tm; >> int32_t base_year; >> - qemu_irq irq; >> - qemu_irq sqw_irq; >> - int it_shift; >> + qemu_irq _immutable irq; >> + qemu_irq _immutable sqw_irq; > > How is qemu_irq immutable? We're raising and lowering it many times a > second. It's _derived, perhaps, but not immutable.
No, IRQState in its current form is immutable, doesn't contain any volatile state. > >> + int32_t _immutable it_shift; >> /* periodic timer */ >> QEMUTimer *periodic_timer; >> int64_t next_periodic_time; >> /* second update */ >> int64_t next_second_time; >> - uint16_t irq_reinject_on_ack_count; >> + uint16_t _derived irq_reinject_on_ack_count; > > It's not derived from anything. It's _host, maybe. I think it is _broken. > >> uint32_t irq_coalesced; >> uint32_t period; >> - QEMUTimer *coalesced_timer; >> + QEMUTimer _broken *coalesced_timer; >> QEMUTimer *second_timer; >> QEMUTimer *second_timer2; >> - Notifier clock_reset_notifier; >> - LostTickPolicy lost_tick_policy; >> - Notifier suspend_notifier; >> + Notifier _broken clock_reset_notifier; > > Why broken? > >> + LostTickPolicy _immutable lost_tick_policy; > > _host; nothign prevents us from changing it dynamically in theory. _host makes no sense to me. Either it is _immutable or _broken - or is properly saved/restored. What should be the semantic of _host? > >> + Notifier _broken suspend_notifier; > > Why broken? > >> } RTCState; >> >> #endif /* !MC146818RTC_STATE_H */ > > Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux