diff options
| author | Richard M. Stallman <rms@gnu.org> | 1994-01-15 13:04:09 +0000 |
|---|---|---|
| committer | Richard M. Stallman <rms@gnu.org> | 1994-01-15 13:04:09 +0000 |
| commit | 25ab68afb8ba0d34dd868208e4fe19ea4a2f8cc7 (patch) | |
| tree | d8df996b8c9e978df38672e1baa5f878a5a28db2 /src/sysdep.c | |
| parent | 815c1a208b8b0f854913d097483bf50e5b198232 (diff) | |
| download | emacs-25ab68afb8ba0d34dd868208e4fe19ea4a2f8cc7.tar.gz | |
(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/sysdep.c')
| -rw-r--r-- | src/sysdep.c | 34 |
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 () #else /* not FASYNC, not STRIDE */ +#ifdef _CX_UX + +#include <termios.h> + +request_sigio () +{ + int on = 1; + sigset_t st; + + sigemptyset(&st); + sigaddset(&st, SIGIO); + ioctl (input_fd, FIOASYNC, &on); + interrupts_deferred = 0; + sigprocmask(SIG_UNBLOCK, &st, (sigset_t *)0); +} + +unrequest_sigio () +{ + int off = 0; + + ioctl (input_fd, FIOASYNC, &off); + interrupts_deferred = 1; +} + +#else /* ! _CX_UX */ + request_sigio () { croak ("request_sigio"); @@ -801,6 +827,7 @@ unrequest_sigio () croak ("unrequest_sigio"); } +#endif /* _CX_UX */ #endif /* STRIDE */ #endif /* FASYNC */ #endif /* F_SETFL */ @@ -2337,7 +2364,14 @@ sys_signal (int signal_number, signal_handler_t action) #else sigemptyset (&new_action.sa_mask); new_action.sa_handler = action; +#ifdef SA_RESTART + /* Emacs mostly works better with restartable system services. If this + * flag exists, we probably want to turn it on here. + */ + new_action.sa_flags = SA_RESTART; +#else new_action.sa_flags = 0; +#endif sigaction (signal_number, &new_action, &old_action); return (old_action.sa_handler); #endif /* DGUX */ |
