// --- myPlugin ---
void ValidPathSearcher::triggerSelfSwitch() {
env->current_tb = nullptr;
// validPathSearcherStateSwitchCallback and stateSwitchTimerCallback are almost the same.
s2e()->getExecutor()->validPathSearcherStateSwitchCallback(s2e()->getExecutor());
// exit current state so that s2e continues with the selected state.
s2e()->getExecutor()->setCpuExitRequest();
}
// --- declared in s2e\libs2ecore\include\s2e\S2EExecutor.h ---
void setCpuExitRequest(void);
// --- definede in s2e\libs2ecore\src\S2EExecutor.cpp ---
void S2EExecutor::setCpuExitRequest() {
s2e_kvm_cpu_exit_request();
}
// --- declared in s2e\libs2ecore\include\s2e\cpu.h ---
void s2e_kvm_cpu_exit_request(void);
// --- definede in s2e\libs2e\src\s2e-kvm-vcpu.cpp ---
void s2e_kvm_cpu_exit_request(void) {
s2e::kvm::s_vcpu->requestExit();
}