[Qemu-devel] [PATCH 08/17] Move main signal handler setup to os specificfiles.

2010-06-10 Thread Jes . Sorensen
From: Jes Sorensen jes.soren...@redhat.com

Move main signal handler setup to os specific files.

Signed-off-by: Jes Sorensen jes.soren...@redhat.com
Acked-by: Juan Quintela quint...@redhat.com
Acked-by: Richard Henderson r...@redhat.com
---
 os-posix.c  |   27 +++
 qemu-os-posix.h |2 ++
 qemu-os-win32.h |3 +++
 vl.c|   33 +
 4 files changed, 33 insertions(+), 32 deletions(-)

diff --git a/os-posix.c b/os-posix.c
index 948f662..01dbec2 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -26,6 +26,8 @@
 #include unistd.h
 #include fcntl.h
 #include signal.h
+#include sys/types.h
+#include sys/wait.h
 
 /* Needed early for CONFIG_BSD etc. */
 #include config-host.h
@@ -39,3 +41,28 @@ void os_setup_early_signal_handling(void)
 act.sa_handler = SIG_IGN;
 sigaction(SIGPIPE, act, NULL);
 }
+
+static void termsig_handler(int signal)
+{
+qemu_system_shutdown_request();
+}
+
+static void sigchld_handler(int signal)
+{
+waitpid(-1, NULL, WNOHANG);
+}
+
+void os_setup_signal_handling(void)
+{
+struct sigaction act;
+
+memset(act, 0, sizeof(act));
+act.sa_handler = termsig_handler;
+sigaction(SIGINT,  act, NULL);
+sigaction(SIGHUP,  act, NULL);
+sigaction(SIGTERM, act, NULL);
+
+act.sa_handler = sigchld_handler;
+act.sa_flags = SA_NOCLDSTOP;
+sigaction(SIGCHLD, act, NULL);
+}
diff --git a/qemu-os-posix.h b/qemu-os-posix.h
index 96d1036..ff5adb1 100644
--- a/qemu-os-posix.h
+++ b/qemu-os-posix.h
@@ -30,4 +30,6 @@ static inline void os_host_main_loop_wait(int *timeout)
 {
 }
 
+void os_setup_signal_handling(void);
+
 #endif
diff --git a/qemu-os-win32.h b/qemu-os-win32.h
index 4d1cac8..e7e2ee3 100644
--- a/qemu-os-win32.h
+++ b/qemu-os-win32.h
@@ -41,4 +41,7 @@ int qemu_add_wait_object(HANDLE handle, WaitObjectFunc *func, 
void *opaque);
 void qemu_del_wait_object(HANDLE handle, WaitObjectFunc *func, void *opaque);
 
 void os_host_main_loop_wait(int *timeout);
+
+static inline void os_setup_signal_handling(void) {}
+
 #endif
diff --git a/vl.c b/vl.c
index a8fcb65..1fd839d 100644
--- a/vl.c
+++ b/vl.c
@@ -1986,35 +1986,6 @@ static int balloon_parse(const char *arg)
 return -1;
 }
 
-#ifndef _WIN32
-
-static void termsig_handler(int signal)
-{
-qemu_system_shutdown_request();
-}
-
-static void sigchld_handler(int signal)
-{
-waitpid(-1, NULL, WNOHANG);
-}
-
-static void sighandler_setup(void)
-{
-struct sigaction act;
-
-memset(act, 0, sizeof(act));
-act.sa_handler = termsig_handler;
-sigaction(SIGINT,  act, NULL);
-sigaction(SIGHUP,  act, NULL);
-sigaction(SIGTERM, act, NULL);
-
-act.sa_handler = sigchld_handler;
-act.sa_flags = SA_NOCLDSTOP;
-sigaction(SIGCHLD, act, NULL);
-}
-
-#endif
-
 #ifdef _WIN32
 /* Look for support files in the same directory as the executable.  */
 static char *find_datadir(const char *argv0)
@@ -3556,10 +3527,8 @@ int main(int argc, char **argv, char **envp)
 
 cpu_synchronize_all_post_init();
 
-#ifndef _WIN32
 /* must be after terminal init, SDL library changes signal handlers */
