596 |
} |
} |
597 |
|
|
598 |
#ifdef _WIN32 |
#ifdef _WIN32 |
599 |
DeviceIoControl(kqemu_fd, KQEMU_EXEC, |
if (DeviceIoControl(kqemu_fd, KQEMU_EXEC, |
600 |
kenv, sizeof(struct kqemu_cpu_state), |
kenv, sizeof(struct kqemu_cpu_state), |
601 |
kenv, sizeof(struct kqemu_cpu_state), |
kenv, sizeof(struct kqemu_cpu_state), |
602 |
&temp, NULL); |
&temp, NULL)) { |
603 |
ret = kenv->retval; |
ret = kenv->retval; |
604 |
|
} else { |
605 |
|
ret = -1; |
606 |
|
} |
607 |
#else |
#else |
608 |
#if KQEMU_VERSION >= 0x010100 |
#if KQEMU_VERSION >= 0x010100 |
609 |
ioctl(kqemu_fd, KQEMU_EXEC, kenv); |
ioctl(kqemu_fd, KQEMU_EXEC, kenv); |
740 |
return 0; |
return 0; |
741 |
} |
} |
742 |
|
|
743 |
|
void kqemu_cpu_interrupt(CPUState *env) |
744 |
|
{ |
745 |
|
#if defined(_WIN32) && KQEMU_VERSION >= 0x010101 |
746 |
|
/* cancelling the I/O request causes KQEMU to finish executing the |
747 |
|
current block and successfully returning. */ |
748 |
|
CancelIo(kqemu_fd); |
749 |
|
#endif |
750 |
|
} |
751 |
|
|
752 |
#endif |
#endif |