]> Git Repo - J-linux.git/blob - Documentation/userspace-api/gpio/error-codes.rst
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / Documentation / userspace-api / gpio / error-codes.rst
1 .. SPDX-License-Identifier: GPL-2.0
2
3 .. _gpio_errors:
4
5 *******************
6 GPIO Error Codes
7 *******************
8
9 .. _gpio-errors:
10
11 .. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
12
13 .. flat-table:: Common GPIO error codes
14     :header-rows:  0
15     :stub-columns: 0
16     :widths: 1 16
17
18     -  -  ``EAGAIN`` (aka ``EWOULDBLOCK``)
19
20        -  The device was opened in non-blocking mode and a read can't
21           be performed as there is no data available.
22
23     -  -  ``EBADF``
24
25        -  The file descriptor is not valid.
26
27     -  -  ``EBUSY``
28
29        -  The ioctl can't be handled because the device is busy. Typically
30           returned when an ioctl attempts something that would require the
31           usage of a resource that was already allocated. The ioctl must not
32           be retried without performing another action to fix the problem
33           first.
34
35     -  -  ``EFAULT``
36
37        -  There was a failure while copying data from/to userspace, probably
38           caused by an invalid pointer reference.
39
40     -  -  ``EINVAL``
41
42        -  One or more of the ioctl parameters are invalid or out of the
43           allowed range. This is a widely used error code.
44
45     -  -  ``ENODEV``
46
47        -  Device not found or was removed.
48
49     -  -  ``ENOMEM``
50
51        -  There's not enough memory to handle the desired operation.
52
53     -  -  ``EPERM``
54
55        -  Permission denied. Typically returned in response to an attempt
56           to perform an action incompatible with the current line
57           configuration.
58
59     -  -  ``EIO``
60
61        -  I/O error. Typically returned when there are problems communicating
62           with a hardware device or requesting features that hardware does not
63           support. This could indicate broken or flaky hardware.
64           It's a 'Something is wrong, I give up!' type of error.
65
66     -  - ``ENXIO``
67
68        -  Typically returned when a feature requiring interrupt support was
69           requested, but the line does not support interrupts.
70
71 .. note::
72
73   #. This list is not exhaustive; ioctls may return other error codes.
74      Since errors may have side effects such as a driver reset,
75      applications should abort on unexpected errors, or otherwise
76      assume that the device is in a bad state.
77
78   #. Request-specific error codes are listed in the individual
79      requests descriptions.
This page took 0.031877 seconds and 4 git commands to generate.