-sighandler_setup();
-#endif
+os_setup_signal_handling();
 
 set_numa_modes();
 
-- 
1.6.5.2




[Qemu-devel] [PATCH 08/17] Move main signal handler setup to os specificfiles.

2010-06-04 Thread Jes . Sorensen
From: Jes Sorensen jes.soren...@redhat.com

Move main signal handler setup to os specific files.

Signed-off-by: Jes Sorensen jes.soren...@redhat.com
---
 os-posix.c  |   27 +++
 qemu-os-posix.h |1 +
 qemu-os-win32.h |3 +++
 vl.c|   33 +
 4 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/os-posix.c b/os-posix.c
index 948f662..01dbec2 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -26,6 +26,8 @@
 #include unistd.h
 #include fcntl.h
 #include signal.h
+#include sys/types.h
+#include sys/wait.h
 
 /* Needed early for CONFIG_BSD etc. */
 #include config-host.h
@@ -39,3 +41,28 @@ void os_setup_early_signal_handling(void)
 act.sa_handler = SIG_IGN;
 sigaction(SIGPIPE, act, NULL);
 }
+
+static void termsig_handler(int signal)
+{
+qemu_system_shutdown_request();
+}
+
+static void sigchld_handler(int signal)
+{
+waitpid(-1, NULL, WNOHANG);
+}
+
+void os_setup_signal_handling(void)
+{
+struct sigaction act;
+
+memset(act, 0, sizeof(act));
+act.sa_handler = termsig_handler;
+sigaction(SIGINT,  act, NULL);
+sigaction(SIGHUP,  act, NULL);
+sigaction(SIGTERM, act, NULL);
+
+act.sa_handler = sigchld_handler;
+act.sa_flags = SA_NOCLDSTOP;
+sigaction(SIGCHLD, act, NULL);
+}
diff --git a/qemu-os-posix.h b/qemu-os-posix.h
index 2f54d40..41a4360 100644
--- a/qemu-os-posix.h
+++ b/qemu-os-posix.h
@@ -31,5 +31,6 @@ static inline void os_host_main_loop_wait(int *timeout)
 }
 
 void os_setup_early_signal_handling(void);
+void os_setup_signal_handling(void);
 
 #endif
diff --git a/qemu-os-win32.h b/qemu-os-win32.h
index 65e3a9d..ee30ea9 100644
--- a/qemu-os-win32.h
+++ b/qemu-os-win32.h
@@ -42,4 +42,7 @@ void qemu_del_wait_object(HANDLE handle, WaitObjectFunc 
*func, void *opaque);
 
 static inline void os_setup_early_signal_handling(void) {}
 void os_host_main_loop_wait(int *timeout);
+
+static inline void os_setup_signal_handling(void) {}
+
 #endif
diff --git a/vl.c b/vl.c
index 372f931..fc5e8d8 100644
--- a/vl.c
+++ b/vl.c
@@ -1986,35 +1986,6 @@ static int balloon_parse(const char *arg)
 return -1;
 }
 
-#ifndef _WIN32
-
-static void termsig_handler(int signal)
-{
-qemu_system_shutdown_request();
-}
-
-static void sigchld_handler(int signal)
-{
-waitpid(-1, NULL, WNOHANG);
-}
-
-static void sighandler_setup(void)
-{
-struct sigaction act;
-
-memset(act, 0, sizeof(act));
-act.sa_handler = termsig_handler;
-sigaction(SIGINT,  act, NULL);
-sigaction(SIGHUP,  act, NULL);
-sigaction(SIGTERM, act, NULL);
-
-act.sa_handler = sigchld_handler;
-act.sa_flags = SA_NOCLDSTOP;
-sigaction(SIGCHLD, act, NULL);
-}
-
-#endif
-
 #ifdef _WIN32
 /* Look for support files in the same directory as the executable.  */
 static char *find_datadir(const char *argv0)
@@ -3556,10 +3527,8 @@ int main(int argc, char **argv, char **envp)
 
 cpu_synchronize_all_post_init();
 
-#ifndef _WIN32
 /* must be after terminal init, SDL library changes signal handlers */
-sighandler_setup();
-#endif
+os_setup_signal_handling();
 
 set_numa_modes();
 
-- 
1.6.5.2




