errno
—
kernel internal error numbers
This section provides an overview of the error numbers used internally by the
kernel and indicate neither success nor failure. These error numbers are not
returned to userland code.
Kernel functions that indicate success or failure by means of either 0 or an
errno(2) value sometimes have a
need to indicate that “special” handling is required at an upper
layer or, in the case of ioctl(2)
processing, that “nothing was wrong but the request was not
handled”. To handle these cases, some negative
errno(2) values are defined which
are handled by the kernel before returning a different
errno(2) value to userland or
simply zero.
The following is a list of the defined names and their meanings as
given in <errno.h>
. It is
important to note that the value -1 is not used, since it
is commonly used to indicate generic failure and leaves it up to the caller
to determine the action to take.
-2 EJUSTRETURN
Modify regs, just
return.
- No more work is required and the function should just return.
-3 ERESTART
Restart
syscall.
- The system call should be restarted. This typically means that the machine
dependent system call trap code will reposition the process's instruction
pointer or program counter to re-execute the current system call with no
other work required.
-4 EPASSTHROUGH
Operation not
handled by this layer.
- The operation was not handled and should be passed through to another
layer. This often occurs when processing
ioctl(2) requests since lower
layer processing may not handle something that subsequent code at a higher
level will.
-5 EDUPFD
Duplicate file
descriptor.
- This error is returned from the device open routine indicating that the
l_dupfd field contains the file descriptor
information to be returned to the caller, instead of the file descriptor
that has been opened already. This error is used by cloning device
multiplexors. Cloning device multiplexors open a new file descriptor and
associate that file descriptor with the appropriate cloned device. They
set l_dupfd to that new file descriptor and return
EDUPFD
.
vn_open(9) takes the file
descriptor pointed to by l_dupfd and copies it to
the file descriptor that the open call will return.
-6 EMOVEFD
Move file
descriptor.
- This error is similar to
EDUPFD
except that the
file descriptor in l_dupfd is closed after it has
been copied.
An errno
manual page appeared in
Version 6 AT&T UNIX. This
errno
manual page appeared in NetBSD
3.0.