Annotation of researchv10no/cmd/nupas/ipc/mips_err.c, revision 1.1.1.1

1.1       root        1: /*
                      2:        Error codes on SGI MIPS system:
                      3: 
                      4: EX_USAGE       64      command line usage error
                      5: EX_DATAERR     65      data format error
                      6: EX_NOINPUT     66      cannot open input
                      7: EX_NOUSER      67      addressee unknown
                      8: EX_NOHOST      68      host name unknown:
                      9:                                unknown service
                     10:                                        gethostbyname if host not found.)
                     11:                                connection timed out
                     12: EX_UNAVAILABLE 69      service unavailable
                     13: EX_SOFTWARE    70      internal software error
                     14: EX_OSERR       71      system error (e.g., can't fork)
                     15: EX_OSFILE      72      critical OS file missing
                     16: EX_CANTCREAT   73      can't create (user) output file
                     17: EX_IOERR       74      input/output error
                     18: EX_TEMPFAIL    75      temp failure; user is invited to retry
                     19:                                Connection refused (code returned by
                     20: EX_PROTOCOL    76      remote error in protocol
                     21: EX_NOPERM      77      permission denied
                     22: */
                     23: 
                     24: #include <errno.h>
                     25: #include <stdio.h>
                     26: #include <sysexits.h>
                     27: #include <string.h>
                     28: 
                     29: extern char *sys_errlist[ ];
                     30: extern int sys_nerr;
                     31: extern int errno;
                     32: 
                     33: extern int ipcdebug;
                     34: 
                     35: /*
                     36:  * A known place to keep a copy of the system-supplied
                     37:  * error message.
                     38:  */
                     39: int syserrno;
                     40: char syserrstr[128];
                     41: 
                     42: 
                     43: /*
                     44:  * Copy the actual OS-supplied errno and string in a known
                     45:  * place.
                     46:  */
                     47: ipcgetsyserr()
                     48: {
                     49:        syserrno = errno;
                     50:        if (ipcdebug)
                     51:                fprintf(stderr, "ipcgetsyserr: errno=%d\n", syserrno);
                     52:        if (errno < sys_nerr)
                     53:                strcpy(syserrstr, sys_errlist[errno]);
                     54:        else
                     55:                sprintf(syserrstr, "Unknown error number %d", errno);
                     56: }
                     57: 
                     58: /*
                     59:  * map the system error in syserrno into one of the
                     60:  * errors in sysexits.h
                     61:  */
                     62: int
                     63: ipcmaperror()
                     64: {
                     65:        switch (syserrno) {
                     66:        case EAGAIN:
                     67:        case ENFILE:
                     68:        case EMFILE:
                     69:        case ENOSPC:
                     70:        case ENETDOWN:
                     71:        case ENETUNREACH:
                     72:        case ENETRESET:
                     73:        case ECONNABORTED:
                     74:        case ECONNRESET:
                     75:        case ENOBUFS:
                     76:        case ETIMEDOUT:
                     77:        case ECONNREFUSED:
                     78:                                return EX_TEMPFAIL;
                     79:        case EHOSTDOWN:
                     80:        case EHOSTUNREACH:
                     81:                                return EX_NOHOST;
                     82: 
                     83:        default:                return EX_OSERR;
                     84:        }
                     85: }

unix.superglobalmegacorp.com

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