kopia lustrzana https://gitlab.com/sane-project/backends
				
				
				
			
		
			
				
	
	
		
			136 wiersze
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			136 wiersze
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C
		
	
	
/* sane - Scanner Access Now Easy.
 | 
						|
 | 
						|
   This file is part of the SANE package.
 | 
						|
 | 
						|
   SANE is free software; you can redistribute it and/or modify it under
 | 
						|
   the terms of the GNU General Public License as published by the Free
 | 
						|
   Software Foundation; either version 2 of the License, or (at your
 | 
						|
   option) any later version.
 | 
						|
 | 
						|
   SANE is distributed in the hope that it will be useful, but WITHOUT
 | 
						|
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
						|
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
						|
   for more details.
 | 
						|
 | 
						|
   You should have received a copy of the GNU General Public License
 | 
						|
   along with sane; see the file COPYING.
 | 
						|
   If not, see <https://www.gnu.org/licenses/>.
 | 
						|
 | 
						|
   As a special exception, the authors of SANE give permission for
 | 
						|
   additional uses of the libraries contained in this release of SANE.
 | 
						|
 | 
						|
   The exception is that, if you link a SANE library with other files
 | 
						|
   to produce an executable, this does not by itself cause the
 | 
						|
   resulting executable to be covered by the GNU General Public
 | 
						|
   License.  Your use of that executable is in no way restricted on
 | 
						|
   account of linking the SANE library code into it.
 | 
						|
 | 
						|
   This exception does not, however, invalidate any other reasons why
 | 
						|
   the executable file might be covered by the GNU General Public
 | 
						|
   License.
 | 
						|
 | 
						|
   If you submit changes to SANE to the maintainers to be included in
 | 
						|
   a subsequent release, you agree by submitting the changes that
 | 
						|
   those changes may be distributed with this exception intact.
 | 
						|
 | 
						|
   If you write modifications of your own for SANE, it is your choice
 | 
						|
   whether to permit this exception to apply to your modifications.
 | 
						|
   If you do not wish that, delete this exception notice.
 | 
						|
*/
 | 
						|
 | 
						|
#ifndef SG_ERR_H
 | 
						|
#define SG_ERR_H
 | 
						|
 | 
						|
/* Linux sg error codes taken from Doug Gilbert's sg_utils:
 | 
						|
   http://www.torque.net/sg/ */
 | 
						|
 | 
						|
/* Some of the following error/status codes are exchanged between the
 | 
						|
   various layers of the SCSI sub-system in Linux and should never
 | 
						|
   reach the user. They are placed here for completeness. What appears
 | 
						|
   here is copied from drivers/scsi/scsi.h which is not visible in
 | 
						|
   the user space. */
 | 
						|
 | 
						|
/* The following are 'host_status' codes */
 | 
						|
#ifndef DID_OK
 | 
						|
#define DID_OK 0x00
 | 
						|
#endif
 | 
						|
#ifndef DID_NO_CONNECT
 | 
						|
#define DID_NO_CONNECT 0x01     /* Unable to connect before timeout */
 | 
						|
#define DID_BUS_BUSY 0x02       /* Bus remain busy until timeout */
 | 
						|
#define DID_TIME_OUT 0x03       /* Timed out for some other reason */
 | 
						|
#define DID_BAD_TARGET 0x04     /* Bad target (id?) */
 | 
						|
#define DID_ABORT 0x05          /* Told to abort for some other reason */
 | 
						|
#define DID_PARITY 0x06         /* Parity error (on SCSI bus) */
 | 
						|
#define DID_ERROR 0x07          /* Internal error */
 | 
						|
#define DID_RESET 0x08          /* Reset by somebody */
 | 
						|
#define DID_BAD_INTR 0x09       /* Received an unexpected interrupt */
 | 
						|
#define DID_PASSTHROUGH 0x0a    /* Force command past mid-level */
 | 
						|
#define DID_SOFT_ERROR 0x0b     /* The low-level driver wants a retry */
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* These defines are to isolate applictaions from kernel define changes */
 | 
						|
#define SG_ERR_DID_OK           DID_OK
 | 
						|
#define SG_ERR_DID_NO_CONNECT   DID_NO_CONNECT
 | 
						|
