Move win32 early signal handling setup to os_setup_signal_handling()

Move win32 early signal handling setup to os_setup_signal_handling()

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Acked-by: Juan Quintela <quintela@redhat.com>
Acked-by: Richard Henderson <rth@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
Jes Sorensen 2010-06-10 11:42:20 +02:00 committed by Blue Swirl
parent 86b645e753
commit 69bd73b1b0
4 changed files with 31 additions and 32 deletions

View file

@ -152,3 +152,32 @@ void os_host_main_loop_wait(int *timeout)
*timeout = 0;
}
static BOOL WINAPI qemu_ctrl_handler(DWORD type)
{
exit(STATUS_CONTROL_C_EXIT);
return TRUE;
}
void os_setup_signal_handling(void)
{
/* Note: cpu_interrupt() is currently not SMP safe, so we force
QEMU to run on a single CPU */
HANDLE h;
DWORD mask, smask;
int i;
SetConsoleCtrlHandler(qemu_ctrl_handler, TRUE);
h = GetCurrentProcess();
if (GetProcessAffinityMask(h, &mask, &smask)) {
for(i = 0; i < 32; i++) {
if (mask & (1 << i))
break;
}
if (i != 32) {
mask = 1 << i;
SetProcessAffinityMask(h, mask);
}
}
}