[Qemu-devel] [PATCH 06/17] Move win32 early signal handling setup to os_setup_signal_handling()
From: Jes Sorensen jes.soren...@redhat.com Move win32 early signal handling setup to os_setup_signal_handling() Signed-off-by: Jes Sorensen jes.soren...@redhat.com Acked-by: Juan Quintela quint...@redhat.com Acked-by: Richard Henderson r...@redhat.com --- os-win32.c | 29 + qemu-os-posix.h |2 -- sysemu.h|2 ++ vl.c| 30 -- 4 files changed, 31 insertions(+), 32 deletions(-) diff --git a/os-win32.c b/os-win32.c index 1f7e28b..dfa90bc 100644 --- a/os-win32.c +++ b/os-win32.c @@ -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); +} +} +} diff --git a/qemu-os-posix.h b/qemu-os-posix.h index ff5adb1..96d1036 100644 --- a/qemu-os-posix.h +++ b/qemu-os-posix.h @@ -30,6 +30,4 @@ static inline void os_host_main_loop_wait(int *timeout) { } -void os_setup_signal_handling(void); - #endif diff --git a/sysemu.h b/sysemu.h index 5e4feae..e3643ad 100644 --- a/sysemu.h +++ b/sysemu.h @@ -79,6 +79,8 @@ int qemu_loadvm_state(QEMUFile *f); /* SLIRP */ void do_info_slirp(Monitor *mon); +void os_setup_signal_handling(void); + typedef enum DisplayType { DT_DEFAULT, diff --git a/vl.c b/vl.c index 29c9697..264710d 100644 --- a/vl.c +++ b/vl.c @@ -1986,14 +1986,6 @@ static int balloon_parse(const char *arg) return -1; } -#ifdef _WIN32 -static BOOL WINAPI qemu_ctrl_handler(DWORD type) -{ -exit(STATUS_CONTROL_C_EXIT); -return TRUE; -} -#endif - #ifndef _WIN32 static void termsig_handler(int signal) @@ -2459,29 +2451,7 @@ int main(int argc, char **argv, char **envp) qemu_cache_utils_init(envp); QLIST_INIT (vm_change_state_head); -#ifndef _WIN32 os_setup_signal_handling(); -#else -SetConsoleCtrlHandler(qemu_ctrl_handler, TRUE); -/* 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; -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); -} -} -} -#endif module_call_init(MODULE_INIT_MACHINE); machine = find_default_machine(); -- 1.6.5.2
[Qemu-devel] [PATCH 06/17] Move win32 early signal handling setup to os_setup_signal_handling()
From: Jes Sorensen jes.soren...@redhat.com Move win32 early signal handling setup to os_setup_signal_handling() Signed-off-by: Jes Sorensen jes.soren...@redhat.com --- os-win32.c | 29 + vl.c | 30 -- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/os-win32.c b/os-win32.c index 1f7e28b..dfa90bc 100644 --- a/os-win32.c +++ b/os-win32.c @@ -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); +} +} +} diff --git a/vl.c b/vl.c index 7a46fee..f43456a 100644 --- a/vl.c +++ b/vl.c @@ -1986,14 +1986,6 @@ static int balloon_parse(const char *arg) return -1; } -#ifdef _WIN32 -static BOOL WINAPI qemu_ctrl_handler(DWORD type) -{ -exit(STATUS_CONTROL_C_EXIT); -return TRUE; -} -#endif - #ifndef _WIN32 static void termsig_handler(int signal) @@ -2459,29 +2451,7 @@ int main(int argc, char **argv, char **envp) qemu_cache_utils_init(envp); QLIST_INIT (vm_change_state_head); -#ifndef _WIN32 os_setup_signal_handling(); -#else -SetConsoleCtrlHandler(qemu_ctrl_handler, TRUE); -/* 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; -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); -} -} -} -#endif module_call_init(MODULE_INIT_MACHINE); machine = find_default_machine(); -- 1.6.5.2
[Qemu-devel] [PATCH 06/17] Move win32 early signal handling setup to os_setup_signal_handling()
From: Jes Sorensen jes.soren...@redhat.com Move win32 early signal handling setup to os_setup_signal_handling() Signed-off-by: Jes Sorensen jes.soren...@redhat.com --- os-win32.c | 29 + qemu-os-posix.h |2 -- sysemu.h|2 ++ vl.c| 30 -- 4 files changed, 31 insertions(+), 32 deletions(-) diff --git a/os-win32.c b/os-win32.c index 1f7e28b..dfa90bc 100644 --- a/os-win32.c +++ b/os-win32.c @@ -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); +} +} +} diff --git a/qemu-os-posix.h b/qemu-os-posix.h index ff5adb1..96d1036 100644 --- a/qemu-os-posix.h +++ b/qemu-os-posix.h @@ -30,6 +30,4 @@ static inline void os_host_main_loop_wait(int *timeout) { } -void os_setup_signal_handling(void); - #endif diff --git a/sysemu.h b/sysemu.h index 5e4feae..e3643ad 100644 --- a/sysemu.h +++ b/sysemu.h @@ -79,6 +79,8 @@ int qemu_loadvm_state(QEMUFile *f); /* SLIRP */ void do_info_slirp(Monitor *mon); +void os_setup_signal_handling(void); + typedef enum DisplayType { DT_DEFAULT, diff --git a/vl.c b/vl.c index 7a46fee..f43456a 100644 --- a/vl.c +++ b/vl.c @@ -1986,14 +1986,6 @@ static int balloon_parse(const char *arg) return -1; } -#ifdef _WIN32 -static BOOL WINAPI qemu_ctrl_handler(DWORD type) -{ -exit(STATUS_CONTROL_C_EXIT); -return TRUE; -} -#endif - #ifndef _WIN32 static void termsig_handler(int signal) @@ -2459,29 +2451,7 @@ int main(int argc, char **argv, char **envp) qemu_cache_utils_init(envp); QLIST_INIT (vm_change_state_head); -#ifndef _WIN32 os_setup_signal_handling(); -#else -SetConsoleCtrlHandler(qemu_ctrl_handler, TRUE); -/* 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; -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); -} -} -} -#endif module_call_init(MODULE_INIT_MACHINE); machine = find_default_machine(); -- 1.6.5.2