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

Reply via email to