aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1994-01-15 13:04:09 +0000
committerRichard M. Stallman1994-01-15 13:04:09 +0000
commit25ab68afb8ba0d34dd868208e4fe19ea4a2f8cc7 (patch)
treed8df996b8c9e978df38672e1baa5f878a5a28db2 /src
parent815c1a208b8b0f854913d097483bf50e5b198232 (diff)
downloademacs-25ab68afb8ba0d34dd868208e4fe19ea4a2f8cc7.tar.gz
emacs-25ab68afb8ba0d34dd868208e4fe19ea4a2f8cc7.zip
(request_sigio, unrequest_sigio): Add new versions of
these routines for the CX/UX operating system. (sys_signal) [SA_RESTART]: Set this flag.
Diffstat (limited to 'src')
-rw-r--r--src/sysdep.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/sysdep.c b/src/sysdep.c
index 23376cb9bce..68d3d5463db 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -791,6 +791,32 @@ unrequest_sigio ()
791 791
792#else /* not FASYNC, not STRIDE */ 792#else /* not FASYNC, not STRIDE */
793 793
794#ifdef _CX_UX
795
796#include <termios.h>
797
798request_sigio ()
799{
800 int on = 1;
801 sigset_t st;
802
803 sigemptyset(&st);
804 sigaddset(&st, SIGIO);
805 ioctl (input_fd, FIOASYNC, &on);
806 interrupts_deferred = 0;
807 sigprocmask(SIG_UNBLOCK, &st, (sigset_t *)0);
808}
809
810unrequest_sigio ()
811{
812 int off = 0;
813
814 ioctl (input_fd, FIOASYNC, &off);
815 interrupts_deferred = 1;
816}
817
818#else /* ! _CX_UX */
819
794request_sigio () 820request_sigio ()
795{ 821{
796 croak ("request_sigio"); 822 croak ("request_sigio");
@@ -801,6 +827,7 @@ unrequest_sigio ()
801 croak ("unrequest_sigio"); 827 croak ("unrequest_sigio");
802} 828}
803 829
830#endif /* _CX_UX */
804#endif /* STRIDE */ 831#endif /* STRIDE */
805#endif /* FASYNC */ 832#endif /* FASYNC */
806#endif /* F_SETFL */ 833#endif /* F_SETFL */
@@ -2337,7 +2364,14 @@ sys_signal (int signal_number, signal_handler_t action)
2337#else 2364#else
2338 sigemptyset (&new_action.sa_mask); 2365 sigemptyset (&new_action.sa_mask);
2339 new_action.sa_handler = action; 2366 new_action.sa_handler = action;
2367#ifdef SA_RESTART
2368 /* Emacs mostly works better with restartable system services. If this
2369 * flag exists, we probably want to turn it on here.
2370 */
2371 new_action.sa_flags = SA_RESTART;
2372#else
2340 new_action.sa_flags = 0; 2373 new_action.sa_flags = 0;
2374#endif
2341 sigaction (signal_number, &new_action, &old_action); 2375 sigaction (signal_number, &new_action, &old_action);
2342 return (old_action.sa_handler); 2376 return (old_action.sa_handler);
2343#endif /* DGUX */ 2377#endif /* DGUX */