Lines Matching refs:sc

69 static void align_clocks(SyncClocks *sc, CPUState *cpu)  in align_clocks()  argument
78 sc->diff_clk += icount_to_ns(sc->last_cpu_icount - cpu_icount); in align_clocks()
79 sc->last_cpu_icount = cpu_icount; in align_clocks()
81 if (sc->diff_clk > VM_CLOCK_ADVANCE) { in align_clocks()
84 sleep_delay.tv_sec = sc->diff_clk / 1000000000LL; in align_clocks()
85 sleep_delay.tv_nsec = sc->diff_clk % 1000000000LL; in align_clocks()
87 sc->diff_clk = rem_delay.tv_sec * 1000000000LL + rem_delay.tv_nsec; in align_clocks()
89 sc->diff_clk = 0; in align_clocks()
92 Sleep(sc->diff_clk / SCALE_MS); in align_clocks()
93 sc->diff_clk = 0; in align_clocks()
98 static void print_delay(const SyncClocks *sc) in print_delay() argument
105 sc->realtime_clock - last_realtime_clock >= MAX_DELAY_PRINT_RATE && in print_delay()
107 if ((-sc->diff_clk / (float)1000000000LL > threshold_delay) || in print_delay()
108 (-sc->diff_clk / (float)1000000000LL < in print_delay()
110 threshold_delay = (-sc->diff_clk / 1000000000LL) + 1; in print_delay()
115 last_realtime_clock = sc->realtime_clock; in print_delay()
120 static void init_delay_params(SyncClocks *sc, CPUState *cpu) in init_delay_params() argument
125 sc->realtime_clock = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL_RT); in init_delay_params()
126 sc->diff_clk = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) - sc->realtime_clock; in init_delay_params()
127 sc->last_cpu_icount in init_delay_params()
129 if (sc->diff_clk < max_delay) { in init_delay_params()
130 max_delay = sc->diff_clk; in init_delay_params()
132 if (sc->diff_clk > max_advance) { in init_delay_params()
133 max_advance = sc->diff_clk; in init_delay_params()
138 print_delay(sc); in init_delay_params()
141 static void align_clocks(SyncClocks *sc, const CPUState *cpu) in align_clocks() argument
145 static void init_delay_params(SyncClocks *sc, const CPUState *cpu) in init_delay_params() argument
961 cpu_exec_loop(CPUState *cpu, SyncClocks *sc) in cpu_exec_loop() argument
1035 align_clocks(sc, cpu); in cpu_exec_loop()
1041 static int cpu_exec_setjmp(CPUState *cpu, SyncClocks *sc) in cpu_exec_setjmp() argument
1048 return cpu_exec_loop(cpu, sc); in cpu_exec_setjmp()
1054 SyncClocks sc = { 0 }; in cpu_exec() local
1072 init_delay_params(&sc, cpu); in cpu_exec()
1074 ret = cpu_exec_setjmp(cpu, &sc); in cpu_exec()