I am investigating what longjmp is used for in qemu.

longjmp is used in a couple of places.

1.
 void cpu_loop_exit(void)
{
    env->current_tb = NULL;
    longjmp(env->jmp_env, 1);
}

cpu_loop_exit is called when there is an interrupt_request or exit_request
pending

2.
void cpu_resume_from_signal(CPUState *env1, void *puc)
{
   ...
   longjmp(env->jmp_env, 1);
}

cpu_resume_from_signal is called in a couple of places, each of which
suggests something faulty has happened. my guess is that it will get call
when exceptions have occurred in the code cache. Am I right ?


Thanks


Xin

Reply via email to