I'm using Qemu along with a network simulator and I need to perform a synchronization every N cycles. What is the best way to do this in Qemu so that I can call a function periodically say every N instructions or simulated cpu cycles?
Currently I have a routine in main_loop() in vl.c but it seems like my synchronization routine is not called consistently. I'm showing the code snippet below to give you a better idea. #define NETWORK_SYNC_CPU_CYCLES 100000 static void main_loop(void) { int r; #ifdef NETWORK_COSIM int check_counter = NETWORK_SYNC_CPU_CYCLES; // #endif qemu_main_loop_start(); for (;;) { do { bool nonblocking = false; #ifdef NETWORK_COSIM if (--check_counter == 0) network_sync(); #endif : : } Thanks Adnan