Annotation of researchv9/libc/sys/signal.c, revision 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.