
|
/if DEFINED(SIGNAL_H_INCLUDED) /eof /endif /define SIGNAL_H_INCLUDED   *-------------------------------------------------------- * Available signals *-------------------------------------------------------- D SIGABRT C const(1) D SIGIOT C const(1) D SIGLOST C const(1) D SIGFPE C const(2) D SIGILL C const(3) D SIGINT C const(4) D SIGSEGV C const(5) D SIGTERM C const(6) D SIGUSR1 C const(7) D SIGUSR2 C const(8) D SIGIO C const(9) D SIGAIO C const(9) D SIGPTY C const(9) D SIGALL C const(10) D SIGOTHER C const(11) D SIGKILL C const(12) D SIGPIPE C const(13) D SIGALRM C const(14) D SIGHUP C const(15) D SIGQUIT C const(16) D SIGSTOP C const(17) D SIGTSTP C const(18) D SIGCONT C const(19) D SIGCHLD C const(20) D SIGCLD C const(20) D SIGTTIN C const(21) D SIGTTOU C const(22) D SIGURG C const(23) D SIGIOINT C const(23) D SIGPOLL C const(24) D SIGPCANCEL C const(25) D SIGPALRM C const(26) D SIGBUS C const(32) D SIGDANGER C const(33) D SIGPRE C const(34) D SIGSYS C const(35) |
D SIGTRAP C const(36) D SIGPROF C const(37) D SIGVTALRM C const(38) D SIGXCPU C const(39) D SIGXFSZ C const(40)   *-------------------------------------------------------- * flags *-------------------------------------------------------- D SA_NOCLDSTOP c const(1) D SA_NODEFER c const(2) D SA_RESETHAND c const(4) D SA_SIGINFO c const(8)   *-------------------------------------------------------- * sigprocmask() "how" argument *-------------------------------------------------------- D SIG_BLOCK c const(0) D SIG_UNBLOCK c const(1) D SIG_SETMASK c const(2)   *-------------------------------------------------------- * sigset_t: signal set data structure * =================================== * * Note: There's not much point in trying to copy the * way this is done in the ILE C header files, * since RPG doesn't support integers that are * 1-bit long. Instead, I've defined the mask as * one big field, and you can test/set bits with * the %bitand() and %bitor() BIFs *-------------------------------------------------------- /if not defined(SIGSET_T) D sigset_t s 20U 0 based(TEMPLATE) /define SIGSET_T /endif   *-------------------------------------------------------- * sigaction_t: signal action data structure * * Prototype for signal handler (only if not SA_SIGINFO) * D sa_handler PR * D signo 10I 0 value * |
* Prototype for signal action handler (only if SA_SIGINFO)
*
* D sa_sigaction PR
* D signo 10I 0 value
* D info likeds(siginfo_t)
* D context * value
*--------------------------------------------------------
D sigaction_t ds qualified
D align
D based(TEMPLATE)
D sa_handler * procptr
D sa_mask like(sigset_t)
D sa_flags 10I 0
D sa_sigaction * procptr
 
 
*--------------------------------------------------------
* siginfo_t: signal information data structure
*--------------------------------------------------------
D siginfo_t ds qualified
D align
D based(TEMPLATE)
D si_signo 10I 0
D si_bits 5U 0
D si_data_size 5I 0
D si_time 8A
D si_job 10A
D si_user 10A
D si_jobno 6A
D 4A
D si_code 10I 0
D si_errno 10I 0
D si_pid 10I 0
D si_uid 10U 0
D si_data 1A
 
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* alarm(): Send an alarm signal after XX seconds
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D alarm PR 10U 0 extproc('alarm')
D secs 10U 0 value
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
* Qp0sEnableSignals(): Enable a process for signals
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D Qp0sEnableSignals...
D PR 10I 0 extproc('Qp0sEnableSignals')
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* Qp0sDisableSignals(): Disable signals
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D Qp0sDisableSignals...
D PR 10I 0 extproc('Qp0sEnableSignals')
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* default signal handlers
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D C_sig_err PR extproc('_C_sig_err')
D signal 10I 0 value
D SIG_ERR S * procptr inz(%paddr(C_sig_err))
 
D C_sig_dfl PR extproc('_C_sig_dfl')
D signal 10I 0 value
D SIG_DFL S * procptr inz(%paddr(C_sig_dfl))
 
D C_sig_ign PR extproc('_C_sig_ign')
D signal 10I 0 value
D SIG_IGN S * procptr inz(%paddr(C_sig_ign))
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* sigaction(): Set signal action
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D sigaction PR extproc('sigaction')
D sig 10I 0 value
D act likeds(sigaction_t) const
D options(*omit)
D oact likeds(sigaction_t)
D options(*omit)
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* sigaddset(): add signal to signal set
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D sigaddset PR 10I 0 extproc('sigaddset')
D set like(sigset_t)
D signo 10I 0 value
 
 
|
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* sigdelset(): remove signal from signal set
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D sigdelset PR 10I 0 extproc('sigdelset')
D set like(sigset_t)
D signo 10I 0 value
 
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* sigemptyset(): initialize an empty signal set
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D sigemptyset PR 10I 0 extproc('sigemptyset')
D set like(sigset_t)
 
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* sigfillset(): initialize a full signal set
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D sigfillset PR 10I 0 extproc('sigfillset')
D set like(sigset_t)
 
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* sigismember(): test if signal is in signal set
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D sigismember PR 10I 0 extproc('sigismember')
D set like(sigset_t)
D signo 10I 0 value
 
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* signal(): set signal action (simplified version of
* sigaction() API)
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D signal PR * procptr
D extproc('signal')
D sig 10I 0 value
D handler * procptr value
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* sigpending(): examine pending signals
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D sigpending PR 10I 0 extproc('sigpending')
D set like(sigset_t)
|
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* sigprocmask(): Examine and change blocked signals
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D sigprocmask PR 10I 0 extproc('sigprocmask')
D how 10I 0 value
D set like(sigset_t)
D const
D oset like(sigset_t)
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* sigsuspend(): replace signal mask and suspend
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D sigsuspend PR 10I 0 extproc('sigsuspend')
D mask like(sigset_t) const
 
 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* sigwait(): wait for a signal in a set
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D sigwait PR 10I 0 extproc('sigwait')
D set like(sigset_t) const
|