|
|
1.1 ! root 1: /* ! 2: * tclUnixStr.c -- ! 3: * ! 4: * This file contains procedures that generate strings ! 5: * corresponding to various UNIX-related codes, such ! 6: * as errno and signals. ! 7: * ! 8: * Copyright 1991 Regents of the University of California ! 9: * Permission to use, copy, modify, and distribute this ! 10: * software and its documentation for any purpose and without ! 11: * fee is hereby granted, provided that this copyright ! 12: * notice appears in all copies. The University of California ! 13: * makes no representations about the suitability of this ! 14: * software for any purpose. It is provided "as is" without ! 15: * express or implied warranty. ! 16: */ ! 17: ! 18: #ifndef lint ! 19: static char rcsid[] = "$Header: /user6/ouster/tcl/RCS/tclUnixStr.c,v 1.12 92/04/30 15:51:15 ouster Exp $ SPRITE (Berkeley)"; ! 20: #endif /* not lint */ ! 21: ! 22: #include "tclint.h" ! 23: #include "tclunix.h" ! 24: ! 25: /* ! 26: *---------------------------------------------------------------------- ! 27: * ! 28: * Tcl_ErrnoId -- ! 29: * ! 30: * Return a textual identifier for the current errno value. ! 31: * ! 32: * Results: ! 33: * This procedure returns a machine-readable textual identifier ! 34: * that corresponds to the current errno value (e.g. "EPERM"). ! 35: * The identifier is the same as the #define name in errno.h. ! 36: * ! 37: * Side effects: ! 38: * None. ! 39: * ! 40: *---------------------------------------------------------------------- ! 41: */ ! 42: ! 43: char * ! 44: Tcl_ErrnoId() ! 45: { ! 46: switch (errno) { ! 47: #ifdef E2BIG ! 48: case E2BIG: return "E2BIG"; ! 49: #endif ! 50: #ifdef EACCES ! 51: case EACCES: return "EACCES"; ! 52: #endif ! 53: #ifdef EADDRINUSE ! 54: case EADDRINUSE: return "EADDRINUSE"; ! 55: #endif ! 56: #ifdef EADDRNOTAVAIL ! 57: case EADDRNOTAVAIL: return "EADDRNOTAVAIL"; ! 58: #endif ! 59: #ifdef EADV ! 60: case EADV: return "EADV"; ! 61: #endif ! 62: #ifdef EAFNOSUPPORT ! 63: case EAFNOSUPPORT: return "EAFNOSUPPORT"; ! 64: #endif ! 65: #ifdef EAGAIN ! 66: case EAGAIN: return "EAGAIN"; ! 67: #endif ! 68: #ifdef EALIGN ! 69: case EALIGN: return "EALIGN"; ! 70: #endif ! 71: #ifdef EALREADY ! 72: case EALREADY: return "EALREADY"; ! 73: #endif ! 74: #ifdef EBADE ! 75: case EBADE: return "EBADE"; ! 76: #endif ! 77: #ifdef EBADF ! 78: case EBADF: return "EBADF"; ! 79: #endif ! 80: #ifdef EBADFD ! 81: case EBADFD: return "EBADFD"; ! 82: #endif ! 83: #ifdef EBADMSG ! 84: case EBADMSG: return "EBADMSG"; ! 85: #endif ! 86: #ifdef EBADR ! 87: case EBADR: return "EBADR"; ! 88: #endif ! 89: #ifdef EBADRPC ! 90: case EBADRPC: return "EBADRPC"; ! 91: #endif ! 92: #ifdef EBADRQC ! 93: case EBADRQC: return "EBADRQC"; ! 94: #endif ! 95: #ifdef EBADSLT ! 96: case EBADSLT: return "EBADSLT"; ! 97: #endif ! 98: #ifdef EBFONT ! 99: case EBFONT: return "EBFONT"; ! 100: #endif ! 101: #ifdef EBUSY ! 102: case EBUSY: return "EBUSY"; ! 103: #endif ! 104: #ifdef ECHILD ! 105: case ECHILD: return "ECHILD"; ! 106: #endif ! 107: #ifdef ECHRNG ! 108: case ECHRNG: return "ECHRNG"; ! 109: #endif ! 110: #ifdef ECOMM ! 111: case ECOMM: return "ECOMM"; ! 112: #endif ! 113: #ifdef ECONNABORTED ! 114: case ECONNABORTED: return "ECONNABORTED"; ! 115: #endif ! 116: #ifdef ECONNREFUSED ! 117: case ECONNREFUSED: return "ECONNREFUSED"; ! 118: #endif ! 119: #ifdef ECONNRESET ! 120: case ECONNRESET: return "ECONNRESET"; ! 121: #endif ! 122: #if defined(EDEADLK) && (!defined(EWOULDBLOCK) || (EDEADLK != EWOULDBLOCK)) ! 123: case EDEADLK: return "EDEADLK"; ! 124: #endif ! 125: #ifndef IS_LINUX ! 126: #ifdef EDEADLOCK ! 127: case EDEADLOCK: return "EDEADLOCK"; ! 128: #endif ! 129: #endif ! 130: #ifdef EDESTADDRREQ ! 131: case EDESTADDRREQ: return "EDESTADDRREQ"; ! 132: #endif ! 133: #ifdef EDIRTY ! 134: case EDIRTY: return "EDIRTY"; ! 135: #endif ! 136: #ifdef EDOM ! 137: case EDOM: return "EDOM"; ! 138: #endif ! 139: #ifdef EDOTDOT ! 140: case EDOTDOT: return "EDOTDOT"; ! 141: #endif ! 142: #ifdef EDQUOT ! 143: case EDQUOT: return "EDQUOT"; ! 144: #endif ! 145: #ifdef EDUPPKG ! 146: case EDUPPKG: return "EDUPPKG"; ! 147: #endif ! 148: #ifdef EEXIST ! 149: case EEXIST: return "EEXIST"; ! 150: #endif ! 151: #ifdef EFAULT ! 152: case EFAULT: return "EFAULT"; ! 153: #endif ! 154: #ifdef EFBIG ! 155: case EFBIG: return "EFBIG"; ! 156: #endif ! 157: #ifdef EHOSTDOWN ! 158: case EHOSTDOWN: return "EHOSTDOWN"; ! 159: #endif ! 160: #ifdef EHOSTUNREACH ! 161: case EHOSTUNREACH: return "EHOSTUNREACH"; ! 162: #endif ! 163: #ifdef EIDRM ! 164: case EIDRM: return "EIDRM"; ! 165: #endif ! 166: #ifdef EINIT ! 167: case EINIT: return "EINIT"; ! 168: #endif ! 169: #ifdef EINPROGRESS ! 170: case EINPROGRESS: return "EINPROGRESS"; ! 171: #endif ! 172: #ifdef EINTR ! 173: case EINTR: return "EINTR"; ! 174: #endif ! 175: #ifdef EINVAL ! 176: case EINVAL: return "EINVAL"; ! 177: #endif ! 178: #ifdef EIO ! 179: case EIO: return "EIO"; ! 180: #endif ! 181: #ifdef EISCONN ! 182: case EISCONN: return "EISCONN"; ! 183: #endif ! 184: #ifdef EISDIR ! 185: case EISDIR: return "EISDIR"; ! 186: #endif ! 187: #ifdef EISNAME ! 188: case EISNAM: return "EISNAM"; ! 189: #endif ! 190: #ifdef ELBIN ! 191: case ELBIN: return "ELBIN"; ! 192: #endif ! 193: #ifdef EL2HLT ! 194: case EL2HLT: return "EL2HLT"; ! 195: #endif ! 196: #ifdef EL2NSYNC ! 197: case EL2NSYNC: return "EL2NSYNC"; ! 198: #endif ! 199: #ifdef EL3HLT ! 200: case EL3HLT: return "EL3HLT"; ! 201: #endif ! 202: #ifdef EL3RST ! 203: case EL3RST: return "EL3RST"; ! 204: #endif ! 205: #ifdef ELIBACC ! 206: case ELIBACC: return "ELIBACC"; ! 207: #endif ! 208: #ifdef ELIBBAD ! 209: case ELIBBAD: return "ELIBBAD"; ! 210: #endif ! 211: #ifdef ELIBEXEC ! 212: case ELIBEXEC: return "ELIBEXEC"; ! 213: #endif ! 214: #ifdef ELIBMAX ! 215: case ELIBMAX: return "ELIBMAX"; ! 216: #endif ! 217: #ifdef ELIBSCN ! 218: case ELIBSCN: return "ELIBSCN"; ! 219: #endif ! 220: #ifdef ELNRNG ! 221: case ELNRNG: return "ELNRNG"; ! 222: #endif ! 223: #ifdef ELOOP ! 224: case ELOOP: return "ELOOP"; ! 225: #endif ! 226: #ifdef EMFILE ! 227: case EMFILE: return "EMFILE"; ! 228: #endif ! 229: #ifdef EMLINK ! 230: case EMLINK: return "EMLINK"; ! 231: #endif ! 232: #ifdef EMSGSIZE ! 233: case EMSGSIZE: return "EMSGSIZE"; ! 234: #endif ! 235: #ifdef EMULTIHOP ! 236: case EMULTIHOP: return "EMULTIHOP"; ! 237: #endif ! 238: #ifdef ENAMETOOLONG ! 239: case ENAMETOOLONG: return "ENAMETOOLONG"; ! 240: #endif ! 241: #ifdef ENAVAIL ! 242: case ENAVAIL: return "ENAVAIL"; ! 243: #endif ! 244: #ifdef ENET ! 245: case ENET: return "ENET"; ! 246: #endif ! 247: #ifdef ENETDOWN ! 248: case ENETDOWN: return "ENETDOWN"; ! 249: #endif ! 250: #ifdef ENETRESET ! 251: case ENETRESET: return "ENETRESET"; ! 252: #endif ! 253: #ifdef ENETUNREACH ! 254: case ENETUNREACH: return "ENETUNREACH"; ! 255: #endif ! 256: #ifdef ENFILE ! 257: case ENFILE: return "ENFILE"; ! 258: #endif ! 259: #ifdef ENOANO ! 260: case ENOANO: return "ENOANO"; ! 261: #endif ! 262: #if defined(ENOBUFS) && (!defined(ENOSR) || (ENOBUFS != ENOSR)) ! 263: case ENOBUFS: return "ENOBUFS"; ! 264: #endif ! 265: #ifdef ENOCSI ! 266: case ENOCSI: return "ENOCSI"; ! 267: #endif ! 268: #ifdef ENODATA ! 269: case ENODATA: return "ENODATA"; ! 270: #endif ! 271: #ifdef ENODEV ! 272: case ENODEV: return "ENODEV"; ! 273: #endif ! 274: #ifdef ENOENT ! 275: case ENOENT: return "ENOENT"; ! 276: #endif ! 277: #ifdef ENOEXEC ! 278: case ENOEXEC: return "ENOEXEC"; ! 279: #endif ! 280: #ifdef ENOLCK ! 281: case ENOLCK: return "ENOLCK"; ! 282: #endif ! 283: #ifdef ENOLINK ! 284: case ENOLINK: return "ENOLINK"; ! 285: #endif ! 286: #ifdef ENOMEM ! 287: case ENOMEM: return "ENOMEM"; ! 288: #endif ! 289: #ifdef ENOMSG ! 290: case ENOMSG: return "ENOMSG"; ! 291: #endif ! 292: #ifdef ENONET ! 293: case ENONET: return "ENONET"; ! 294: #endif ! 295: #ifdef ENOPKG ! 296: case ENOPKG: return "ENOPKG"; ! 297: #endif ! 298: #ifdef ENOPROTOOPT ! 299: case ENOPROTOOPT: return "ENOPROTOOPT"; ! 300: #endif ! 301: #ifdef ENOSPC ! 302: case ENOSPC: return "ENOSPC"; ! 303: #endif ! 304: #ifdef ENOSR ! 305: case ENOSR: return "ENOSR"; ! 306: #endif ! 307: #ifdef ENOSTR ! 308: case ENOSTR: return "ENOSTR"; ! 309: #endif ! 310: #ifdef ENOSYM ! 311: case ENOSYM: return "ENOSYM"; ! 312: #endif ! 313: #ifdef ENOSYS ! 314: case ENOSYS: return "ENOSYS"; ! 315: #endif ! 316: #ifdef ENOTBLK ! 317: case ENOTBLK: return "ENOTBLK"; ! 318: #endif ! 319: #ifdef ENOTCONN ! 320: case ENOTCONN: return "ENOTCONN"; ! 321: #endif ! 322: #ifdef ENOTDIR ! 323: case ENOTDIR: return "ENOTDIR"; ! 324: #endif ! 325: #if defined(ENOTEMPTY) && (!defined(EEXIST) || (ENOTEMPTY != EEXIST)) ! 326: case ENOTEMPTY: return "ENOTEMPTY"; ! 327: #endif ! 328: #ifdef ENOTNAM ! 329: case ENOTNAM: return "ENOTNAM"; ! 330: #endif ! 331: #ifdef ENOTSOCK ! 332: case ENOTSOCK: return "ENOTSOCK"; ! 333: #endif ! 334: #ifdef ENOTTY ! 335: case ENOTTY: return "ENOTTY"; ! 336: #endif ! 337: #ifdef ENOTUNIQ ! 338: case ENOTUNIQ: return "ENOTUNIQ"; ! 339: #endif ! 340: #ifndef __GNUC__ ! 341: #ifdef ENXIO ! 342: case ENXIO: return "ENXIO"; ! 343: #endif ! 344: #endif ! 345: #ifdef EOPNOTSUPP ! 346: case EOPNOTSUPP: return "EOPNOTSUPP"; ! 347: #endif ! 348: #ifndef __GNUC__ ! 349: #ifdef EPERM ! 350: case EPERM: return "EPERM"; ! 351: #endif ! 352: #endif ! 353: #ifdef EPFNOSUPPORT ! 354: case EPFNOSUPPORT: return "EPFNOSUPPORT"; ! 355: #endif ! 356: #ifdef EPIPE ! 357: case EPIPE: return "EPIPE"; ! 358: #endif ! 359: #ifdef EPROCLIM ! 360: case EPROCLIM: return "EPROCLIM"; ! 361: #endif ! 362: #ifdef EPROCUNAVAIL ! 363: case EPROCUNAVAIL: return "EPROCUNAVAIL"; ! 364: #endif ! 365: #ifdef EPROGMISMATCH ! 366: case EPROGMISMATCH: return "EPROGMISMATCH"; ! 367: #endif ! 368: #ifdef EPROGUNAVAIL ! 369: case EPROGUNAVAIL: return "EPROGUNAVAIL"; ! 370: #endif ! 371: #ifdef EPROTO ! 372: case EPROTO: return "EPROTO"; ! 373: #endif ! 374: #ifdef EPROTONOSUPPORT ! 375: case EPROTONOSUPPORT: return "EPROTONOSUPPORT"; ! 376: #endif ! 377: #ifdef EPROTOTYPE ! 378: case EPROTOTYPE: return "EPROTOTYPE"; ! 379: #endif ! 380: #ifdef ERANGE ! 381: case ERANGE: return "ERANGE"; ! 382: #endif ! 383: #if defined(EREFUSED) && (!defined(ECONNREFUSED) || (EREFUSED != ECONNREFUSED)) ! 384: case EREFUSED: return "EREFUSED"; ! 385: #endif ! 386: #ifdef EREMCHG ! 387: case EREMCHG: return "EREMCHG"; ! 388: #endif ! 389: #ifdef EREMDEV ! 390: case EREMDEV: return "EREMDEV"; ! 391: #endif ! 392: #ifdef EREMOTE ! 393: case EREMOTE: return "EREMOTE"; ! 394: #endif ! 395: #ifdef EREMOTEIO ! 396: case EREMOTEIO: return "EREMOTEIO"; ! 397: #endif ! 398: #ifdef EREMOTERELEASE ! 399: case EREMOTERELEASE: return "EREMOTERELEASE"; ! 400: #endif ! 401: #ifdef EROFS ! 402: case EROFS: return "EROFS"; ! 403: #endif ! 404: #ifdef ERPCMISMATCH ! 405: case ERPCMISMATCH: return "ERPCMISMATCH"; ! 406: #endif ! 407: #ifdef ERREMOTE ! 408: case ERREMOTE: return "ERREMOTE"; ! 409: #endif ! 410: #ifdef ESHUTDOWN ! 411: case ESHUTDOWN: return "ESHUTDOWN"; ! 412: #endif ! 413: #ifdef ESOCKTNOSUPPORT ! 414: case ESOCKTNOSUPPORT: return "ESOCKTNOSUPPORT"; ! 415: #endif ! 416: #ifdef ESPIPE ! 417: case ESPIPE: return "ESPIPE"; ! 418: #endif ! 419: #ifdef ESRCH ! 420: case ESRCH: return "ESRCH"; ! 421: #endif ! 422: #ifdef ESRMNT ! 423: case ESRMNT: return "ESRMNT"; ! 424: #endif ! 425: #ifdef ESTALE ! 426: case ESTALE: return "ESTALE"; ! 427: #endif ! 428: #ifdef ESUCCESS ! 429: case ESUCCESS: return "ESUCCESS"; ! 430: #endif ! 431: #ifdef ETIME ! 432: case ETIME: return "ETIME"; ! 433: #endif ! 434: #ifdef ETIMEDOUT ! 435: case ETIMEDOUT: return "ETIMEDOUT"; ! 436: #endif ! 437: #ifdef ETOOMANYREFS ! 438: case ETOOMANYREFS: return "ETOOMANYREFS"; ! 439: #endif ! 440: #ifdef ETXTBSY ! 441: case ETXTBSY: return "ETXTBSY"; ! 442: #endif ! 443: #ifdef EUCLEAN ! 444: case EUCLEAN: return "EUCLEAN"; ! 445: #endif ! 446: #ifdef EUNATCH ! 447: case EUNATCH: return "EUNATCH"; ! 448: #endif ! 449: #ifdef EUSERS ! 450: case EUSERS: return "EUSERS"; ! 451: #endif ! 452: #ifdef EVERSION ! 453: case EVERSION: return "EVERSION"; ! 454: #endif ! 455: #if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN)) ! 456: case EWOULDBLOCK: return "EWOULDBLOCK"; ! 457: #endif ! 458: #ifdef EXDEV ! 459: case EXDEV: return "EXDEV"; ! 460: #endif ! 461: #ifdef EXFULL ! 462: case EXFULL: return "EXFULL"; ! 463: #endif ! 464: } ! 465: return "unknown error"; ! 466: } ! 467: ! 468: /* ! 469: *---------------------------------------------------------------------- ! 470: * ! 471: * Tcl_SignalId -- ! 472: * ! 473: * Return a textual identifier for a signal number. ! 474: * ! 475: * Results: ! 476: * This procedure returns a machine-readable textual identifier ! 477: * that corresponds to sig. The identifier is the same as the ! 478: * #define name in signal.h. ! 479: * ! 480: * Side effects: ! 481: * None. ! 482: * ! 483: *---------------------------------------------------------------------- ! 484: */ ! 485: ! 486: char * ! 487: Tcl_SignalId(sig) ! 488: int sig; /* Number of signal. */ ! 489: { ! 490: switch (sig) { ! 491: #ifdef SIGABRT ! 492: case SIGABRT: return "SIGABRT"; ! 493: #endif ! 494: #ifdef SIGALRM ! 495: case SIGALRM: return "SIGALRM"; ! 496: #endif ! 497: #ifdef SIGBUS ! 498: case SIGBUS: return "SIGBUS"; ! 499: #endif ! 500: #ifdef SIGCHLD ! 501: case SIGCHLD: return "SIGCHLD"; ! 502: #endif ! 503: #if defined(SIGCLD) && (!defined(SIGCHLD) || (SIGCLD != SIGCHLD)) ! 504: case SIGCLD: return "SIGCLD"; ! 505: #endif ! 506: #ifdef SIGCONT ! 507: case SIGCONT: return "SIGCONT"; ! 508: #endif ! 509: #if defined(SIGEMT) && (!defined(SIGXCPU) || (SIGEMT != SIGXCPU)) ! 510: case SIGEMT: return "SIGEMT"; ! 511: #endif ! 512: #ifdef SIGFPE ! 513: case SIGFPE: return "SIGFPE"; ! 514: #endif ! 515: #ifdef SIGHUP ! 516: case SIGHUP: return "SIGHUP"; ! 517: #endif ! 518: #ifdef SIGILL ! 519: case SIGILL: return "SIGILL"; ! 520: #endif ! 521: #ifdef SIGINT ! 522: case SIGINT: return "SIGINT"; ! 523: #endif ! 524: #ifdef SIGIO ! 525: case SIGIO: return "SIGIO"; ! 526: #endif ! 527: #if defined(SIGIOT) && (!defined(SIGABRT) || (SIGIOT != SIGABRT)) ! 528: case SIGIOT: return "SIGIOT"; ! 529: #endif ! 530: #ifdef SIGKILL ! 531: case SIGKILL: return "SIGKILL"; ! 532: #endif ! 533: #if defined(SIGLOST) && (!defined(SIGIOT) || (SIGLOST != SIGIOT)) ! 534: case SIGLOST: return "SIGLOST"; ! 535: #endif ! 536: #ifdef SIGPIPE ! 537: case SIGPIPE: return "SIGPIPE"; ! 538: #endif ! 539: #if defined(SIGPOLL) && (!defined(SIGIO) || (SIGPOLL != SIGIO)) ! 540: case SIGPOLL: return "SIGPOLL"; ! 541: #endif ! 542: #ifdef SIGPROF ! 543: case SIGPROF: return "SIGPROF"; ! 544: #endif ! 545: #if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ)) ! 546: case SIGPWR: return "SIGPWR"; ! 547: #endif ! 548: #ifdef SIGQUIT ! 549: case SIGQUIT: return "SIGQUIT"; ! 550: #endif ! 551: #ifdef SIGSEGV ! 552: case SIGSEGV: return "SIGSEGV"; ! 553: #endif ! 554: #ifdef SIGSTOP ! 555: case SIGSTOP: return "SIGSTOP"; ! 556: #endif ! 557: #ifdef SIGSYS ! 558: case SIGSYS: return "SIGSYS"; ! 559: #endif ! 560: #ifdef SIGTERM ! 561: case SIGTERM: return "SIGTERM"; ! 562: #endif ! 563: #ifdef SIGTRAP ! 564: case SIGTRAP: return "SIGTRAP"; ! 565: #endif ! 566: #ifdef SIGTSTP ! 567: case SIGTSTP: return "SIGTSTP"; ! 568: #endif ! 569: #ifdef SIGTTIN ! 570: case SIGTTIN: return "SIGTTIN"; ! 571: #endif ! 572: #ifdef SIGTTOU ! 573: case SIGTTOU: return "SIGTTOU"; ! 574: #endif ! 575: #ifdef SIGURG ! 576: case SIGURG: return "SIGURG"; ! 577: #endif ! 578: #ifdef SIGUSR1 ! 579: case SIGUSR1: return "SIGUSR1"; ! 580: #endif ! 581: #ifdef SIGUSR2 ! 582: case SIGUSR2: return "SIGUSR2"; ! 583: #endif ! 584: #ifdef SIGVTALRM ! 585: case SIGVTALRM: return "SIGVTALRM"; ! 586: #endif ! 587: #ifdef SIGWINCH ! 588: case SIGWINCH: return "SIGWINCH"; ! 589: #endif ! 590: #ifdef SIGXCPU ! 591: case SIGXCPU: return "SIGXCPU"; ! 592: #endif ! 593: #ifdef SIGXFSZ ! 594: case SIGXFSZ: return "SIGXFSZ"; ! 595: #endif ! 596: } ! 597: return "unknown signal"; ! 598: } ! 599: ! 600: /* ! 601: *---------------------------------------------------------------------- ! 602: * ! 603: * Tcl_SignalMsg -- ! 604: * ! 605: * Return a human-readable message describing a signal. ! 606: * ! 607: * Results: ! 608: * This procedure returns a string describing sig that should ! 609: * make sense to a human. It may not be easy for a machine ! 610: * to parse. ! 611: * ! 612: * Side effects: ! 613: * None. ! 614: * ! 615: *---------------------------------------------------------------------- ! 616: */ ! 617: ! 618: char * ! 619: Tcl_SignalMsg(sig) ! 620: int sig; /* Number of signal. */ ! 621: { ! 622: switch (sig) { ! 623: #ifdef SIGABRT ! 624: case SIGABRT: return "SIGABRT"; ! 625: #endif ! 626: #ifdef SIGALRM ! 627: case SIGALRM: return "alarm clock"; ! 628: #endif ! 629: #ifdef SIGBUS ! 630: case SIGBUS: return "bus error"; ! 631: #endif ! 632: #ifdef SIGCHLD ! 633: case SIGCHLD: return "child status changed"; ! 634: #endif ! 635: #if defined(SIGCLD) && (!defined(SIGCHLD) || (SIGCLD != SIGCHLD)) ! 636: case SIGCLD: return "child status changed"; ! 637: #endif ! 638: #ifdef SIGCONT ! 639: case SIGCONT: return "continue after stop"; ! 640: #endif ! 641: #if defined(SIGEMT) && (!defined(SIGXCPU) || (SIGEMT != SIGXCPU)) ! 642: case SIGEMT: return "EMT instruction"; ! 643: #endif ! 644: #ifdef SIGFPE ! 645: case SIGFPE: return "floating-point exception"; ! 646: #endif ! 647: #ifdef SIGHUP ! 648: case SIGHUP: return "hangup"; ! 649: #endif ! 650: #ifdef SIGILL ! 651: case SIGILL: return "illegal instruction"; ! 652: #endif ! 653: #ifdef SIGINT ! 654: case SIGINT: return "interrupt"; ! 655: #endif ! 656: #ifdef SIGIO ! 657: case SIGIO: return "input/output possible on file"; ! 658: #endif ! 659: #if defined(SIGIOT) && (!defined(SIGABRT) || (SIGABRT != SIGIOT)) ! 660: case SIGIOT: return "IOT instruction"; ! 661: #endif ! 662: #ifdef SIGKILL ! 663: case SIGKILL: return "kill signal"; ! 664: #endif ! 665: #if defined(SIGLOST) && (!defined(SIGIOT) || (SIGLOST != SIGIOT)) ! 666: case SIGLOST: return "resource lost"; ! 667: #endif ! 668: #ifdef SIGPIPE ! 669: case SIGPIPE: return "write on pipe with no readers"; ! 670: #endif ! 671: #if defined(SIGPOLL) && (!defined(SIGIO) || (SIGPOLL != SIGIO)) ! 672: case SIGPOLL: return "input/output possible on file"; ! 673: #endif ! 674: #ifdef SIGPROF ! 675: case SIGPROF: return "profiling alarm"; ! 676: #endif ! 677: #if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ)) ! 678: case SIGPWR: return "power-fail restart"; ! 679: #endif ! 680: #ifdef SIGQUIT ! 681: case SIGQUIT: return "quit signal"; ! 682: #endif ! 683: #ifdef SIGSEGV ! 684: case SIGSEGV: return "segmentation violation"; ! 685: #endif ! 686: #ifdef SIGSTOP ! 687: case SIGSTOP: return "stop"; ! 688: #endif ! 689: #ifdef SIGSYS ! 690: case SIGSYS: return "bad argument to system call"; ! 691: #endif ! 692: #ifdef SIGTERM ! 693: case SIGTERM: return "software termination signal"; ! 694: #endif ! 695: #ifdef SIGTRAP ! 696: case SIGTRAP: return "trace trap"; ! 697: #endif ! 698: #ifdef SIGTSTP ! 699: case SIGTSTP: return "stop signal from tty"; ! 700: #endif ! 701: #ifdef SIGTTIN ! 702: case SIGTTIN: return "background tty read"; ! 703: #endif ! 704: #ifdef SIGTTOU ! 705: case SIGTTOU: return "background tty write"; ! 706: #endif ! 707: #ifdef SIGURG ! 708: case SIGURG: return "urgent I/O condition"; ! 709: #endif ! 710: #ifdef SIGUSR1 ! 711: case SIGUSR1: return "user-defined signal 1"; ! 712: #endif ! 713: #ifdef SIGUSR2 ! 714: case SIGUSR2: return "user-defined signal 2"; ! 715: #endif ! 716: #ifdef SIGVTALRM ! 717: case SIGVTALRM: return "virtual time alarm"; ! 718: #endif ! 719: #ifdef SIGWINCH ! 720: case SIGWINCH: return "window changed"; ! 721: #endif ! 722: #ifdef SIGXCPU ! 723: case SIGXCPU: return "exceeded CPU time limit"; ! 724: #endif ! 725: #ifdef SIGXFSZ ! 726: case SIGXFSZ: return "exceeded file size limit"; ! 727: #endif ! 728: } ! 729: return "unknown signal"; ! 730: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.