Diff for /qemu/qemu-timer.h between versions and

version, 2018/04/24 18:56:50 version, 2018/04/24 19:17:58
Line 2 Line 2
 #define QEMU_TIMER_H  #define QEMU_TIMER_H
 #include "qemu-common.h"  #include "qemu-common.h"
   #include "main-loop.h"
 #include "notify.h"  #include "notify.h"
 #include <time.h>  #include <time.h>
 #include <sys/time.h>  #include <sys/time.h>
Line 38  extern QEMUClock *vm_clock; Line 39  extern QEMUClock *vm_clock;
 extern QEMUClock *host_clock;  extern QEMUClock *host_clock;
 int64_t qemu_get_clock_ns(QEMUClock *clock);  int64_t qemu_get_clock_ns(QEMUClock *clock);
   int64_t qemu_clock_has_timers(QEMUClock *clock);
   int64_t qemu_clock_expired(QEMUClock *clock);
   int64_t qemu_clock_deadline(QEMUClock *clock);
 void qemu_clock_enable(QEMUClock *clock, int enabled);  void qemu_clock_enable(QEMUClock *clock, int enabled);
 void qemu_clock_warp(QEMUClock *clock);  void qemu_clock_warp(QEMUClock *clock);
Line 49  QEMUTimer *qemu_new_timer(QEMUClock *clo Line 53  QEMUTimer *qemu_new_timer(QEMUClock *clo
                           QEMUTimerCB *cb, void *opaque);                            QEMUTimerCB *cb, void *opaque);
 void qemu_free_timer(QEMUTimer *ts);  void qemu_free_timer(QEMUTimer *ts);
 void qemu_del_timer(QEMUTimer *ts);  void qemu_del_timer(QEMUTimer *ts);
   void qemu_mod_timer_ns(QEMUTimer *ts, int64_t expire_time);
 void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time);  void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time);
 int qemu_timer_pending(QEMUTimer *ts);  int qemu_timer_pending(QEMUTimer *ts);
 int qemu_timer_expired(QEMUTimer *timer_head, int64_t current_time);  int qemu_timer_expired(QEMUTimer *timer_head, int64_t current_time);
   uint64_t qemu_timer_expire_time_ns(QEMUTimer *ts);
 void qemu_run_all_timers(void);  void qemu_run_all_timers(void);
 int qemu_alarm_pending(void);  int qemu_alarm_pending(void);
 int64_t qemu_next_icount_deadline(void);  
 void configure_alarms(char const *opt);  void configure_alarms(char const *opt);
 void configure_icount(const char *option);  
 int qemu_calculate_timeout(void);  int qemu_calculate_timeout(void);
 void init_clocks(void);  void init_clocks(void);
 int init_timer_alarm(void);  int init_timer_alarm(void);
 void quit_timers(void);  
 int64_t cpu_get_ticks(void);  int64_t cpu_get_ticks(void);
 void cpu_enable_ticks(void);  void cpu_enable_ticks(void);
Line 150  void ptimer_run(ptimer_state *s, int one Line 153  void ptimer_run(ptimer_state *s, int one
 void ptimer_stop(ptimer_state *s);  void ptimer_stop(ptimer_state *s);
 /* icount */  /* icount */
 int64_t qemu_icount_round(int64_t count);  
 extern int64_t qemu_icount;  
 extern int use_icount;  
 extern int icount_time_shift;  
 extern int64_t qemu_icount_bias;  
 int64_t cpu_get_icount(void);  int64_t cpu_get_icount(void);
   int64_t cpu_get_clock(void);
 /*******************************************/  /*******************************************/
 /* host CPU ticks (if available) */  /* host CPU ticks (if available) */
Line 311  static inline int64_t cpu_get_real_ticks Line 310  static inline int64_t cpu_get_real_ticks
 }  }
 #endif  #endif
 #ifdef NEED_CPU_H  
 /* Deterministic execution requires that IO only be performed on the last  
    instruction of a TB so that interrupts take effect immediately.  */  
 static inline int can_do_io(CPUState *env)  
     if (!use_icount)  
         return 1;  
     /* If not executing code then assume we are ok.  */  
     if (!env->current_tb)  
         return 1;  
     return env->can_do_io != 0;  
 static inline int64_t profile_getclock(void)  static inline int64_t profile_getclock(void)
 {  {

Removed from v.  
changed lines
  Added in v.