[BACK]Return to scsi_scanner.h CVS log [TXT][DIR] Up to [local] / sys / scsi

Annotation of sys/scsi/scsi_scanner.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: scsi_scanner.h,v 1.10 2005/12/10 01:30:13 deraadt Exp $       */
                      2:
                      3: /*
                      4:  * Copyright (c) 1995 Kenneth Stailey.  All rights reserved.
                      5:  *   modified for configurable scanner support by Joachim Koenig
                      6:  *
                      7:  * Redistribution and use in source and binary forms, with or without
                      8:  * modification, are permitted provided that the following conditions
                      9:  * are met:
                     10:  * 1. Redistributions of source code must retain the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer.
                     12:  * 2. Redistributions in binary form must reproduce the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer in the
                     14:  *    documentation and/or other materials provided with the distribution.
                     15:  * 3. All advertising materials mentioning features or use of this software
                     16:  *    must display the following acknowledgement:
                     17:  *     This product includes software developed by Kenneth Stailey.
                     18:  * 4. The name of the author may not be used to endorse or promote products
                     19:  *    derived from this software without specific prior written permission.
                     20:  *
                     21:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     22:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     23:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     24:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     25:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     26:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     27:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     28:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     29:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
                     30:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     31:  */
                     32:
                     33: /*
                     34:  * SCSI scanner interface description
                     35:  */
                     36:
                     37: #ifndef        _SCSI_SCANNER_H_
                     38: #define _SCSI_SCANNER_H_
                     39:
                     40: /* SCSI scanner commands */
                     41: #define GET_IMAGE_STATUS       0x0f
                     42: #define WRITE_BIG              0x2a
                     43: #define OBJECT_POSITION                0x31
                     44:
                     45: /* generic scanner command formats */
                     46:
                     47: struct scsi_r_scanner {
                     48: #define        READ_BIG                0x28
                     49:        u_int8_t opcode;
                     50:        u_int    lun:3;
                     51:        u_int    res1:5;
                     52:        u_int8_t code;
                     53:        u_int8_t res2;
                     54:        u_int8_t qualifier;
                     55:        u_int8_t len[3];
                     56:        u_int8_t control;
                     57: };
                     58:
                     59: struct scsi_get_buffer_status {
                     60: #define GET_BUFFER_STATUS      0x34
                     61:        u_int8_t opcode;
                     62:        u_int    lun:3;
                     63:        u_int    res1:4;
                     64:        u_int    wait:1;
                     65:        u_int8_t res2[5];
                     66:        u_int8_t len[2];
                     67:        u_int8_t control;
                     68: };
                     69:
                     70: struct scsi_rw_scanner {
                     71: #define        READ                    0x08
                     72: #define WRITE                  0x0a
                     73:        u_int8_t opcode;
                     74:        u_int8_t byte2;
                     75: #define        SRW_FIXED               0x01
                     76:        u_int8_t len[3];
                     77:        u_int8_t control;
                     78: };
                     79:
                     80: struct scsi_start_stop {
                     81: #define START_STOP     0x1b
                     82:        u_int8_t opcode;
                     83:        u_int8_t byte2;
                     84:        u_int8_t unused[2];
                     85:        u_int8_t how;
                     86: #define        SSS_STOP                0x00
                     87: #define        SSS_START               0x01
                     88: #define        SSS_LOEJ                0x02
                     89:        u_int8_t control;
                     90: };
                     91:
                     92: struct scsi_set_window {
                     93: #define SET_WINDOW             0x24 /* set params of image area and windows */
                     94: #define GET_WINDOW             0x25
                     95:        u_int8_t opcode;
                     96:        u_int8_t byte2;
                     97:        u_int8_t reserved[4];
                     98:        u_int8_t len[3];
                     99:        u_int8_t control;
                    100: };
                    101:
                    102: struct scsi_window_data {
                    103:        u_int8_t reserved[6];           /* window header */
                    104:        u_int8_t window_desc_len[2];    /* ditto */
                    105:        u_int8_t window_id;             /* must be zero */
                    106:        u_int    res1:7;
                    107:        u_int    auto_bit:1;
                    108:        u_int8_t x_res[2];
                    109:        u_int8_t y_res[2];
                    110:        u_int8_t x_org[4];
                    111:        u_int8_t y_org[4];
                    112:        u_int8_t width[4];
                    113:        u_int8_t length[4];
                    114:        u_int8_t brightness;
                    115:        u_int8_t threshold;
                    116:        u_int8_t contrast;
                    117:        u_int8_t image_comp;            /* image composition (data type) */
                    118:        u_int8_t bits_per_pixel;
                    119:        u_int8_t halftone_pattern[2];
                    120:        u_int    rif:1;                 /* reverse image format (mono negative) */
                    121:        u_int    res2:4;
                    122:        u_int    pad_type:3;
                    123:        u_int8_t bit_ordering[2];
                    124:        u_int8_t compression_type;
                    125:        u_int8_t compression_arg;
                    126:        u_int8_t res3[6];
                    127: };
                    128:
                    129: /* mustek scsi commands */
                    130:
                    131: #define MUSTEK_SET_WINDOW      0x04    /* set image area and windows */
                    132: #define MUSTEK_ADF             0x10    /* ADF and backtracking selection */
                    133: #define MUSTEK_LUT             0x55    /* look up table download */
                    134:
                    135: #endif /* _SCSI_SCANNER_H_ */

CVSweb