#define SG_ERR_DID_BUS_BUSY     DID_BUS_BUSY
 | 
						|
#define SG_ERR_DID_TIME_OUT     DID_TIME_OUT
 | 
						|
#define SG_ERR_DID_BAD_TARGET   DID_BAD_TARGET
 | 
						|
#define SG_ERR_DID_ABORT        DID_ABORT
 | 
						|
#define SG_ERR_DID_PARITY       DID_PARITY
 | 
						|
#define SG_ERR_DID_ERROR        DID_ERROR
 | 
						|
#define SG_ERR_DID_RESET        DID_RESET
 | 
						|
#define SG_ERR_DID_BAD_INTR     DID_BAD_INTR
 | 
						|
#define SG_ERR_DID_PASSTHROUGH  DID_PASSTHROUGH
 | 
						|
#define SG_ERR_DID_SOFT_ERROR   DID_SOFT_ERROR
 | 
						|
 | 
						|
/* The following are 'driver_status' codes */
 | 
						|
#ifndef DRIVER_OK
 | 
						|
#define DRIVER_OK 0x00
 | 
						|
#endif
 | 
						|
#ifndef DRIVER_BUSY
 | 
						|
#define DRIVER_BUSY 0x01
 | 
						|
#define DRIVER_SOFT 0x02
 | 
						|
#define DRIVER_MEDIA 0x03
 | 
						|
#define DRIVER_ERROR 0x04
 | 
						|
#define DRIVER_INVALID 0x05
 | 
						|
#define DRIVER_TIMEOUT 0x06
 | 
						|
#define DRIVER_HARD 0x07
 | 
						|
#define DRIVER_SENSE 0x08       /* Sense_buffer has been set */
 | 
						|
 | 
						|
/* Following "suggests" are "or-ed" with one of previous 8 entries */
 | 
						|
#define SUGGEST_RETRY 0x10
 | 
						|
#define SUGGEST_ABORT 0x20
 | 
						|
#define SUGGEST_REMAP 0x30
 | 
						|
#define SUGGEST_DIE 0x40
 | 
						|
#define SUGGEST_SENSE 0x80
 | 
						|
#define SUGGEST_IS_OK 0xff
 | 
						|
#endif
 | 
						|
#ifndef DRIVER_MASK
 | 
						|
#define DRIVER_MASK 0x0f
 | 
						|
#endif
 | 
						|
#ifndef SUGGEST_MASK
 | 
						|
#define SUGGEST_MASK 0xf0
 | 
						|
#endif
 | 
						|
 | 
						|
/* These defines are to isolate applictaions from kernel define changes */
 | 
						|
#define SG_ERR_DRIVER_OK        DRIVER_OK
 | 
						|
#define SG_ERR_DRIVER_BUSY      DRIVER_BUSY
 | 
						|
#define SG_ERR_DRIVER_SOFT      DRIVER_SOFT
 | 
						|
#define SG_ERR_DRIVER_MEDIA     DRIVER_MEDIA
 | 
						|
#define SG_ERR_DRIVER_ERROR     DRIVER_ERROR
 | 
						|
#define SG_ERR_DRIVER_INVALID   DRIVER_INVALID
 | 
						|
#define SG_ERR_DRIVER_TIMEOUT   DRIVER_TIMEOUT
 | 
						|
#define SG_ERR_DRIVER_HARD      DRIVER_HARD
 | 
						|
#define SG_ERR_DRIVER_SENSE     DRIVER_SENSE
 | 
						|
#define SG_ERR_SUGGEST_RETRY    SUGGEST_RETRY
 | 
						|
#define SG_ERR_SUGGEST_ABORT    SUGGEST_ABORT
 | 
						|
#define SG_ERR_SUGGEST_REMAP    SUGGEST_REMAP
 | 
						|
#define SG_ERR_SUGGEST_DIE      SUGGEST_DIE
 | 
						|
#define SG_ERR_SUGGEST_SENSE    SUGGEST_SENSE
 | 
						|
#define SG_ERR_SUGGEST_IS_OK    SUGGEST_IS_OK
 | 
						|
#define SG_ERR_DRIVER_MASK      DRIVER_MASK
 | 
						|
#define SG_ERR_SUGGEST_MASK     SUGGEST_MASK
 | 
						|
 | 
						|
#endif
 |