Annotation of researchv9/libc/sys/signal.c, revision 1.1.1.1

1.1       root        1: #include <signal.h>
                      2: #include <errno.h>
                      3: 
                      4: extern int     (*_signal())();
                      5: extern int     _sigtramp();
                      6: int            (*_sigfunc[NSIG])();
                      7: extern int     errno;
                      8: 
                      9: int (*signal(sig, func))()
                     10:        int sig;
                     11:        int (*func)();
                     12: {
                     13:        int (*ofunc)();
                     14: 
                     15:        if (sig <= 0 || sig >= NSIG) {
                     16:                errno = EINVAL;
                     17:                return (BADSIG);
                     18:        }
                     19:        ofunc = _sigfunc[sig];
                     20:        _sigfunc[sig] = func;
                     21:        if (func != SIG_DFL && func != SIG_IGN)
                     22:                func = _sigtramp;
                     23:        if (_signal(sig, func) == BADSIG ) {
                     24:                _sigfunc[sig] = ofunc;
                     25:                return (BADSIG);
                     26:        }
                     27:        return(ofunc);
                     28: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.