mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.9 KiB
96 lines
2.9 KiB
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
|
|
|
.. _gen_errors: |
|
|
|
******************* |
|
Generic Error Codes |
|
******************* |
|
|
|
|
|
.. _gen-errors: |
|
|
|
.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| |
|
|
|
.. flat-table:: Generic error codes |
|
:header-rows: 0 |
|
:stub-columns: 0 |
|
:widths: 1 16 |
|
|
|
|
|
- - ``EAGAIN`` (aka ``EWOULDBLOCK``) |
|
|
|
- The ioctl can't be handled because the device is in state where it |
|
can't perform it. This could happen for example in case where |
|
device is sleeping and ioctl is performed to query statistics. It |
|
is also returned when the ioctl would need to wait for an event, |
|
but the device was opened in non-blocking mode. |
|
|
|
- - ``EBADF`` |
|
|
|
- The file descriptor is not a valid. |
|
|
|
- - ``EBUSY`` |
|
|
|
- The ioctl can't be handled because the device is busy. This is |
|
typically return while device is streaming, and an ioctl tried to |
|
change something that would affect the stream, or would require |
|
the usage of a hardware resource that was already allocated. The |
|
ioctl must not be retried without performing another action to fix |
|
the problem first (typically: stop the stream before retrying). |
|
|
|
- - ``EFAULT`` |
|
|
|
- There was a failure while copying data from/to userspace, probably |
|
caused by an invalid pointer reference. |
|
|
|
- - ``EINVAL`` |
|
|
|
- One or more of the ioctl parameters are invalid or out of the |
|
allowed range. This is a widely used error code. See the |
|
individual ioctl requests for specific causes. |
|
|
|
- - ``ENODEV`` |
|
|
|
- Device not found or was removed. |
|
|
|
- - ``ENOMEM`` |
|
|
|
- There's not enough memory to handle the desired operation. |
|
|
|
- - ``ENOTTY`` |
|
|
|
- The ioctl is not supported by the driver, actually meaning that |
|
the required functionality is not available, or the file |
|
descriptor is not for a media device. |
|
|
|
- - ``ENOSPC`` |
|
|
|
- On USB devices, the stream ioctl's can return this error, meaning |
|
that this request would overcommit the usb bandwidth reserved for |
|
periodic transfers (up to 80% of the USB bandwidth). |
|
|
|
- - ``EPERM`` |
|
|
|
- Permission denied. Can be returned if the device needs write |
|
permission, or some special capabilities is needed (e. g. root) |
|
|
|
- - ``EIO`` |
|
|
|
- I/O error. Typically used when there are problems communicating with |
|
a hardware device. This could indicate broken or flaky hardware. |
|
It's a 'Something is wrong, I give up!' type of error. |
|
|
|
- - ``ENXIO`` |
|
|
|
- No device corresponding to this device special file exists. |
|
|
|
|
|
.. note:: |
|
|
|
#. This list is not exhaustive; ioctls may return other error codes. |
|
Since errors may have side effects such as a driver reset, |
|
applications should abort on unexpected errors, or otherwise |
|
assume that the device is in a bad state. |
|
|
|
#. Request-specific error codes are listed in the individual |
|
requests descriptions.
|
|
|