···1717 :widths: 1 16181819192020- - .. row 12121-2222- - ``EAGAIN`` (aka ``EWOULDBLOCK``)2020+ - - ``EAGAIN`` (aka ``EWOULDBLOCK``)23212422 - The ioctl can't be handled because the device is in state where it2523 can't perform it. This could happen for example in case where···2527 is also returned when the ioctl would need to wait for an event,2628 but the device was opened in non-blocking mode.27292828- - .. row 22929-3030- - ``EBADF``3030+ - - ``EBADF``31313232 - The file descriptor is not a valid.33333434- - .. row 33535-3636- - ``EBUSY``3434+ - - ``EBUSY``37353836 - The ioctl can't be handled because the device is busy. This is3937 typically return while device is streaming, and an ioctl tried to···3844 ioctl must not be retried without performing another action to fix3945 the problem first (typically: stop the stream before retrying).40464141- - .. row 44242-4343- - ``EFAULT``4747+ - - ``EFAULT``44484549 - There was a failure while copying data from/to userspace, probably4650 caused by an invalid pointer reference.47514848- - .. row 54949-5050- - ``EINVAL``5252+ - - ``EINVAL``51535254 - One or more of the ioctl parameters are invalid or out of the5355 allowed range. This is a widely used error code. See the5456 individual ioctl requests for specific causes.55575656- - .. row 65757-5858- - ``ENODEV``5858+ - - ``ENODEV``59596060 - Device not found or was removed.61616262- - .. row 76363-6464- - ``ENOMEM``6262+ - - ``ENOMEM``65636664 - There's not enough memory to handle the desired operation.67656868- - .. row 86969-7070- - ``ENOTTY``6666+ - - ``ENOTTY``71677268 - The ioctl is not supported by the driver, actually meaning that7369 the required functionality is not available, or the file7470 descriptor is not for a media device.75717676- - .. row 97777-7878- - ``ENOSPC``7272+ - - ``ENOSPC``79738074 - On USB devices, the stream ioctl's can return this error, meaning8175 that this request would overcommit the usb bandwidth reserved for8276 periodic transfers (up to 80% of the USB bandwidth).83778484- - .. row 108585-8686- - ``EPERM``7878+ - - ``EPERM``87798880 - Permission denied. Can be returned if the device needs write8981 permission, or some special capabilities is needed (e. g. root)90829191- - .. row 119292-9393- - ``EIO``8383+ - - ``EIO``94849585 - I/O error. Typically used when there are problems communicating with9686 a hardware device. This could indicate broken or flaky hardware.