diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2016-03-24 08:15:03 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2016-03-24 08:15:03 +0100 |
commit | 6c153dc8de71f204cd03deaf4fb1bdbe2d3aa6a9 (patch) | |
tree | 553dc759fef1fdb0f00da35d857f38cd5294ef6a /fbtools.c | |
parent | 8af2652bcc7b343a6fec7d48b4a441905d76ba2c (diff) | |
download | fbida-6c153dc8de71f204cd03deaf4fb1bdbe2d3aa6a9.tar.gz |
move signal handling out of fb code
Diffstat (limited to 'fbtools.c')
-rw-r--r-- | fbtools.c | 40 |
1 files changed, 0 insertions, 40 deletions
@@ -540,43 +540,3 @@ gfxstate* fb_init(char *device, char *mode, int vt) fb_cleanup_display(); exit(1); } - -/* -------------------------------------------------------------------- */ -/* handle fatal errors */ - -static jmp_buf fb_fatal_cleanup; - -static void -fb_catch_exit_signal(int signal) -{ - siglongjmp(fb_fatal_cleanup,signal); -} - -void -fb_catch_exit_signals(void) -{ - struct sigaction act,old; - int termsig; - - memset(&act,0,sizeof(act)); - act.sa_handler = fb_catch_exit_signal; - sigemptyset(&act.sa_mask); - sigaction(SIGINT, &act,&old); - sigaction(SIGQUIT,&act,&old); - sigaction(SIGTERM,&act,&old); - - sigaction(SIGABRT,&act,&old); - sigaction(SIGTSTP,&act,&old); - - sigaction(SIGBUS, &act,&old); - sigaction(SIGILL, &act,&old); - sigaction(SIGSEGV,&act,&old); - - if (0 == (termsig = sigsetjmp(fb_fatal_cleanup,0))) - return; - - /* cleanup */ - fb_cleanup_display(); - fprintf(stderr,"Oops: %s\n",strsignal(termsig)); - exit(42); -} |