2011-07-05 13:07:37 +00:00
|
|
|
<title>Generic Error Codes</title>
|
|
|
|
|
|
|
|
<table frame="none" pgwide="1" id="gen-errors">
|
|
|
|
<title>Generic error codes</title>
|
|
|
|
<tgroup cols="2">
|
|
|
|
&cs-str;
|
|
|
|
<tbody valign="top">
|
2011-07-05 14:37:58 +00:00
|
|
|
<!-- Keep it ordered alphabetically -->
|
2012-08-15 23:28:40 +00:00
|
|
|
<row>
|
2012-09-21 11:32:49 +00:00
|
|
|
<entry>EAGAIN (aka EWOULDBLOCK)</entry>
|
2012-08-15 23:28:40 +00:00
|
|
|
<entry>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.
|
2012-09-21 11:32:49 +00:00
|
|
|
It is also returned when the ioctl would need to wait
|
|
|
|
for an event, but the device was opened in non-blocking mode.
|
2012-08-15 23:28:40 +00:00
|
|
|
</entry>
|
|
|
|
</row>
|
2011-07-05 14:37:58 +00:00
|
|
|
<row>
|
|
|
|
<entry>EBADF</entry>
|
2011-07-06 16:42:08 +00:00
|
|
|
<entry>The file descriptor is not a valid.</entry>
|
2011-07-05 14:37:58 +00:00
|
|
|
</row>
|
2011-07-05 13:07:37 +00:00
|
|
|
<row>
|
|
|
|
<entry>EBUSY</entry>
|
|
|
|
<entry>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
|
2011-07-05 14:22:28 +00:00
|
|
|
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).</entry>
|
|
|
|
</row>
|
2011-07-05 14:37:58 +00:00
|
|
|
<row>
|
|
|
|
<entry>EFAULT</entry>
|
2011-07-06 16:42:08 +00:00
|
|
|
<entry>There was a failure while copying data from/to userspace,
|
|
|
|
probably caused by an invalid pointer reference.</entry>
|
2011-07-05 14:37:58 +00:00
|
|
|
</row>
|
2011-07-05 14:22:28 +00:00
|
|
|
<row>
|
|
|
|
<entry>EINVAL</entry>
|
2011-07-06 16:42:08 +00:00
|
|
|
<entry>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.</entry>
|
2011-07-05 14:37:58 +00:00
|
|
|
</row>
|
2011-07-05 16:18:15 +00:00
|
|
|
<row>
|
|
|
|
<entry>ENODEV</entry>
|
|
|
|
<entry>Device not found or was removed.</entry>
|
|
|
|
</row>
|
2011-07-05 14:22:28 +00:00
|
|
|
<row>
|
|
|
|
<entry>ENOMEM</entry>
|
|
|
|
<entry>There's not enough memory to handle the desired operation.</entry>
|
|
|
|
</row>
|
2011-07-06 17:08:08 +00:00
|
|
|
<row>
|
|
|
|
<entry>ENOTTY</entry>
|
|
|
|
<entry>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.</entry>
|
|
|
|
</row>
|
2011-07-05 14:22:28 +00:00
|
|
|
<row>
|
|
|
|
<entry>ENOSPC</entry>
|
2011-07-05 14:37:58 +00:00
|
|
|
<entry>On USB devices, the stream ioctl's can return this error, meaning
|
2011-07-05 14:22:28 +00:00
|
|
|
that this request would overcommit the usb bandwidth reserved
|
|
|
|
for periodic transfers (up to 80% of the USB bandwidth).</entry>
|
2011-07-05 13:07:37 +00:00
|
|
|
</row>
|
2011-07-06 16:42:08 +00:00
|
|
|
<row>
|
|
|
|
<entry>EPERM</entry>
|
|
|
|
<entry>Permission denied. Can be returned if the device needs write
|
|
|
|
permission, or some special capabilities is needed
|
|
|
|
(e. g. root)</entry>
|
|
|
|
</row>
|
2011-07-05 13:07:37 +00:00
|
|
|
</tbody>
|
|
|
|
</tgroup>
|
|
|
|
</table>
|
2011-07-05 14:57:05 +00:00
|
|
|
|
|
|
|
<para>Note 1: ioctls may return other error codes. Since errors may have side
|
|
|
|
effects such as a driver reset, applications should abort on unexpected errors.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>Note 2: Request-specific error codes are listed in the individual
|
|
|
|
requests descriptions.</para>
|