[Qemu-devel] [PATCH 08/17] Move main signal handler setup to os specificfiles.

2010-06-04 Thread Jes . Sorensen
From: Jes Sorensen jes.soren...@redhat.com

Move main signal handler setup to os specific files.

Signed-off-by: Jes Sorensen jes.soren...@redhat.com
---
 os-posix.c  |   27 +++
 qemu-os-posix.h |2 ++
 qemu-os-win32.h |3 +++
 vl.c|   33 +
 4 files changed, 33 insertions(+), 32 deletions(-)

diff --git a/os-posix.c b/os-posix.c
index 948f662..01dbec2 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -26,6 +26,8 @@
 #include unistd.h
 #include fcntl.h
 #include signal.h
+#include sys/types.h
+#include sys/wait.h
 
 /* Needed early for CONFIG_BSD etc. */
 #include config-host.h
@@ -39,3 +41,28 @@ void os_setup_early_signal_handling(void)
 act.sa_handler = SIG_IGN;
 sigaction(SIGPIPE, act, NULL);
 }
+
+static void termsig_handler(int signal)
+{
+qemu_system_shutdown_request();
+}
+
+static void sigchld_handler(int signal)
+{
+waitpid(-1, NULL, WNOHANG);
+}
+
+void os_setup_signal_handling(void)
+{
+struct sigaction act;
+
+memset(act, 0, sizeof(act));
+act.sa_handler = termsig_handler;
+sigaction(SIGINT,  act, NULL);
+sigaction(SIGHUP,  act, NULL);
+sigaction(SIGTERM, act, NULL);
+
+act.sa_handler = sigchld_handler;
+act.sa_flags = SA_NOCLDSTOP;
+sigaction(SIGCHLD, act, NULL);
+}
diff --git a/qemu-os-posix.h b/qemu-os-posix.h
index 96d1036..ff5adb1 100644
--- a/qemu-os-posix.h
+++ b/qemu-os-posix.h
@@ -30,4 +30,6 @@ static inline void os_host_main_loop_wait(int *timeout)
 {
 }
 
+void os_setup_signal_handling(void);
+
 #endif
diff --git a/qemu-os-win32.h b/qemu-os-win32.h
index 4d1cac8..e7e2ee3 100644
--- a/qemu-os-win32.h
+++ b/qemu-os-win32.h
@@ -41,4 +41,7 @@ int qemu_add_wait_object(HANDLE handle, WaitObjectFunc *func, 
void *opaque);
 void qemu_del_wait_object(HANDLE handle, WaitObjectFunc *func, void *opaque);
 
 void os_host_main_loop_wait(int *timeout);
+
+static inline void os_setup_signal_handling(void) {}
+
 #endif
diff --git a/vl.c b/vl.c
index 372f931..fc5e8d8 100644
--- a/vl.c
+++ b/vl.c
@@ -1986,35 +1986,6 @@ static int balloon_parse(const char *arg)
 return -1;
 }
 
-#ifndef _WIN32
-
-static void termsig_handler(int signal)
-{
-qemu_system_shutdown_request();
-}
-
-static void sigchld_handler(int signal)
-{
-waitpid(-1, NULL, WNOHANG);
-}
-
-static void sighandler_setup(void)
-{
-struct sigaction act;
-
-memset(act, 0, sizeof(act));
-act.sa_handler = termsig_handler;
-sigaction(SIGINT,  act, NULL);
-sigaction(SIGHUP,  act, NULL);
-sigaction(SIGTERM, act, NULL);
-
-act.sa_handler = sigchld_handler;
-act.sa_flags = SA_NOCLDSTOP;
-sigaction(SIGCHLD, act, NULL);
-}
-
-#endif
-
 #ifdef _WIN32
 /* Look for support files in the same directory as the executable.  */
 static char *find_datadir(const char *argv0)
@@ -3556,10 +3527,8 @@ int main(int argc, char **argv, char **envp)
 
 cpu_synchronize_all_post_init();
 
-#ifndef _WIN32
 /* must be after terminal init, SDL library changes signal handlers */
-sighandler_setup();
-#endif
+os_setup_signal_handling();
 
 set_numa_modes();
 
-- 
1.6.5.2