diff options
| author | Richard M. Stallman | 1994-01-15 13:04:09 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-01-15 13:04:09 +0000 |
| commit | 25ab68afb8ba0d34dd868208e4fe19ea4a2f8cc7 (patch) | |
| tree | d8df996b8c9e978df38672e1baa5f878a5a28db2 /src | |
| parent | 815c1a208b8b0f854913d097483bf50e5b198232 (diff) | |
| download | emacs-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.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 () | |||
| 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 | |||
| 798 | request_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 | |||
| 810 | unrequest_sigio () | ||
| 811 | { | ||
| 812 | int off = 0; | ||
| 813 | |||
| 814 | ioctl (input_fd, FIOASYNC, &off); | ||
| 815 | interrupts_deferred = 1; | ||
| 816 | } | ||
| 817 | |||
| 818 | #else /* ! _CX_UX */ | ||
| 819 | |||
| 794 | request_sigio () | 820 | request_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 */ |