Skip to content

Commit

Permalink
aio / timers: Split QEMUClock into QEMUClock and QEMUTimerList
Browse files Browse the repository at this point in the history
Split QEMUClock into QEMUClock and QEMUTimerList so that we can
have more than one QEMUTimerList associated with the same clock.

Introduce a main_loop_timerlist concept and make existing
qemu_clock_* calls that actually should operate on a QEMUTimerList
call the relevant QEMUTimerList implementations, using the clock's
default timerlist. This vastly reduces the invasiveness of this
change and means the API stays constant for existing users.

Introduce a list of QEMUTimerLists associated with each clock
so that reenabling the clock can cause all the notifiers
to be called. Note the code to do the notifications is added
in a later patch.

Switch QEMUClockType to an enum. Remove global variables vm_clock,
host_clock and rt_clock and add compatibility defines. Do not
fix qemu_next_alarm_deadline as it's going to be deleted.

Add qemu_clock_use_for_deadline to indicate whether a particular
clock should be used for deadline calculations. When use_icount
is true, vm_clock should not be used for deadline calculations
as it does not contain a nanosecond count. Instead, icount
timeouts come from the execution thread doing aio_notify or
qemu_notify as appropriate. This function is used in the next
patch.

Signed-off-by: Alex Bligh <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
  • Loading branch information
abligh authored and stefanhaRH committed Aug 22, 2013
1 parent f9a976b commit ff83c66
Show file tree
Hide file tree
Showing 2 changed files with 476 additions and 79 deletions.
Loading

0 comments on commit ff83c66

Please sign in to comment.