os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/generic/tclPosixStr.c
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/generic/tclPosixStr.c Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,1181 @@
1.4 +/*
1.5 + * tclPosixStr.c --
1.6 + *
1.7 + * This file contains procedures that generate strings
1.8 + * corresponding to various POSIX-related codes, such
1.9 + * as errno and signals.
1.10 + *
1.11 + * Copyright (c) 1991-1994 The Regents of the University of California.
1.12 + * Copyright (c) 1994-1996 Sun Microsystems, Inc.
1.13 + * Portions Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiaries. All rights reserved.
1.14 + *
1.15 + * See the file "license.terms" for information on usage and redistribution
1.16 + * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
1.17 + *
1.18 + * RCS: @(#) $Id: tclPosixStr.c,v 1.9 2002/05/27 10:14:21 dkf Exp $
1.19 + */
1.20 +
1.21 +#include "tclInt.h"
1.22 +#include "tclPort.h"
1.23 +
1.24 +/*
1.25 + *----------------------------------------------------------------------
1.26 + *
1.27 + * Tcl_ErrnoId --
1.28 + *
1.29 + * Return a textual identifier for the current errno value.
1.30 + *
1.31 + * Results:
1.32 + * This procedure returns a machine-readable textual identifier
1.33 + * that corresponds to the current errno value (e.g. "EPERM").
1.34 + * The identifier is the same as the #define name in errno.h.
1.35 + *
1.36 + * Side effects:
1.37 + * None.
1.38 + *
1.39 + *----------------------------------------------------------------------
1.40 + */
1.41 +
1.42 +EXPORT_C CONST char *
1.43 +Tcl_ErrnoId()
1.44 +{
1.45 + switch (errno) {
1.46 +#ifdef E2BIG
1.47 + case E2BIG: return "E2BIG";
1.48 +#endif
1.49 +#ifdef EACCES
1.50 + case EACCES: return "EACCES";
1.51 +#endif
1.52 +#ifdef EADDRINUSE
1.53 + case EADDRINUSE: return "EADDRINUSE";
1.54 +#endif
1.55 +#ifdef EADDRNOTAVAIL
1.56 + case EADDRNOTAVAIL: return "EADDRNOTAVAIL";
1.57 +#endif
1.58 +#ifdef EADV
1.59 + case EADV: return "EADV";
1.60 +#endif
1.61 +#ifdef EAFNOSUPPORT
1.62 + case EAFNOSUPPORT: return "EAFNOSUPPORT";
1.63 +#endif
1.64 +#ifdef EAGAIN
1.65 + case EAGAIN: return "EAGAIN";
1.66 +#endif
1.67 +#ifdef EALIGN
1.68 + case EALIGN: return "EALIGN";
1.69 +#endif
1.70 +#if defined(EALREADY) && (!defined(EBUSY) || (EALREADY != EBUSY ))
1.71 + case EALREADY: return "EALREADY";
1.72 +#endif
1.73 +#ifdef EBADE
1.74 + case EBADE: return "EBADE";
1.75 +#endif
1.76 +#ifdef EBADF
1.77 + case EBADF: return "EBADF";
1.78 +#endif
1.79 +#ifdef EBADFD
1.80 + case EBADFD: return "EBADFD";
1.81 +#endif
1.82 +#ifdef EBADMSG
1.83 + case EBADMSG: return "EBADMSG";
1.84 +#endif
1.85 +#ifdef EBADR
1.86 + case EBADR: return "EBADR";
1.87 +#endif
1.88 +#ifdef EBADRPC
1.89 + case EBADRPC: return "EBADRPC";
1.90 +#endif
1.91 +#ifdef EBADRQC
1.92 + case EBADRQC: return "EBADRQC";
1.93 +#endif
1.94 +#ifdef EBADSLT
1.95 + case EBADSLT: return "EBADSLT";
1.96 +#endif
1.97 +#ifdef EBFONT
1.98 + case EBFONT: return "EBFONT";
1.99 +#endif
1.100 +#ifdef EBUSY
1.101 + case EBUSY: return "EBUSY";
1.102 +#endif
1.103 +#ifdef ECHILD
1.104 + case ECHILD: return "ECHILD";
1.105 +#endif
1.106 +#ifdef ECHRNG
1.107 + case ECHRNG: return "ECHRNG";
1.108 +#endif
1.109 +#ifdef ECOMM
1.110 + case ECOMM: return "ECOMM";
1.111 +#endif
1.112 +#ifdef ECONNABORTED
1.113 + case ECONNABORTED: return "ECONNABORTED";
1.114 +#endif
1.115 +#ifdef ECONNREFUSED
1.116 + case ECONNREFUSED: return "ECONNREFUSED";
1.117 +#endif
1.118 +#ifdef ECONNRESET
1.119 + case ECONNRESET: return "ECONNRESET";
1.120 +#endif
1.121 +#if defined(EDEADLK) && (!defined(EWOULDBLOCK) || (EDEADLK != EWOULDBLOCK))
1.122 + case EDEADLK: return "EDEADLK";
1.123 +#endif
1.124 +#if defined(EDEADLOCK) && (!defined(EDEADLK) || (EDEADLOCK != EDEADLK))
1.125 + case EDEADLOCK: return "EDEADLOCK";
1.126 +#endif
1.127 +#ifdef EDESTADDRREQ
1.128 + case EDESTADDRREQ: return "EDESTADDRREQ";
1.129 +#endif
1.130 +#ifdef EDIRTY
1.131 + case EDIRTY: return "EDIRTY";
1.132 +#endif
1.133 +#ifdef EDOM
1.134 + case EDOM: return "EDOM";
1.135 +#endif
1.136 +#ifdef EDOTDOT
1.137 + case EDOTDOT: return "EDOTDOT";
1.138 +#endif
1.139 +#ifdef EDQUOT
1.140 + case EDQUOT: return "EDQUOT";
1.141 +#endif
1.142 +#ifdef EDUPPKG
1.143 + case EDUPPKG: return "EDUPPKG";
1.144 +#endif
1.145 +#ifdef EEXIST
1.146 + case EEXIST: return "EEXIST";
1.147 +#endif
1.148 +#ifdef EFAULT
1.149 + case EFAULT: return "EFAULT";
1.150 +#endif
1.151 +#ifdef EFBIG
1.152 + case EFBIG: return "EFBIG";
1.153 +#endif
1.154 +#ifdef EHOSTDOWN
1.155 + case EHOSTDOWN: return "EHOSTDOWN";
1.156 +#endif
1.157 +#ifdef EHOSTUNREACH
1.158 + case EHOSTUNREACH: return "EHOSTUNREACH";
1.159 +#endif
1.160 +#if defined(EIDRM) && (!defined(EINPROGRESS) || (EIDRM != EINPROGRESS))
1.161 + case EIDRM: return "EIDRM";
1.162 +#endif
1.163 +#ifdef EINIT
1.164 + case EINIT: return "EINIT";
1.165 +#endif
1.166 +#ifdef EINPROGRESS
1.167 + case EINPROGRESS: return "EINPROGRESS";
1.168 +#endif
1.169 +#ifdef EINTR
1.170 + case EINTR: return "EINTR";
1.171 +#endif
1.172 +#ifdef EINVAL
1.173 + case EINVAL: return "EINVAL";
1.174 +#endif
1.175 +#ifdef EIO
1.176 + case EIO: return "EIO";
1.177 +#endif
1.178 +#ifdef EISCONN
1.179 + case EISCONN: return "EISCONN";
1.180 +#endif
1.181 +#ifdef EISDIR
1.182 + case EISDIR: return "EISDIR";
1.183 +#endif
1.184 +#ifdef EISNAME
1.185 + case EISNAM: return "EISNAM";
1.186 +#endif
1.187 +#ifdef ELBIN
1.188 + case ELBIN: return "ELBIN";
1.189 +#endif
1.190 +#ifdef EL2HLT
1.191 + case EL2HLT: return "EL2HLT";
1.192 +#endif
1.193 +#ifdef EL2NSYNC
1.194 + case EL2NSYNC: return "EL2NSYNC";
1.195 +#endif
1.196 +#ifdef EL3HLT
1.197 + case EL3HLT: return "EL3HLT";
1.198 +#endif
1.199 +#ifdef EL3RST
1.200 + case EL3RST: return "EL3RST";
1.201 +#endif
1.202 +#ifdef ELIBACC
1.203 + case ELIBACC: return "ELIBACC";
1.204 +#endif
1.205 +#ifdef ELIBBAD
1.206 + case ELIBBAD: return "ELIBBAD";
1.207 +#endif
1.208 +#ifdef ELIBEXEC
1.209 + case ELIBEXEC: return "ELIBEXEC";
1.210 +#endif
1.211 +#ifdef ELIBMAX
1.212 + case ELIBMAX: return "ELIBMAX";
1.213 +#endif
1.214 +#ifdef ELIBSCN
1.215 + case ELIBSCN: return "ELIBSCN";
1.216 +#endif
1.217 +#ifdef ELNRNG
1.218 + case ELNRNG: return "ELNRNG";
1.219 +#endif
1.220 +#if defined(ELOOP) && (!defined(ENOENT) || (ELOOP != ENOENT))
1.221 + case ELOOP: return "ELOOP";
1.222 +#endif
1.223 +#ifdef EMFILE
1.224 + case EMFILE: return "EMFILE";
1.225 +#endif
1.226 +#ifdef EMLINK
1.227 + case EMLINK: return "EMLINK";
1.228 +#endif
1.229 +#ifdef EMSGSIZE
1.230 + case EMSGSIZE: return "EMSGSIZE";
1.231 +#endif
1.232 +#ifdef EMULTIHOP
1.233 + case EMULTIHOP: return "EMULTIHOP";
1.234 +#endif
1.235 +#ifdef ENAMETOOLONG
1.236 + case ENAMETOOLONG: return "ENAMETOOLONG";
1.237 +#endif
1.238 +#ifdef ENAVAIL
1.239 + case ENAVAIL: return "ENAVAIL";
1.240 +#endif
1.241 +#ifdef ENET
1.242 + case ENET: return "ENET";
1.243 +#endif
1.244 +#ifdef ENETDOWN
1.245 + case ENETDOWN: return "ENETDOWN";
1.246 +#endif
1.247 +#ifdef ENETRESET
1.248 + case ENETRESET: return "ENETRESET";
1.249 +#endif
1.250 +#ifdef ENETUNREACH
1.251 + case ENETUNREACH: return "ENETUNREACH";
1.252 +#endif
1.253 +#ifdef ENFILE
1.254 + case ENFILE: return "ENFILE";
1.255 +#endif
1.256 +#ifdef ENOANO
1.257 + case ENOANO: return "ENOANO";
1.258 +#endif
1.259 +#if defined(ENOBUFS) && (!defined(ENOSR) || (ENOBUFS != ENOSR))
1.260 + case ENOBUFS: return "ENOBUFS";
1.261 +#endif
1.262 +#ifdef ENOCSI
1.263 + case ENOCSI: return "ENOCSI";
1.264 +#endif
1.265 +#if defined(ENODATA) && (!defined(ECONNREFUSED) || (ENODATA != ECONNREFUSED))
1.266 + case ENODATA: return "ENODATA";
1.267 +#endif
1.268 +#ifdef ENODEV
1.269 + case ENODEV: return "ENODEV";
1.270 +#endif
1.271 +#ifdef ENOENT
1.272 + case ENOENT: return "ENOENT";
1.273 +#endif
1.274 +#ifdef ENOEXEC
1.275 + case ENOEXEC: return "ENOEXEC";
1.276 +#endif
1.277 +#ifdef ENOLCK
1.278 + case ENOLCK: return "ENOLCK";
1.279 +#endif
1.280 +#ifdef ENOLINK
1.281 + case ENOLINK: return "ENOLINK";
1.282 +#endif
1.283 +#ifdef ENOMEM
1.284 + case ENOMEM: return "ENOMEM";
1.285 +#endif
1.286 +#ifdef ENOMSG
1.287 + case ENOMSG: return "ENOMSG";
1.288 +#endif
1.289 +#ifdef ENONET
1.290 + case ENONET: return "ENONET";
1.291 +#endif
1.292 +#ifdef ENOPKG
1.293 + case ENOPKG: return "ENOPKG";
1.294 +#endif
1.295 +#ifdef ENOPROTOOPT
1.296 + case ENOPROTOOPT: return "ENOPROTOOPT";
1.297 +#endif
1.298 +#ifdef ENOSPC
1.299 + case ENOSPC: return "ENOSPC";
1.300 +#endif
1.301 +#if defined(ENOSR) && (!defined(ENAMETOOLONG) || (ENAMETOOLONG != ENOSR))
1.302 + case ENOSR: return "ENOSR";
1.303 +#endif
1.304 +#if defined(ENOSTR) && (!defined(ENOTTY) || (ENOTTY != ENOSTR))
1.305 + case ENOSTR: return "ENOSTR";
1.306 +#endif
1.307 +#ifdef ENOSYM
1.308 + case ENOSYM: return "ENOSYM";
1.309 +#endif
1.310 +#ifdef ENOSYS
1.311 + case ENOSYS: return "ENOSYS";
1.312 +#endif
1.313 +#ifdef ENOTBLK
1.314 + case ENOTBLK: return "ENOTBLK";
1.315 +#endif
1.316 +#ifdef ENOTCONN
1.317 + case ENOTCONN: return "ENOTCONN";
1.318 +#endif
1.319 +#ifdef ENOTDIR
1.320 + case ENOTDIR: return "ENOTDIR";
1.321 +#endif
1.322 +#if defined(ENOTEMPTY) && (!defined(EEXIST) || (ENOTEMPTY != EEXIST))
1.323 + case ENOTEMPTY: return "ENOTEMPTY";
1.324 +#endif
1.325 +#ifdef ENOTNAM
1.326 + case ENOTNAM: return "ENOTNAM";
1.327 +#endif
1.328 +#ifdef ENOTSOCK
1.329 + case ENOTSOCK: return "ENOTSOCK";
1.330 +#endif
1.331 +#ifdef ENOTSUP
1.332 + case ENOTSUP: return "ENOTSUP";
1.333 +#endif
1.334 +#ifdef ENOTTY
1.335 + case ENOTTY: return "ENOTTY";
1.336 +#endif
1.337 +#ifdef ENOTUNIQ
1.338 + case ENOTUNIQ: return "ENOTUNIQ";
1.339 +#endif
1.340 +#ifdef ENXIO
1.341 + case ENXIO: return "ENXIO";
1.342 +#endif
1.343 +#if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP))
1.344 + case EOPNOTSUPP: return "EOPNOTSUPP";
1.345 +#endif
1.346 +#if defined(EOVERFLOW) && ( !defined(EFBIG) || (EOVERFLOW != EFBIG) ) && ( !defined(EINVAL) || (EOVERFLOW != EINVAL) )
1.347 + case EOVERFLOW: return "EOVERFLOW";
1.348 +#endif
1.349 +#ifdef EPERM
1.350 + case EPERM: return "EPERM";
1.351 +#endif
1.352 +#if defined(EPFNOSUPPORT) && (!defined(ENOLCK) || (ENOLCK != EPFNOSUPPORT))
1.353 + case EPFNOSUPPORT: return "EPFNOSUPPORT";
1.354 +#endif
1.355 +#ifdef EPIPE
1.356 + case EPIPE: return "EPIPE";
1.357 +#endif
1.358 +#ifdef EPROCLIM
1.359 + case EPROCLIM: return "EPROCLIM";
1.360 +#endif
1.361 +#ifdef EPROCUNAVAIL
1.362 + case EPROCUNAVAIL: return "EPROCUNAVAIL";
1.363 +#endif
1.364 +#ifdef EPROGMISMATCH
1.365 + case EPROGMISMATCH: return "EPROGMISMATCH";
1.366 +#endif
1.367 +#ifdef EPROGUNAVAIL
1.368 + case EPROGUNAVAIL: return "EPROGUNAVAIL";
1.369 +#endif
1.370 +#ifdef EPROTO
1.371 + case EPROTO: return "EPROTO";
1.372 +#endif
1.373 +#ifdef EPROTONOSUPPORT
1.374 + case EPROTONOSUPPORT: return "EPROTONOSUPPORT";
1.375 +#endif
1.376 +#ifdef EPROTOTYPE
1.377 + case EPROTOTYPE: return "EPROTOTYPE";
1.378 +#endif
1.379 +#ifdef ERANGE
1.380 + case ERANGE: return "ERANGE";
1.381 +#endif
1.382 +#if defined(EREFUSED) && (!defined(ECONNREFUSED) || (EREFUSED != ECONNREFUSED))
1.383 + case EREFUSED: return "EREFUSED";
1.384 +#endif
1.385 +#ifdef EREMCHG
1.386 + case EREMCHG: return "EREMCHG";
1.387 +#endif
1.388 +#ifdef EREMDEV
1.389 + case EREMDEV: return "EREMDEV";
1.390 +#endif
1.391 +#ifdef EREMOTE
1.392 + case EREMOTE: return "EREMOTE";
1.393 +#endif
1.394 +#ifdef EREMOTEIO
1.395 + case EREMOTEIO: return "EREMOTEIO";
1.396 +#endif
1.397 +#ifdef EREMOTERELEASE
1.398 + case EREMOTERELEASE: return "EREMOTERELEASE";
1.399 +#endif
1.400 +#ifdef EROFS
1.401 + case EROFS: return "EROFS";
1.402 +#endif
1.403 +#ifdef ERPCMISMATCH
1.404 + case ERPCMISMATCH: return "ERPCMISMATCH";
1.405 +#endif
1.406 +#ifdef ERREMOTE
1.407 + case ERREMOTE: return "ERREMOTE";
1.408 +#endif
1.409 +#ifdef ESHUTDOWN
1.410 + case ESHUTDOWN: return "ESHUTDOWN";
1.411 +#endif
1.412 +#ifdef ESOCKTNOSUPPORT
1.413 + case ESOCKTNOSUPPORT: return "ESOCKTNOSUPPORT";
1.414 +#endif
1.415 +#ifdef ESPIPE
1.416 + case ESPIPE: return "ESPIPE";
1.417 +#endif
1.418 +#ifdef ESRCH
1.419 + case ESRCH: return "ESRCH";
1.420 +#endif
1.421 +#ifdef ESRMNT
1.422 + case ESRMNT: return "ESRMNT";
1.423 +#endif
1.424 +#ifdef ESTALE
1.425 + case ESTALE: return "ESTALE";
1.426 +#endif
1.427 +#ifdef ESUCCESS
1.428 + case ESUCCESS: return "ESUCCESS";
1.429 +#endif
1.430 +#if defined(ETIME) && (!defined(ELOOP) || (ETIME != ELOOP))
1.431 + case ETIME: return "ETIME";
1.432 +#endif
1.433 +#if defined(ETIMEDOUT) && (!defined(ENOSTR) || (ETIMEDOUT != ENOSTR))
1.434 + case ETIMEDOUT: return "ETIMEDOUT";
1.435 +#endif
1.436 +#ifdef ETOOMANYREFS
1.437 + case ETOOMANYREFS: return "ETOOMANYREFS";
1.438 +#endif
1.439 +#ifdef ETXTBSY
1.440 + case ETXTBSY: return "ETXTBSY";
1.441 +#endif
1.442 +#ifdef EUCLEAN
1.443 + case EUCLEAN: return "EUCLEAN";
1.444 +#endif
1.445 +#ifdef EUNATCH
1.446 + case EUNATCH: return "EUNATCH";
1.447 +#endif
1.448 +#ifdef EUSERS
1.449 + case EUSERS: return "EUSERS";
1.450 +#endif
1.451 +#ifdef EVERSION
1.452 + case EVERSION: return "EVERSION";
1.453 +#endif
1.454 +#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
1.455 + case EWOULDBLOCK: return "EWOULDBLOCK";
1.456 +#endif
1.457 +#ifdef EXDEV
1.458 + case EXDEV: return "EXDEV";
1.459 +#endif
1.460 +#ifdef EXFULL
1.461 + case EXFULL: return "EXFULL";
1.462 +#endif
1.463 + }
1.464 + return "unknown error";
1.465 +}
1.466 +
1.467 +/*
1.468 + *----------------------------------------------------------------------
1.469 + *
1.470 + * Tcl_ErrnoMsg --
1.471 + *
1.472 + * Return a human-readable message corresponding to a given
1.473 + * errno value.
1.474 + *
1.475 + * Results:
1.476 + * The return value is the standard POSIX error message for
1.477 + * errno. This procedure is used instead of strerror because
1.478 + * strerror returns slightly different values on different
1.479 + * machines (e.g. different capitalizations), which cause
1.480 + * problems for things such as regression tests. This procedure
1.481 + * provides messages for most standard errors, then it calls
1.482 + * strerror for things it doesn't understand.
1.483 + *
1.484 + * Side effects:
1.485 + * None.
1.486 + *
1.487 + *----------------------------------------------------------------------
1.488 + */
1.489 +
1.490 +EXPORT_C CONST char *
1.491 +Tcl_ErrnoMsg(err)
1.492 + int err; /* Error number (such as in errno variable). */
1.493 +{
1.494 + switch (err) {
1.495 +#ifdef E2BIG
1.496 + case E2BIG: return "argument list too long";
1.497 +#endif
1.498 +#ifdef EACCES
1.499 + case EACCES: return "permission denied";
1.500 +#endif
1.501 +#ifdef EADDRINUSE
1.502 + case EADDRINUSE: return "address already in use";
1.503 +#endif
1.504 +#ifdef EADDRNOTAVAIL
1.505 + case EADDRNOTAVAIL: return "can't assign requested address";
1.506 +#endif
1.507 +#ifdef EADV
1.508 + case EADV: return "advertise error";
1.509 +#endif
1.510 +#ifdef EAFNOSUPPORT
1.511 + case EAFNOSUPPORT: return "address family not supported by protocol family";
1.512 +#endif
1.513 +#ifdef EAGAIN
1.514 + case EAGAIN: return "resource temporarily unavailable";
1.515 +#endif
1.516 +#ifdef EALIGN
1.517 + case EALIGN: return "EALIGN";
1.518 +#endif
1.519 +#if defined(EALREADY) && (!defined(EBUSY) || (EALREADY != EBUSY ))
1.520 + case EALREADY: return "operation already in progress";
1.521 +#endif
1.522 +#ifdef EBADE
1.523 + case EBADE: return "bad exchange descriptor";
1.524 +#endif
1.525 +#ifdef EBADF
1.526 + case EBADF: return "bad file number";
1.527 +#endif
1.528 +#ifdef EBADFD
1.529 + case EBADFD: return "file descriptor in bad state";
1.530 +#endif
1.531 +#ifdef EBADMSG
1.532 + case EBADMSG: return "not a data message";
1.533 +#endif
1.534 +#ifdef EBADR
1.535 + case EBADR: return "bad request descriptor";
1.536 +#endif
1.537 +#ifdef EBADRPC
1.538 + case EBADRPC: return "RPC structure is bad";
1.539 +#endif
1.540 +#ifdef EBADRQC
1.541 + case EBADRQC: return "bad request code";
1.542 +#endif
1.543 +#ifdef EBADSLT
1.544 + case EBADSLT: return "invalid slot";
1.545 +#endif
1.546 +#ifdef EBFONT
1.547 + case EBFONT: return "bad font file format";
1.548 +#endif
1.549 +#ifdef EBUSY
1.550 + case EBUSY: return "file busy";
1.551 +#endif
1.552 +#ifdef ECHILD
1.553 + case ECHILD: return "no children";
1.554 +#endif
1.555 +#ifdef ECHRNG
1.556 + case ECHRNG: return "channel number out of range";
1.557 +#endif
1.558 +#ifdef ECOMM
1.559 + case ECOMM: return "communication error on send";
1.560 +#endif
1.561 +#ifdef ECONNABORTED
1.562 + case ECONNABORTED: return "software caused connection abort";
1.563 +#endif
1.564 +#ifdef ECONNREFUSED
1.565 + case ECONNREFUSED: return "connection refused";
1.566 +#endif
1.567 +#ifdef ECONNRESET
1.568 + case ECONNRESET: return "connection reset by peer";
1.569 +#endif
1.570 +#if defined(EDEADLK) && (!defined(EWOULDBLOCK) || (EDEADLK != EWOULDBLOCK))
1.571 + case EDEADLK: return "resource deadlock avoided";
1.572 +#endif
1.573 +#if defined(EDEADLOCK) && (!defined(EDEADLK) || (EDEADLOCK != EDEADLK))
1.574 + case EDEADLOCK: return "resource deadlock avoided";
1.575 +#endif
1.576 +#ifdef EDESTADDRREQ
1.577 + case EDESTADDRREQ: return "destination address required";
1.578 +#endif
1.579 +#ifdef EDIRTY
1.580 + case EDIRTY: return "mounting a dirty fs w/o force";
1.581 +#endif
1.582 +#ifdef EDOM
1.583 + case EDOM: return "math argument out of range";
1.584 +#endif
1.585 +#ifdef EDOTDOT
1.586 + case EDOTDOT: return "cross mount point";
1.587 +#endif
1.588 +#ifdef EDQUOT
1.589 + case EDQUOT: return "disk quota exceeded";
1.590 +#endif
1.591 +#ifdef EDUPPKG
1.592 + case EDUPPKG: return "duplicate package name";
1.593 +#endif
1.594 +#ifdef EEXIST
1.595 + case EEXIST: return "file already exists";
1.596 +#endif
1.597 +#ifdef EFAULT
1.598 + case EFAULT: return "bad address in system call argument";
1.599 +#endif
1.600 +#ifdef EFBIG
1.601 + case EFBIG: return "file too large";
1.602 +#endif
1.603 +#ifdef EHOSTDOWN
1.604 + case EHOSTDOWN: return "host is down";
1.605 +#endif
1.606 +#ifdef EHOSTUNREACH
1.607 + case EHOSTUNREACH: return "host is unreachable";
1.608 +#endif
1.609 +#if defined(EIDRM) && (!defined(EINPROGRESS) || (EIDRM != EINPROGRESS))
1.610 + case EIDRM: return "identifier removed";
1.611 +#endif
1.612 +#ifdef EINIT
1.613 + case EINIT: return "initialization error";
1.614 +#endif
1.615 +#ifdef EINPROGRESS
1.616 + case EINPROGRESS: return "operation now in progress";
1.617 +#endif
1.618 +#ifdef EINTR
1.619 + case EINTR: return "interrupted system call";
1.620 +#endif
1.621 +#ifdef EINVAL
1.622 + case EINVAL: return "invalid argument";
1.623 +#endif
1.624 +#ifdef EIO
1.625 + case EIO: return "I/O error";
1.626 +#endif
1.627 +#ifdef EISCONN
1.628 + case EISCONN: return "socket is already connected";
1.629 +#endif
1.630 +#ifdef EISDIR
1.631 + case EISDIR: return "illegal operation on a directory";
1.632 +#endif
1.633 +#ifdef EISNAME
1.634 + case EISNAM: return "is a name file";
1.635 +#endif
1.636 +#ifdef ELBIN
1.637 + case ELBIN: return "ELBIN";
1.638 +#endif
1.639 +#ifdef EL2HLT
1.640 + case EL2HLT: return "level 2 halted";
1.641 +#endif
1.642 +#ifdef EL2NSYNC
1.643 + case EL2NSYNC: return "level 2 not synchronized";
1.644 +#endif
1.645 +#ifdef EL3HLT
1.646 + case EL3HLT: return "level 3 halted";
1.647 +#endif
1.648 +#ifdef EL3RST
1.649 + case EL3RST: return "level 3 reset";
1.650 +#endif
1.651 +#ifdef ELIBACC
1.652 + case ELIBACC: return "can not access a needed shared library";
1.653 +#endif
1.654 +#ifdef ELIBBAD
1.655 + case ELIBBAD: return "accessing a corrupted shared library";
1.656 +#endif
1.657 +#ifdef ELIBEXEC
1.658 + case ELIBEXEC: return "can not exec a shared library directly";
1.659 +#endif
1.660 +#ifdef ELIBMAX
1.661 + case ELIBMAX: return
1.662 + "attempting to link in more shared libraries than system limit";
1.663 +#endif
1.664 +#ifdef ELIBSCN
1.665 + case ELIBSCN: return ".lib section in a.out corrupted";
1.666 +#endif
1.667 +#ifdef ELNRNG
1.668 + case ELNRNG: return "link number out of range";
1.669 +#endif
1.670 +#if defined(ELOOP) && (!defined(ENOENT) || (ELOOP != ENOENT))
1.671 + case ELOOP: return "too many levels of symbolic links";
1.672 +#endif
1.673 +#ifdef EMFILE
1.674 + case EMFILE: return "too many open files";
1.675 +#endif
1.676 +#ifdef EMLINK
1.677 + case EMLINK: return "too many links";
1.678 +#endif
1.679 +#ifdef EMSGSIZE
1.680 + case EMSGSIZE: return "message too long";
1.681 +#endif
1.682 +#ifdef EMULTIHOP
1.683 + case EMULTIHOP: return "multihop attempted";
1.684 +#endif
1.685 +#ifdef ENAMETOOLONG
1.686 + case ENAMETOOLONG: return "file name too long";
1.687 +#endif
1.688 +#ifdef ENAVAIL
1.689 + case ENAVAIL: return "not available";
1.690 +#endif
1.691 +#ifdef ENET
1.692 + case ENET: return "ENET";
1.693 +#endif
1.694 +#ifdef ENETDOWN
1.695 + case ENETDOWN: return "network is down";
1.696 +#endif
1.697 +#ifdef ENETRESET
1.698 + case ENETRESET: return "network dropped connection on reset";
1.699 +#endif
1.700 +#ifdef ENETUNREACH
1.701 + case ENETUNREACH: return "network is unreachable";
1.702 +#endif
1.703 +#ifdef ENFILE
1.704 + case ENFILE: return "file table overflow";
1.705 +#endif
1.706 +#ifdef ENOANO
1.707 + case ENOANO: return "anode table overflow";
1.708 +#endif
1.709 +#if defined(ENOBUFS) && (!defined(ENOSR) || (ENOBUFS != ENOSR))
1.710 + case ENOBUFS: return "no buffer space available";
1.711 +#endif
1.712 +#ifdef ENOCSI
1.713 + case ENOCSI: return "no CSI structure available";
1.714 +#endif
1.715 +#if defined(ENODATA) && (!defined(ECONNREFUSED) || (ENODATA != ECONNREFUSED))
1.716 + case ENODATA: return "no data available";
1.717 +#endif
1.718 +#ifdef ENODEV
1.719 + case ENODEV: return "no such device";
1.720 +#endif
1.721 +#ifdef ENOENT
1.722 + case ENOENT: return "no such file or directory";
1.723 +#endif
1.724 +#ifdef ENOEXEC
1.725 + case ENOEXEC: return "exec format error";
1.726 +#endif
1.727 +#ifdef ENOLCK
1.728 + case ENOLCK: return "no locks available";
1.729 +#endif
1.730 +#ifdef ENOLINK
1.731 + case ENOLINK: return "link has be severed";
1.732 +#endif
1.733 +#ifdef ENOMEM
1.734 + case ENOMEM: return "not enough memory";
1.735 +#endif
1.736 +#ifdef ENOMSG
1.737 + case ENOMSG: return "no message of desired type";
1.738 +#endif
1.739 +#ifdef ENONET
1.740 + case ENONET: return "machine is not on the network";
1.741 +#endif
1.742 +#ifdef ENOPKG
1.743 + case ENOPKG: return "package not installed";
1.744 +#endif
1.745 +#ifdef ENOPROTOOPT
1.746 + case ENOPROTOOPT: return "bad protocol option";
1.747 +#endif
1.748 +#ifdef ENOSPC
1.749 + case ENOSPC: return "no space left on device";
1.750 +#endif
1.751 +#if defined(ENOSR) && (!defined(ENAMETOOLONG) || (ENAMETOOLONG != ENOSR))
1.752 + case ENOSR: return "out of stream resources";
1.753 +#endif
1.754 +#if defined(ENOSTR) && (!defined(ENOTTY) || (ENOTTY != ENOSTR))
1.755 + case ENOSTR: return "not a stream device";
1.756 +#endif
1.757 +#ifdef ENOSYM
1.758 + case ENOSYM: return "unresolved symbol name";
1.759 +#endif
1.760 +#ifdef ENOSYS
1.761 + case ENOSYS: return "function not implemented";
1.762 +#endif
1.763 +#ifdef ENOTBLK
1.764 + case ENOTBLK: return "block device required";
1.765 +#endif
1.766 +#ifdef ENOTCONN
1.767 + case ENOTCONN: return "socket is not connected";
1.768 +#endif
1.769 +#ifdef ENOTDIR
1.770 + case ENOTDIR: return "not a directory";
1.771 +#endif
1.772 +#if defined(ENOTEMPTY) && (!defined(EEXIST) || (ENOTEMPTY != EEXIST))
1.773 + case ENOTEMPTY: return "directory not empty";
1.774 +#endif
1.775 +#ifdef ENOTNAM
1.776 + case ENOTNAM: return "not a name file";
1.777 +#endif
1.778 +#ifdef ENOTSOCK
1.779 + case ENOTSOCK: return "socket operation on non-socket";
1.780 +#endif
1.781 +#ifdef ENOTSUP
1.782 + case ENOTSUP: return "operation not supported";
1.783 +#endif
1.784 +#ifdef ENOTTY
1.785 + case ENOTTY: return "inappropriate device for ioctl";
1.786 +#endif
1.787 +#ifdef ENOTUNIQ
1.788 + case ENOTUNIQ: return "name not unique on network";
1.789 +#endif
1.790 +#ifdef ENXIO
1.791 + case ENXIO: return "no such device or address";
1.792 +#endif
1.793 +#if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP))
1.794 + case EOPNOTSUPP: return "operation not supported on socket";
1.795 +#endif
1.796 +#if defined(EOVERFLOW) && ( !defined(EFBIG) || (EOVERFLOW != EFBIG) ) && ( !defined(EINVAL) || (EOVERFLOW != EINVAL) )
1.797 + case EOVERFLOW: return "file too big";
1.798 +#endif
1.799 +#ifdef EPERM
1.800 + case EPERM: return "not owner";
1.801 +#endif
1.802 +#if defined(EPFNOSUPPORT) && (!defined(ENOLCK) || (ENOLCK != EPFNOSUPPORT))
1.803 + case EPFNOSUPPORT: return "protocol family not supported";
1.804 +#endif
1.805 +#ifdef EPIPE
1.806 + case EPIPE: return "broken pipe";
1.807 +#endif
1.808 +#ifdef EPROCLIM
1.809 + case EPROCLIM: return "too many processes";
1.810 +#endif
1.811 +#ifdef EPROCUNAVAIL
1.812 + case EPROCUNAVAIL: return "bad procedure for program";
1.813 +#endif
1.814 +#ifdef EPROGMISMATCH
1.815 + case EPROGMISMATCH: return "program version wrong";
1.816 +#endif
1.817 +#ifdef EPROGUNAVAIL
1.818 + case EPROGUNAVAIL: return "RPC program not available";
1.819 +#endif
1.820 +#ifdef EPROTO
1.821 + case EPROTO: return "protocol error";
1.822 +#endif
1.823 +#ifdef EPROTONOSUPPORT
1.824 + case EPROTONOSUPPORT: return "protocol not suppored";
1.825 +#endif
1.826 +#ifdef EPROTOTYPE
1.827 + case EPROTOTYPE: return "protocol wrong type for socket";
1.828 +#endif
1.829 +#ifdef ERANGE
1.830 + case ERANGE: return "math result unrepresentable";
1.831 +#endif
1.832 +#if defined(EREFUSED) && (!defined(ECONNREFUSED) || (EREFUSED != ECONNREFUSED))
1.833 + case EREFUSED: return "EREFUSED";
1.834 +#endif
1.835 +#ifdef EREMCHG
1.836 + case EREMCHG: return "remote address changed";
1.837 +#endif
1.838 +#ifdef EREMDEV
1.839 + case EREMDEV: return "remote device";
1.840 +#endif
1.841 +#ifdef EREMOTE
1.842 + case EREMOTE: return "pathname hit remote file system";
1.843 +#endif
1.844 +#ifdef EREMOTEIO
1.845 + case EREMOTEIO: return "remote i/o error";
1.846 +#endif
1.847 +#ifdef EREMOTERELEASE
1.848 + case EREMOTERELEASE: return "EREMOTERELEASE";
1.849 +#endif
1.850 +#ifdef EROFS
1.851 + case EROFS: return "read-only file system";
1.852 +#endif
1.853 +#ifdef ERPCMISMATCH
1.854 + case ERPCMISMATCH: return "RPC version is wrong";
1.855 +#endif
1.856 +#ifdef ERREMOTE
1.857 + case ERREMOTE: return "object is remote";
1.858 +#endif
1.859 +#ifdef ESHUTDOWN
1.860 + case ESHUTDOWN: return "can't send afer socket shutdown";
1.861 +#endif
1.862 +#ifdef ESOCKTNOSUPPORT
1.863 + case ESOCKTNOSUPPORT: return "socket type not supported";
1.864 +#endif
1.865 +#ifdef ESPIPE
1.866 + case ESPIPE: return "invalid seek";
1.867 +#endif
1.868 +#ifdef ESRCH
1.869 + case ESRCH: return "no such process";
1.870 +#endif
1.871 +#ifdef ESRMNT
1.872 + case ESRMNT: return "srmount error";
1.873 +#endif
1.874 +#ifdef ESTALE
1.875 + case ESTALE: return "stale remote file handle";
1.876 +#endif
1.877 +#ifdef ESUCCESS
1.878 + case ESUCCESS: return "Error 0";
1.879 +#endif
1.880 +#if defined(ETIME) && (!defined(ELOOP) || (ETIME != ELOOP))
1.881 + case ETIME: return "timer expired";
1.882 +#endif
1.883 +#if defined(ETIMEDOUT) && (!defined(ENOSTR) || (ETIMEDOUT != ENOSTR))
1.884 + case ETIMEDOUT: return "connection timed out";
1.885 +#endif
1.886 +#ifdef ETOOMANYREFS
1.887 + case ETOOMANYREFS: return "too many references: can't splice";
1.888 +#endif
1.889 +#ifdef ETXTBSY
1.890 + case ETXTBSY: return "text file or pseudo-device busy";
1.891 +#endif
1.892 +#ifdef EUCLEAN
1.893 + case EUCLEAN: return "structure needs cleaning";
1.894 +#endif
1.895 +#ifdef EUNATCH
1.896 + case EUNATCH: return "protocol driver not attached";
1.897 +#endif
1.898 +#ifdef EUSERS
1.899 + case EUSERS: return "too many users";
1.900 +#endif
1.901 +#ifdef EVERSION
1.902 + case EVERSION: return "version mismatch";
1.903 +#endif
1.904 +#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
1.905 + case EWOULDBLOCK: return "operation would block";
1.906 +#endif
1.907 +#ifdef EXDEV
1.908 + case EXDEV: return "cross-domain link";
1.909 +#endif
1.910 +#ifdef EXFULL
1.911 + case EXFULL: return "message tables full";
1.912 +#endif
1.913 + default:
1.914 +#ifdef NO_STRERROR
1.915 + return "unknown POSIX error";
1.916 +#else
1.917 + return strerror(errno);
1.918 +#endif
1.919 + }
1.920 +}
1.921 +
1.922 +/*
1.923 + *----------------------------------------------------------------------
1.924 + *
1.925 + * Tcl_SignalId --
1.926 + *
1.927 + * Return a textual identifier for a signal number.
1.928 + *
1.929 + * Results:
1.930 + * This procedure returns a machine-readable textual identifier
1.931 + * that corresponds to sig. The identifier is the same as the
1.932 + * #define name in signal.h.
1.933 + *
1.934 + * Side effects:
1.935 + * None.
1.936 + *
1.937 + *----------------------------------------------------------------------
1.938 + */
1.939 +
1.940 +EXPORT_C CONST char *
1.941 +Tcl_SignalId(sig)
1.942 + int sig; /* Number of signal. */
1.943 +{
1.944 + switch (sig) {
1.945 +#ifdef SIGABRT
1.946 + case SIGABRT: return "SIGABRT";
1.947 +#endif
1.948 +#ifdef SIGALRM
1.949 + case SIGALRM: return "SIGALRM";
1.950 +#endif
1.951 +#ifdef SIGBUS
1.952 + case SIGBUS: return "SIGBUS";
1.953 +#endif
1.954 +#ifdef SIGCHLD
1.955 + case SIGCHLD: return "SIGCHLD";
1.956 +#endif
1.957 +#if defined(SIGCLD) && (!defined(SIGCHLD) || (SIGCLD != SIGCHLD))
1.958 + case SIGCLD: return "SIGCLD";
1.959 +#endif
1.960 +#ifdef SIGCONT
1.961 + case SIGCONT: return "SIGCONT";
1.962 +#endif
1.963 +#if defined(SIGEMT) && (!defined(SIGXCPU) || (SIGEMT != SIGXCPU))
1.964 + case SIGEMT: return "SIGEMT";
1.965 +#endif
1.966 +#ifdef SIGFPE
1.967 + case SIGFPE: return "SIGFPE";
1.968 +#endif
1.969 +#ifdef SIGHUP
1.970 + case SIGHUP: return "SIGHUP";
1.971 +#endif
1.972 +#ifdef SIGILL
1.973 + case SIGILL: return "SIGILL";
1.974 +#endif
1.975 +#ifdef SIGINT
1.976 + case SIGINT: return "SIGINT";
1.977 +#endif
1.978 +#ifdef SIGIO
1.979 + case SIGIO: return "SIGIO";
1.980 +#endif
1.981 +#if defined(SIGIOT) && (!defined(SIGABRT) || (SIGIOT != SIGABRT))
1.982 + case SIGIOT: return "SIGIOT";
1.983 +#endif
1.984 +#ifdef SIGKILL
1.985 + case SIGKILL: return "SIGKILL";
1.986 +#endif
1.987 +#if defined(SIGLOST) && (!defined(SIGIOT) || (SIGLOST != SIGIOT)) && (!defined(SIGURG) || (SIGLOST != SIGURG)) && (!defined(SIGPROF) || (SIGLOST != SIGPROF)) && (!defined(SIGIO) || (SIGLOST != SIGIO))
1.988 + case SIGLOST: return "SIGLOST";
1.989 +#endif
1.990 +#ifdef SIGPIPE
1.991 + case SIGPIPE: return "SIGPIPE";
1.992 +#endif
1.993 +#if defined(SIGPOLL) && (!defined(SIGIO) || (SIGPOLL != SIGIO))
1.994 + case SIGPOLL: return "SIGPOLL";
1.995 +#endif
1.996 +#ifdef SIGPROF
1.997 + case SIGPROF: return "SIGPROF";
1.998 +#endif
1.999 +#if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ)) && (!defined(SIGLOST) || (SIGPWR != SIGLOST))
1.1000 + case SIGPWR: return "SIGPWR";
1.1001 +#endif
1.1002 +#ifdef SIGQUIT
1.1003 + case SIGQUIT: return "SIGQUIT";
1.1004 +#endif
1.1005 +#ifdef SIGSEGV
1.1006 + case SIGSEGV: return "SIGSEGV";
1.1007 +#endif
1.1008 +#ifdef SIGSTOP
1.1009 + case SIGSTOP: return "SIGSTOP";
1.1010 +#endif
1.1011 +#ifdef SIGSYS
1.1012 + case SIGSYS: return "SIGSYS";
1.1013 +#endif
1.1014 +#ifdef SIGTERM
1.1015 + case SIGTERM: return "SIGTERM";
1.1016 +#endif
1.1017 +#ifdef SIGTRAP
1.1018 + case SIGTRAP: return "SIGTRAP";
1.1019 +#endif
1.1020 +#ifdef SIGTSTP
1.1021 + case SIGTSTP: return "SIGTSTP";
1.1022 +#endif
1.1023 +#ifdef SIGTTIN
1.1024 + case SIGTTIN: return "SIGTTIN";
1.1025 +#endif
1.1026 +#ifdef SIGTTOU
1.1027 + case SIGTTOU: return "SIGTTOU";
1.1028 +#endif
1.1029 +#if defined(SIGURG) && (!defined(SIGIO) || (SIGURG != SIGIO))
1.1030 + case SIGURG: return "SIGURG";
1.1031 +#endif
1.1032 +#if defined(SIGUSR1) && (!defined(SIGIO) || (SIGUSR1 != SIGIO))
1.1033 + case SIGUSR1: return "SIGUSR1";
1.1034 +#endif
1.1035 +#if defined(SIGUSR2) && (!defined(SIGURG) || (SIGUSR2 != SIGURG))
1.1036 + case SIGUSR2: return "SIGUSR2";
1.1037 +#endif
1.1038 +#ifdef SIGVTALRM
1.1039 + case SIGVTALRM: return "SIGVTALRM";
1.1040 +#endif
1.1041 +#ifdef SIGWINCH
1.1042 + case SIGWINCH: return "SIGWINCH";
1.1043 +#endif
1.1044 +#ifdef SIGXCPU
1.1045 + case SIGXCPU: return "SIGXCPU";
1.1046 +#endif
1.1047 +#ifdef SIGXFSZ
1.1048 + case SIGXFSZ: return "SIGXFSZ";
1.1049 +#endif
1.1050 + }
1.1051 + return "unknown signal";
1.1052 +}
1.1053 +
1.1054 +/*
1.1055 + *----------------------------------------------------------------------
1.1056 + *
1.1057 + * Tcl_SignalMsg --
1.1058 + *
1.1059 + * Return a human-readable message describing a signal.
1.1060 + *
1.1061 + * Results:
1.1062 + * This procedure returns a string describing sig that should
1.1063 + * make sense to a human. It may not be easy for a machine
1.1064 + * to parse.
1.1065 + *
1.1066 + * Side effects:
1.1067 + * None.
1.1068 + *
1.1069 + *----------------------------------------------------------------------
1.1070 + */
1.1071 +
1.1072 +EXPORT_C CONST char *
1.1073 +Tcl_SignalMsg(sig)
1.1074 + int sig; /* Number of signal. */
1.1075 +{
1.1076 + switch (sig) {
1.1077 +#ifdef SIGABRT
1.1078 + case SIGABRT: return "SIGABRT";
1.1079 +#endif
1.1080 +#ifdef SIGALRM
1.1081 + case SIGALRM: return "alarm clock";
1.1082 +#endif
1.1083 +#ifdef SIGBUS
1.1084 + case SIGBUS: return "bus error";
1.1085 +#endif
1.1086 +#ifdef SIGCHLD
1.1087 + case SIGCHLD: return "child status changed";
1.1088 +#endif
1.1089 +#if defined(SIGCLD) && (!defined(SIGCHLD) || (SIGCLD != SIGCHLD))
1.1090 + case SIGCLD: return "child status changed";
1.1091 +#endif
1.1092 +#ifdef SIGCONT
1.1093 + case SIGCONT: return "continue after stop";
1.1094 +#endif
1.1095 +#if defined(SIGEMT) && (!defined(SIGXCPU) || (SIGEMT != SIGXCPU))
1.1096 + case SIGEMT: return "EMT instruction";
1.1097 +#endif
1.1098 +#ifdef SIGFPE
1.1099 + case SIGFPE: return "floating-point exception";
1.1100 +#endif
1.1101 +#ifdef SIGHUP
1.1102 + case SIGHUP: return "hangup";
1.1103 +#endif
1.1104 +#ifdef SIGILL
1.1105 + case SIGILL: return "illegal instruction";
1.1106 +#endif
1.1107 +#ifdef SIGINT
1.1108 + case SIGINT: return "interrupt";
1.1109 +#endif
1.1110 +#ifdef SIGIO
1.1111 + case SIGIO: return "input/output possible on file";
1.1112 +#endif
1.1113 +#if defined(SIGIOT) && (!defined(SIGABRT) || (SIGABRT != SIGIOT))
1.1114 + case SIGIOT: return "IOT instruction";
1.1115 +#endif
1.1116 +#ifdef SIGKILL
1.1117 + case SIGKILL: return "kill signal";
1.1118 +#endif
1.1119 +#if defined(SIGLOST) && (!defined(SIGIOT) || (SIGLOST != SIGIOT)) && (!defined(SIGURG) || (SIGLOST != SIGURG)) && (!defined(SIGPROF) || (SIGLOST != SIGPROF)) && (!defined(SIGIO) || (SIGLOST != SIGIO))
1.1120 + case SIGLOST: return "resource lost";
1.1121 +#endif
1.1122 +#ifdef SIGPIPE
1.1123 + case SIGPIPE: return "write on pipe with no readers";
1.1124 +#endif
1.1125 +#if defined(SIGPOLL) && (!defined(SIGIO) || (SIGPOLL != SIGIO))
1.1126 + case SIGPOLL: return "input/output possible on file";
1.1127 +#endif
1.1128 +#ifdef SIGPROF
1.1129 + case SIGPROF: return "profiling alarm";
1.1130 +#endif
1.1131 +#if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ)) && (!defined(SIGLOST) || (SIGPWR != SIGLOST))
1.1132 + case SIGPWR: return "power-fail restart";
1.1133 +#endif
1.1134 +#ifdef SIGQUIT
1.1135 + case SIGQUIT: return "quit signal";
1.1136 +#endif
1.1137 +#ifdef SIGSEGV
1.1138 + case SIGSEGV: return "segmentation violation";
1.1139 +#endif
1.1140 +#ifdef SIGSTOP
1.1141 + case SIGSTOP: return "stop";
1.1142 +#endif
1.1143 +#ifdef SIGSYS
1.1144 + case SIGSYS: return "bad argument to system call";
1.1145 +#endif
1.1146 +#ifdef SIGTERM
1.1147 + case SIGTERM: return "software termination signal";
1.1148 +#endif
1.1149 +#ifdef SIGTRAP
1.1150 + case SIGTRAP: return "trace trap";
1.1151 +#endif
1.1152 +#ifdef SIGTSTP
1.1153 + case SIGTSTP: return "stop signal from tty";
1.1154 +#endif
1.1155 +#ifdef SIGTTIN
1.1156 + case SIGTTIN: return "background tty read";
1.1157 +#endif
1.1158 +#ifdef SIGTTOU
1.1159 + case SIGTTOU: return "background tty write";
1.1160 +#endif
1.1161 +#if defined(SIGURG) && (!defined(SIGIO) || (SIGURG != SIGIO))
1.1162 + case SIGURG: return "urgent I/O condition";
1.1163 +#endif
1.1164 +#if defined(SIGUSR1) && (!defined(SIGIO) || (SIGUSR1 != SIGIO))
1.1165 + case SIGUSR1: return "user-defined signal 1";
1.1166 +#endif
1.1167 +#if defined(SIGUSR2) && (!defined(SIGURG) || (SIGUSR2 != SIGURG))
1.1168 + case SIGUSR2: return "user-defined signal 2";
1.1169 +#endif
1.1170 +#ifdef SIGVTALRM
1.1171 + case SIGVTALRM: return "virtual time alarm";
1.1172 +#endif
1.1173 +#ifdef SIGWINCH
1.1174 + case SIGWINCH: return "window changed";
1.1175 +#endif
1.1176 +#ifdef SIGXCPU
1.1177 + case SIGXCPU: return "exceeded CPU time limit";
1.1178 +#endif
1.1179 +#ifdef SIGXFSZ
1.1180 + case SIGXFSZ: return "exceeded file size limit";
1.1181 +#endif
1.1182 + }
1.1183 + return "unknown signal";
1.1184 +}