aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRical Jasan <ricaljasan@pacific.net>2017-05-19 22:44:25 -0700
committerRical Jasan <ricaljasan@pacific.net>2017-05-19 22:47:53 -0700
commita429d2ff07fcb6620269fc0ee46ea5066451fdff (patch)
treeb331d57677d3181b3d025a22682fd1fd0d4b3443
parent0bcec5321f7d31c31e4fd601d4e0922862d87b14 (diff)
downloadglibc-a429d2ff07fcb6620269fc0ee46ea5066451fdff.tar.xz
glibc-a429d2ff07fcb6620269fc0ee46ea5066451fdff.zip
manual: Convert errno @comments to new @errno macro.
errno.texi documents error macros, their values, and error strings in Texinfo @comments, some of which are also used for @standards. The purpose of this commit is to separate the standards from the error strings so that both the @standards conversion script picks up clean @standards and the errno documentation framework is improved. The error names, values, and messages are consolidated in a new custom macro, @errno. It is not clear that scripts within the sources rely on the special Texinfo @comment-based format to generate files used throughout the library, so the definition of @errno in macros.texi now provides a comment indicating the dependency. The dependent scripts are updated to use @errno, which also simplifies them a bit. The files those scripts generate were verified to be unchanged. The @errno macro is not visibly rendered in any way at this time, but it does use an @cindex command to add the error string to the Concept Index, to facilitate searching on error messages. * manual/errno.texi: Convert @comment-based errno documentation to @errno. * manual/macros.texi (@errno): New macro. Consolidate errors, their values, and messages, adding the error string to the Concept Index. Provide a warning in the comment about external (to the manual) dependencies. * sysdeps/gnu/errlist.awk: Use @errno instead of @comments. * sysdeps/mach/hurd/errnos.awk: Likewise.
-rw-r--r--ChangeLog11
-rw-r--r--manual/errno.texi596
-rw-r--r--manual/macros.texi6
-rw-r--r--sysdeps/gnu/errlist.awk21
-rw-r--r--sysdeps/mach/hurd/errnos.awk22
5 files changed, 326 insertions, 330 deletions
diff --git a/ChangeLog b/ChangeLog
index f25eb14ca9..d9e77c418b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2017-05-19 Rical Jasan <ricaljasan@pacific.net>
+
+ * manual/errno.texi: Convert @comment-based errno documentation to
+ @errno.
+ * manual/macros.texi (@errno): New macro. Consolidate errors,
+ their values, and messages, adding the error string to the Concept
+ Index. Provide a warning in the comment about external (to the
+ manual) dependencies.
+ * sysdeps/gnu/errlist.awk: Use @errno instead of @comments.
+ * sysdeps/mach/hurd/errnos.awk: Likewise.
+
2017-05-19 Joseph Myers <joseph@codesourcery.com>
* bits/ss_flags.h: New file.
diff --git a/manual/errno.texi b/manual/errno.texi
index d5429a00d4..184fa5e277 100644
--- a/manual/errno.texi
+++ b/manual/errno.texi
@@ -119,33 +119,33 @@ codes can't occur on @gnusystems{}, but they can occur using @theglibc{}
on other systems.
@comment errno.h
-@comment POSIX.1: Operation not permitted
+@comment POSIX.1
@deftypevr Macro int EPERM
-@comment errno 1 @c DO NOT REMOVE
+@errno{EPERM, 1, Operation not permitted}
Operation not permitted; only the owner of the file (or other resource)
or processes with special privileges can perform the operation.
@end deftypevr
@comment errno.h
-@comment POSIX.1: No such file or directory
+@comment POSIX.1
@deftypevr Macro int ENOENT
-@comment errno 2 @c DO NOT REMOVE
+@errno{ENOENT, 2, No such file or directory}
No such file or directory. This is a ``file doesn't exist'' error
for ordinary files that are referenced in contexts where they are
expected to already exist.
@end deftypevr
@comment errno.h
-@comment POSIX.1: No such process
+@comment POSIX.1
@deftypevr Macro int ESRCH
-@comment errno 3 @c DO NOT REMOVE
+@errno{ESRCH, 3, No such process}
No process matches the specified process ID.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Interrupted system call
+@comment POSIX.1
@deftypevr Macro int EINTR
-@comment errno 4 @c DO NOT REMOVE
+@errno{EINTR, 4, Interrupted system call}
Interrupted function call; an asynchronous signal occurred and prevented
completion of the call. When this happens, you should try the call
again.
@@ -156,16 +156,16 @@ Primitives}.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Input/output error
+@comment POSIX.1
@deftypevr Macro int EIO
-@comment errno 5 @c DO NOT REMOVE
+@errno{EIO, 5, Input/output error}
Input/output error; usually used for physical read or write errors.
@end deftypevr
@comment errno.h
-@comment POSIX.1: No such device or address
+@comment POSIX.1
@deftypevr Macro int ENXIO
-@comment errno 6 @c DO NOT REMOVE
+@errno{ENXIO, 6, No such device or address}
No such device or address. The system tried to use the device
represented by a file you specified, and it couldn't find the device.
This can mean that the device file was installed incorrectly, or that
@@ -174,9 +174,9 @@ computer.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Argument list too long
+@comment POSIX.1
@deftypevr Macro int E2BIG
-@comment errno 7 @c DO NOT REMOVE
+@errno{E2BIG, 7, Argument list too long}
Argument list too long; used when the arguments passed to a new program
being executed with one of the @code{exec} functions (@pxref{Executing a
File}) occupy too much memory space. This condition never arises on
@@ -184,35 +184,35 @@ File}) occupy too much memory space. This condition never arises on
@end deftypevr
@comment errno.h
-@comment POSIX.1: Exec format error
+@comment POSIX.1
@deftypevr Macro int ENOEXEC
-@comment errno 8 @c DO NOT REMOVE
+@errno{ENOEXEC, 8, Exec format error}
Invalid executable file format. This condition is detected by the
@code{exec} functions; see @ref{Executing a File}.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Bad file descriptor
+@comment POSIX.1
@deftypevr Macro int EBADF
-@comment errno 9 @c DO NOT REMOVE
+@errno{EBADF, 9, Bad file descriptor}
Bad file descriptor; for example, I/O on a descriptor that has been
closed or reading from a descriptor open only for writing (or vice
versa).
@end deftypevr
@comment errno.h
-@comment POSIX.1: No child processes
+@comment POSIX.1
@deftypevr Macro int ECHILD
-@comment errno 10 @c DO NOT REMOVE
+@errno{ECHILD, 10, No child processes}
There are no child processes. This error happens on operations that are
supposed to manipulate child processes, when there aren't any processes
to manipulate.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Resource deadlock avoided
+@comment POSIX.1
@deftypevr Macro int EDEADLK
-@comment errno 11 @c DO NOT REMOVE
+@errno{EDEADLK, 11, Resource deadlock avoided}
Deadlock avoided; allocating a system resource would have resulted in a
deadlock situation. The system does not guarantee that it will notice
all such situations. This error means you got lucky and the system
@@ -220,98 +220,98 @@ noticed; it might just hang. @xref{File Locks}, for an example.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Cannot allocate memory
+@comment POSIX.1
@deftypevr Macro int ENOMEM
-@comment errno 12 @c DO NOT REMOVE
+@errno{ENOMEM, 12, Cannot allocate memory}
No memory available. The system cannot allocate more virtual memory
because its capacity is full.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Permission denied
+@comment POSIX.1
@deftypevr Macro int EACCES
-@comment errno 13 @c DO NOT REMOVE
+@errno{EACCES, 13, Permission denied}
Permission denied; the file permissions do not allow the attempted operation.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Bad address
+@comment POSIX.1
@deftypevr Macro int EFAULT
-@comment errno 14 @c DO NOT REMOVE
+@errno{EFAULT, 14, Bad address}
Bad address; an invalid pointer was detected.
On @gnuhurdsystems{}, this error never happens; you get a signal instead.
@end deftypevr
@comment errno.h
-@comment BSD: Block device required
+@comment BSD
@deftypevr Macro int ENOTBLK
-@comment errno 15 @c DO NOT REMOVE
+@errno{ENOTBLK, 15, Block device required}
A file that isn't a block special file was given in a situation that
requires one. For example, trying to mount an ordinary file as a file
system in Unix gives this error.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Device or resource busy
+@comment POSIX.1
@deftypevr Macro int EBUSY
-@comment errno 16 @c DO NOT REMOVE
+@errno{EBUSY, 16, Device or resource busy}
Resource busy; a system resource that can't be shared is already in use.
For example, if you try to delete a file that is the root of a currently
mounted filesystem, you get this error.
@end deftypevr
@comment errno.h
-@comment POSIX.1: File exists
+@comment POSIX.1
@deftypevr Macro int EEXIST
-@comment errno 17 @c DO NOT REMOVE
+@errno{EEXIST, 17, File exists}
File exists; an existing file was specified in a context where it only
makes sense to specify a new file.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Invalid cross-device link
+@comment POSIX.1
@deftypevr Macro int EXDEV
-@comment errno 18 @c DO NOT REMOVE
+@errno{EXDEV, 18, Invalid cross-device link}
An attempt to make an improper link across file systems was detected.
This happens not only when you use @code{link} (@pxref{Hard Links}) but
also when you rename a file with @code{rename} (@pxref{Renaming Files}).
@end deftypevr
@comment errno.h
-@comment POSIX.1: No such device
+@comment POSIX.1
@deftypevr Macro int ENODEV
-@comment errno 19 @c DO NOT REMOVE
+@errno{ENODEV, 19, No such device}
The wrong type of device was given to a function that expects a
particular sort of device.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Not a directory
+@comment POSIX.1
@deftypevr Macro int ENOTDIR
-@comment errno 20 @c DO NOT REMOVE
+@errno{ENOTDIR, 20, Not a directory}
A file that isn't a directory was specified when a directory is required.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Is a directory
+@comment POSIX.1
@deftypevr Macro int EISDIR
-@comment errno 21 @c DO NOT REMOVE
+@errno{EISDIR, 21, Is a directory}
File is a directory; you cannot open a directory for writing,
or create or remove hard links to it.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Invalid argument
+@comment POSIX.1
@deftypevr Macro int EINVAL
-@comment errno 22 @c DO NOT REMOVE
+@errno{EINVAL, 22, Invalid argument}
Invalid argument. This is used to indicate various kinds of problems
with passing the wrong argument to a library function.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Too many open files
+@comment POSIX.1
@deftypevr Macro int EMFILE
-@comment errno 24 @c DO NOT REMOVE
+@errno{EMFILE, 24, Too many open files}
The current process has too many files open and can't open any more.
Duplicate descriptors do count toward this limit.
@@ -322,26 +322,26 @@ want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
@end deftypevr
@comment errno.h
-@comment POSIX.1: Too many open files in system
+@comment POSIX.1
@deftypevr Macro int ENFILE
-@comment errno 23 @c DO NOT REMOVE
+@errno{ENFILE, 23, Too many open files in system}
There are too many distinct file openings in the entire system. Note
that any number of linked channels count as just one file opening; see
@ref{Linked Channels}. This error never occurs on @gnuhurdsystems{}.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Inappropriate ioctl for device
+@comment POSIX.1
@deftypevr Macro int ENOTTY
-@comment errno 25 @c DO NOT REMOVE
+@errno{ENOTTY, 25, Inappropriate ioctl for device}
Inappropriate I/O control operation, such as trying to set terminal
modes on an ordinary file.
@end deftypevr
@comment errno.h
-@comment BSD: Text file busy
+@comment BSD
@deftypevr Macro int ETXTBSY
-@comment errno 26 @c DO NOT REMOVE
+@errno{ETXTBSY, 26, Text file busy}
An attempt to execute a file that is currently open for writing, or
write to a file that is currently being executed. Often using a
debugger to run a program is considered having it open for writing and
@@ -350,47 +350,47 @@ is not an error on @gnuhurdsystems{}; the text is copied as necessary.
@end deftypevr
@comment errno.h
-@comment POSIX.1: File too large
+@comment POSIX.1
@deftypevr Macro int EFBIG
-@comment errno 27 @c DO NOT REMOVE
+@errno{EFBIG, 27, File too large}
File too big; the size of a file would be larger than allowed by the system.
@end deftypevr
@comment errno.h
-@comment POSIX.1: No space left on device
+@comment POSIX.1
@deftypevr Macro int ENOSPC
-@comment errno 28 @c DO NOT REMOVE
+@errno{ENOSPC, 28, No space left on device}
No space left on device; write operation on a file failed because the
disk is full.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Illegal seek
+@comment POSIX.1
@deftypevr Macro int ESPIPE
-@comment errno 29 @c DO NOT REMOVE
+@errno{ESPIPE, 29, Illegal seek}
Invalid seek operation (such as on a pipe).
@end deftypevr
@comment errno.h
-@comment POSIX.1: Read-only file system
+@comment POSIX.1
@deftypevr Macro int EROFS
-@comment errno 30 @c DO NOT REMOVE
+@errno{EROFS, 30, Read-only file system}
An attempt was made to modify something on a read-only file system.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Too many links
+@comment POSIX.1
@deftypevr Macro int EMLINK
-@comment errno 31 @c DO NOT REMOVE
+@errno{EMLINK, 31, Too many links}
Too many links; the link count of a single file would become too large.
@code{rename} can cause this error if the file being renamed already has
as many links as it can take (@pxref{Renaming Files}).
@end deftypevr
@comment errno.h
-@comment POSIX.1: Broken pipe
+@comment POSIX.1
@deftypevr Macro int EPIPE
-@comment errno 32 @c DO NOT REMOVE
+@errno{EPIPE, 32, Broken pipe}
Broken pipe; there is no process reading from the other end of a pipe.
Every library function that returns this error code also generates a
@code{SIGPIPE} signal; this signal terminates the program if not handled
@@ -399,25 +399,25 @@ unless it has handled or blocked @code{SIGPIPE}.
@end deftypevr
@comment errno.h
-@comment ISO: Numerical argument out of domain
+@comment ISO
@deftypevr Macro int EDOM
-@comment errno 33 @c DO NOT REMOVE
+@errno{EDOM, 33, Numerical argument out of domain}
Domain error; used by mathematical functions when an argument value does
not fall into the domain over which the function is defined.
@end deftypevr
@comment errno.h
-@comment ISO: Numerical result out of range
+@comment ISO
@deftypevr Macro int ERANGE
-@comment errno 34 @c DO NOT REMOVE
+@errno{ERANGE, 34, Numerical result out of range}
Range error; used by mathematical functions when the result value is
not representable because of overflow or underflow.
@end deftypevr
@comment errno.h
-@comment POSIX.1: Resource temporarily unavailable
+@comment POSIX.1
@deftypevr Macro int EAGAIN
-@comment errno 35 @c DO NOT REMOVE
+@errno{EAGAIN, 35, Resource temporarily unavailable}
Resource temporarily unavailable; the call might work if you try again
later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN};
they are always the same in @theglibc{}.
@@ -450,9 +450,9 @@ and return to its command loop.
@end deftypevr
@comment errno.h
-@comment BSD: Operation would block
+@comment BSD
@deftypevr Macro int EWOULDBLOCK
-@comment errno EAGAIN @c DO NOT REMOVE
+@errno{EWOULDBLOCK, EAGAIN, Operation would block}
In @theglibc{}, this is another name for @code{EAGAIN} (above).
The values are always the same, on every operating system.
@@ -461,9 +461,9 @@ separate error code.
@end deftypevr
@comment errno.h
-@comment BSD: Operation now in progress
+@comment BSD
@deftypevr Macro int EINPROGRESS
-@comment errno 36 @c DO NOT REMOVE
+@errno{EINPROGRESS, 36, Operation now in progress}
An operation that cannot complete immediately was initiated on an object
that has non-blocking mode selected. Some functions that must always
block (such as @code{connect}; @pxref{Connecting}) never return
@@ -475,63 +475,63 @@ has completed; @pxref{Waiting for I/O}.
@end deftypevr
@comment errno.h
-@comment BSD: Operation already in progress
+@comment BSD
@deftypevr Macro int EALREADY
-@comment errno 37 @c DO NOT REMOVE
+@errno{EALREADY, 37, Operation already in progress}
An operation is already in progress on an object that has non-blocking
mode selected.
@end deftypevr
@comment errno.h
-@comment BSD: Socket operation on non-socket
+@comment BSD
@deftypevr Macro int ENOTSOCK
-@comment errno 38 @c DO NOT REMOVE
+@errno{ENOTSOCK, 38, Socket operation on non-socket}
A file that isn't a socket was specified when a socket is required.
@end deftypevr
@comment errno.h
-@comment BSD: Message too long
+@comment BSD
@deftypevr Macro int EMSGSIZE
-@comment errno 40 @c DO NOT REMOVE
+@errno{EMSGSIZE, 40, Message too long}
The size of a message sent on a socket was larger than the supported
maximum size.
@end deftypevr
@comment errno.h
-@comment BSD: Protocol wrong type for socket
+@comment BSD
@deftypevr Macro int EPROTOTYPE
-@comment errno 41 @c DO NOT REMOVE
+@errno{EPROTOTYPE, 41, Protocol wrong type for socket}
The socket type does not support the requested communications protocol.
@end deftypevr
@comment errno.h
-@comment BSD: Protocol not available
+@comment BSD
@deftypevr Macro int ENOPROTOOPT
-@comment errno 42 @c DO NOT REMOVE
+@errno{ENOPROTOOPT, 42, Protocol not available}
You specified a socket option that doesn't make sense for the
particular protocol being used by the socket. @xref{Socket Options}.
@end deftypevr
@comment errno.h
-@comment BSD: Protocol not supported
+@comment BSD
@deftypevr Macro int EPROTONOSUPPORT
-@comment errno 43 @c DO NOT REMOVE
+@errno{EPROTONOSUPPORT, 43, Protocol not supported}
The socket domain does not support the requested communications protocol
(perhaps because the requested protocol is completely invalid).
@xref{Creating a Socket}.
@end deftypevr
@comment errno.h
-@comment BSD: Socket type not supported
+@comment BSD
@deftypevr Macro int ESOCKTNOSUPPORT
-@comment errno 44 @c DO NOT REMOVE
+@errno{ESOCKTNOSUPPORT, 44, Socket type not supported}
The socket type is not supported.
@end deftypevr
@comment errno.h
-@comment BSD: Operation not supported
+@comment BSD
@deftypevr Macro int EOPNOTSUPP
-@comment errno 45 @c DO NOT REMOVE
+@errno{EOPNOTSUPP, 45, Operation not supported}
The operation you requested is not supported. Some socket functions
don't make sense for all types of sockets, and others may not be
implemented for all communications protocols. On @gnuhurdsystems{}, this
@@ -541,95 +541,95 @@ nothing to do for that call.
@end deftypevr
@comment errno.h
-@comment BSD: Protocol family not supported
+@comment BSD
@deftypevr Macro int EPFNOSUPPORT
-@comment errno 46 @c DO NOT REMOVE
+@errno{EPFNOSUPPORT, 46, Protocol family not supported}
The socket communications protocol family you requested is not supported.
@end deftypevr
@comment errno.h
-@comment BSD: Address family not supported by protocol
+@comment BSD
@deftypevr Macro int EAFNOSUPPORT
-@comment errno 47 @c DO NOT REMOVE
+@errno{EAFNOSUPPORT, 47, Address family not supported by protocol}
The address family specified for a socket is not supported; it is
inconsistent with the protocol being used on the socket. @xref{Sockets}.
@end deftypevr
@comment errno.h
-@comment BSD: Address already in use
+@comment BSD
@deftypevr Macro int EADDRINUSE
-@comment errno 48 @c DO NOT REMOVE
+@errno{EADDRINUSE, 48, Address already in use}
The requested socket address is already in use. @xref{Socket Addresses}.
@end deftypevr
@comment errno.h
-@comment BSD: Cannot assign requested address
+@comment BSD
@deftypevr Macro int EADDRNOTAVAIL
-@comment errno 49 @c DO NOT REMOVE
+@errno{EADDRNOTAVAIL, 49, Cannot assign requested address}
The requested socket address is not available; for example, you tried
to give a socket a name that doesn't match the local host name.
@xref{Socket Addresses}.
@end deftypevr
@comment errno.h
-@comment BSD: Network is down
+@comment BSD
@deftypevr Macro int ENETDOWN
-@comment errno 50 @c DO NOT REMOVE
+@errno{ENETDOWN, 50, Network is down}
A socket operation failed because the network was down.
@end deftypevr
@comment errno.h
-@comment BSD: Network is unreachable
+@comment BSD
@deftypevr Macro int ENETUNREACH
-@comment errno 51 @c DO NOT REMOVE
+@errno{ENETUNREACH, 51, Network is unreachable}
A socket operation failed because the subnet containing the remote host
was unreachable.
@end deftypevr
@comment errno.h
-@comment BSD: Network dropped connection on reset
+@comment BSD
@deftypevr Macro int ENETRESET
-@comment errno 52 @c DO NOT REMOVE
+@errno{ENETRESET, 52, Network dropped connection on reset}
A network connection was reset because the remote host crashed.
@end deftypevr
@comment errno.h
-@comment BSD: Software caused connection abort
+@comment BSD
@deftypevr Macro int ECONNABORTED
-@comment errno 53 @c DO NOT REMOVE
+@errno{ECONNABORTED, 53, Software caused connection abort}
A network connection was aborted locally.
@end deftypevr
@comment errno.h
-@comment BSD: Connection reset by peer
+@comment BSD
@deftypevr Macro int ECONNRESET
-@comment errno 54 @c DO NOT REMOVE
+@errno{ECONNRESET, 54, Connection reset by peer}
A network connection was closed for reasons outside the control of the
local host, such as by the remote machine rebooting or an unrecoverable
protocol violation.
@end deftypevr
@comment errno.h
-@comment BSD: No buffer space available
+@comment BSD
@deftypevr Macro int ENOBUFS
-@comment errno 55 @c DO NOT REMOVE
+@errno{ENOBUFS, 55, No buffer space available}
The kernel's buffers for I/O operations are all in use. In GNU, this
error is always synonymous with @code{ENOMEM}; you may get one or the
other from network operations.
@end deftypevr
@comment errno.h
-@comment BSD: Transport endpoint is already connected
+@comment BSD
@deftypevr Macro int EISCONN
-@comment errno 56 @c DO NOT REMOVE
+@errno{EISCONN, 56, Transport endpoint is already connected}
You tried to connect a socket that is already connected.
@xref{Connecting}.
@end deftypevr
@comment errno.h
-@comment BSD: Transport endpoint is not connected
+@comment BSD
@deftypevr Macro int ENOTCONN
-@comment errno 57 @c DO NOT REMOVE
+@errno{ENOTCONN, 57, Transport endpoint is not connected}
The socket is not connected to anything. You get this error when you
try to transmit data over a socket, without first specifying a
destination for the data. For a connectionless socket (for datagram
@@ -637,111 +637,111 @@ protocols, such as UDP), you get @code{EDESTADDRREQ} instead.
@end deftypevr
@comment errno.h
-@comment BSD: Destination address required
+@comment BSD
@deftypevr Macro int EDESTADDRREQ
-@comment errno 39 @c DO NOT REMOVE
+@errno{EDESTADDRREQ, 39, Destination address required}
No default destination address was set for the socket. You get this
error when you try to transmit data over a connectionless socket,
without first specifying a destination for the data with @code{connect}.
@end deftypevr
@comment errno.h
-@comment BSD: Cannot send after transport endpoint shutdown
+@comment BSD
@deftypevr Macro int ESHUTDOWN
-@comment errno 58 @c DO NOT REMOVE
+@errno{ESHUTDOWN, 58, Cannot send after transport endpoint shutdown}
The socket has already been shut down.
@end deftypevr
@comment errno.h
-@comment BSD: Too many references: cannot splice
+@comment BSD
@deftypevr Macro int ETOOMANYREFS
-@comment errno 59 @c DO NOT REMOVE
+@errno{ETOOMANYREFS, 59, Too many references: cannot splice}
???
@end deftypevr
@comment errno.h
-@comment BSD: Connection timed out
+@comment BSD
@deftypevr Macro int ETIMEDOUT
-@comment errno 60 @c DO NOT REMOVE
+@errno{ETIMEDOUT, 60, Connection timed out}
A socket operation with a specified timeout receiv