2011-07-05 10:07:37 -03: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 11:37:58 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									<!-- Keep it ordered alphabetically -->
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-15 20:28:40 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      <row>
							 | 
						
					
						
							
								
									
										
										
										
											2012-09-21 08:32:49 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									<entry>EAGAIN (aka EWOULDBLOCK)</entry>
							 | 
						
					
						
							
								
									
										
										
										
											2012-08-15 20:28:40 -03: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 08:32:49 -03: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 20:28:40 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									</entry>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      </row>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 11:37:58 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      <row>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									<entry>EBADF</entry>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-06 13:42:08 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									<entry>The file descriptor is not a valid.</entry>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 11:37:58 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      </row>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 10:07:37 -03: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 11:22:28 -03: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 11:37:58 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      <row>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									<entry>EFAULT</entry>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-06 13:42:08 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									<entry>There was a failure while copying data from/to userspace,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									       probably caused by an invalid pointer reference.</entry>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 11:37:58 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      </row>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 11:22:28 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      <row>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									<entry>EINVAL</entry>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-06 13:42:08 -03: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 11:37:58 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      </row>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 13:18:15 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      <row>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        <entry>ENODEV</entry>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									<entry>Device not found or was removed.</entry>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      </row>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 11:22:28 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      <row>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									<entry>ENOMEM</entry>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									<entry>There's not enough memory to handle the desired operation.</entry>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      </row>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-06 14:08:08 -03: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 11:22:28 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      <row>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									<entry>ENOSPC</entry>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 11:37:58 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									<entry>On USB devices, the stream ioctl's can return this error, meaning
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 11:22:28 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									       that this request would overcommit the usb bandwidth reserved
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									       for periodic transfers (up to 80% of the USB bandwidth).</entry>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 10:07:37 -03:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      </row>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-06 13:42:08 -03: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 10:07:37 -03:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    </tbody>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  </tgroup>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								</table>
							 | 
						
					
						
							
								
									
										
										
										
											2011-07-05 11:57:05 -03: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>
							 |