Annotation of Gnu-Mach/scsi/compat_30.h, revision 1.1.1.1

1.1       root        1: /* 
                      2:  * Mach Operating System
                      3:  * Copyright (c) 1991,1990 Carnegie Mellon University
                      4:  * All Rights Reserved.
                      5:  * 
                      6:  * Permission to use, copy, modify and distribute this software and its
                      7:  * documentation is hereby granted, provided that both the copyright
                      8:  * notice and this permission notice appear in all copies of the
                      9:  * software, derivative works or modified versions, and any portions
                     10:  * thereof, and that both notices appear in supporting documentation.
                     11:  * 
                     12:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
                     13:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
                     14:  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     15:  * 
                     16:  * Carnegie Mellon requests users of this software to return to
                     17:  * 
                     18:  *  Software Distribution Coordinator  or  [email protected]
                     19:  *  School of Computer Science
                     20:  *  Carnegie Mellon University
                     21:  *  Pittsburgh PA 15213-3890
                     22:  * 
                     23:  * any improvements or extensions that they make and grant Carnegie Mellon
                     24:  * the rights to redistribute these changes.
                     25:  */
                     26: /*
                     27:  *     File: compat_30.h
                     28:  *     Author: Alessandro Forin, Carnegie Mellon University
                     29:  *     Date:   4/91
                     30:  *
                     31:  *     Compatibility defs to retrofit Mach 3.0 drivers
                     32:  *     into Mach 2.6.
                     33:  */
                     34: 
                     35: #ifndef        _SCSI_COMPAT_30_
                     36: #define        _SCSI_COMPAT_30_
                     37: 
                     38: #include <kern/assert.h>
                     39: 
                     40: #ifdef MACH_KERNEL
                     41: /*
                     42:  * Mach 3.0 compiles with these definitions
                     43:  */
                     44: 
                     45: #include <device/param.h>
                     46: #include <device/io_req.h>
                     47: #include <device/device_types.h>
                     48: #include <device/disk_status.h>
                     49: 
                     50: /*
                     51:  * Scratch temporary in io_req structure (for error handling)
                     52:  */
                     53: #define        io_temporary    io_error
                     54: 
                     55: #else  /*MACH_KERNEL*/
                     56: /*
                     57:  * Mach 2.x compiles with these definitions
                     58:  */
                     59: 
                     60: /* ??? */
                     61: typedef        int     dev_mode_t;
                     62: typedef int    *dev_status_t;  /* Variable-length array of integers */
                     63: /* ??? */
                     64: 
                     65: /* Buffer structures */
                     66: 
                     67: typedef        int     io_return_t;
                     68: 
                     69: #include <sys/param.h>
                     70: #include <sys/buf.h>
                     71: 
                     72: #define        io_req  buf
                     73: typedef        struct buf      *io_req_t;
                     74: 
                     75: #define        io_req_alloc(ior,size)  ior = geteblk(size)
                     76: #define        io_req_free(ior)        brelse(ior)
                     77: 
                     78: /*
                     79:  * Redefine fields for drivers using new names
                     80:  */
                     81: #define        io_op           b_flags
                     82: #define        io_count        b_bcount
                     83: #define        io_error        b_error
                     84: #define        io_unit         b_dev
                     85: #define        io_recnum       b_blkno
                     86: #define        io_residual     b_resid
                     87: #define        io_data         b_un.b_addr
                     88: #define        io_done         b_iodone
                     89: 
                     90: /*
                     91:  * Redefine fields for driver request list heads, using new names.
                     92:  */
                     93: #define        io_next         av_forw
                     94: #define        io_prev         av_back
                     95: /*#define      io_next         b_actf*/
                     96: /*#define      io_prev         b_actl*/
                     97: #define        io_link         b_forw
                     98: #define        io_rlink        b_back
                     99: /*#define      io_count        b_active*/
                    100: /*#define      io_residual     b_errcnt*/
                    101: #define        io_alloc_size   b_bufsize
                    102: 
                    103: /*
                    104:  * Scratch temporary in io_req structure (for error handling)
                    105:  */
                    106: #define        io_temporary    b_pfcent
                    107: 
                    108: /*
                    109:  * Redefine flags
                    110:  */
                    111: #define        IO_WRITE        B_WRITE
                    112: #define        IO_READ         B_READ
                    113: #define        IO_OPEN         B_OPEN
                    114: #define        IO_DONE         B_DONE
                    115: #define        IO_ERROR        B_ERROR
                    116: #define        IO_BUSY         B_BUSY
                    117: #define        IO_WANTED       B_WANTED
                    118: #define        IO_BAD          B_BAD
                    119: #define        IO_CALL         B_CALL
                    120: #define        IO_INTERNAL     B_MD1
                    121: 
                    122: #define        IO_SPARE_START  B_MD1
                    123: 
                    124: #include <sys/disklabel.h>
                    125: 
                    126: /* Error codes */
                    127: 
                    128: #include <sys/errno.h>
                    129: 
                    130: #define        D_SUCCESS               ESUCCESS
                    131: #define        D_IO_ERROR              EIO
                    132: #define        D_NO_SUCH_DEVICE        ENXIO
                    133: #define        D_INVALID_SIZE          EINVAL
                    134: #define        D_ALREADY_OPEN          EBUSY
                    135: #define        D_INVALID_OPERATION     EINVAL
                    136: #define D_NO_MEMORY            ENOMEM
                    137: #define D_WOULD_BLOCK          EWOULDBLOCK
                    138: #define D_DEVICE_DOWN          EIO
                    139: #define        D_READ_ONLY             EROFS
                    140: 
                    141: /*
                    142:  * Debugging support
                    143:  */
                    144: #define db_printf              kdbprintf
                    145: #define db_printsym(s,m)       kdbpsymoff(s,1,"")
                    146: 
                    147: /*
                    148:  * Miscellaneous utils
                    149:  */
                    150: 
                    151: #define        check_memory(addr,dow)  ((dow) ? wbadaddr(addr,4) : badaddr(addr,4))
                    152: 
                    153: #include <sys/kernel.h>                /* for hz */
                    154: #include <scsi/adapters/scsi_user_dma.h>
                    155: 
                    156: #ifdef DECSTATION
                    157: #include <mach/mips/vm_param.h>        /* for page size */
                    158: #define        ULTRIX_COMPAT   1       /* support for rzdisk disk formatter  */
                    159: #endif /*DECSTATION*/
                    160: 
                    161: #endif /*MACH_KERNEL*/
                    162: 
                    163: #endif /*_SCSI_COMPAT_30_*/

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.