Annotation of drvEIDE/EIDE.drvproj/EIDE.lksproj/atapi_extern.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * "Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
                      7:  * Reserved.  This file contains Original Code and/or Modifications of
                      8:  * Original Code as defined in and that are subject to the Apple Public
                      9:  * Source License Version 1.0 (the 'License').  You may not use this file
                     10:  * except in compliance with the License.  Please obtain a copy of the
                     11:  * License at http://www.apple.com/publicsource and read it before using
                     12:  * this file.
                     13:  * 
                     14:  * The Original Code and all software distributed under the License are
                     15:  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     19:  * License for the specific language governing rights and limitations
                     20:  * under the License."
                     21:  * 
                     22:  * @APPLE_LICENSE_HEADER_END@
                     23:  */
                     24: /*
                     25:  * Copyright 1997-1998 by Apple Computer, Inc., All rights reserved.
                     26:  * Copyright 1994-1997 NeXT Software, Inc., All rights reserved.
                     27:  *
                     28:  * atapi_external.h - External definitions for ATAPI driver. 
                     29:  *
                     30:  * HISTORY 
                     31:  * 1-Sep-1994   Rakesh Dubey at NeXT
                     32:  *     Created.
                     33:  */
                     34: 
                     35: 
                     36: #ifdef DRIVER_PRIVATE
                     37: 
                     38: #ifndef        _BSD_DEV_ATAPI_EXTERN_H
                     39: #define _BSD_DEV_ATAPI_EXTERN_H
                     40: 
                     41: #import <sys/types.h>
                     42: #import <sys/ioctl.h>
                     43: #if (IO_DRIVERKIT_VERSION == 330)
                     44: #ifdef KERNEL
                     45: #import <machdep/machine/pmap.h>
                     46: #import <vm/vm_map.h>
                     47: #endif KERNEL
                     48: #endif
                     49: #import <mach/boolean.h>
                     50: #import <mach/vm_param.h>
                     51: 
                     52: /*
                     53:  * How does the device respond to an ATAPI packet command. 
                     54:  */
                     55: #define ATAPI_CMD_DRQ_INT                      0x01
                     56: #define ATAPI_CMD_DRQ_SLOW                     0x00
                     57: #define ATAPI_CMD_DRQ_FAST                     0x02
                     58: 
                     59: #define ATAPI_DEVICE_DIRECT_ACCESS             0x00
                     60: #define ATAPI_DEVICE_CD_ROM                    0x05
                     61: #define ATAPI_DEVICE_OPTICAL                   0x07
                     62: #define ATAPI_DEVICE_TAPE                      0x01
                     63: #define ATAPI_DEVICE_UNKNOWN                   0x1f
                     64: 
                     65: /*
                     66:  * ATAPI commands -- as defined in the SFF-8020, Revison 1.2 
                     67:  */
                     68: 
                     69: /*
                     70:  * Mandatory commands. 
                     71:  */
                     72: #define        ATAPI_PACKET                    0xa0
                     73: #define        ATAPI_IDENTIFY_DRIVE            0xa1
                     74: #define        ATAPI_SOFT_RESET                0x08
                     75: 
                     76: 
                     77: typedef        int atapi_return_t;
                     78: 
                     79: /*
                     80:  * Defines for ATAPI error register. Upper four bits are sense key.
                     81:  */
                     82: #define MEDIA_CHANGE_REQUEST                   0x08
                     83: #define CMD_ABORTED                            0x04
                     84: #define END_OF_MEDIA                           0x02
                     85: #define ILLEGAL_LENGTH                         0x01
                     86: 
                     87: /*
                     88:  * Defines for the feature register. 
                     89:  */
                     90: #define DMA_TRANSFERS                          0x01
                     91: 
                     92: /*
                     93:  * Defines for the interrupt reason register. 
                     94:  */
                     95: #define IO_DIRECTION                           0x02    /* 1 --> to host */
                     96: #define CMD_OR_DATA                            0x01    /* 0 --> user data */
                     97: 
                     98: /*
                     99:  * Other defines are same as in the case of ATA standard. TBD: Should we
                    100:  * redefine all ATAPI registers to keep things completely separate? 
                    101:  */
                    102: 
                    103: 
                    104: /*
                    105:  * ATAPI General configuration register. 
                    106:  */
                    107: typedef        struct  _atapiGenConfig {
                    108:     unsigned short
                    109:        cmdPacketSize:2,                /* */
                    110:        rsvd1:3,                        /* */
                    111:        cmdDrqType:2,                   /* */
                    112:        removable:1,                    /* */
                    113:        deviceType:5,                   /* */
                    114:        rsvd2:1,                        /* */
                    115:        protocolType:2;                 /* */
                    116: } atapiGenConfig_t;
                    117: 
                    118: /*
                    119:  * ATAPI sense keys, page 157 SFF-8020, Rev 1.2 
                    120:  */
                    121: #define ATAPI_SENSE_NONE                       0x00
                    122: #define ATAPI_SENSE_RECOVERED_ERROR            0x01
                    123: #define ATAPI_SENSE_NOT_READY                  0x02
                    124: #define ATAPI_SENSE_MEDIUM_ERROR               0x03
                    125: #define ATAPI_SENSE_HARDWARE_ERROR             0x04
                    126: #define ATAPI_SENSE_ILLEGAL_REQUEST            0x05
                    127: #define ATAPI_SENSE_UNIT_ATTENTION             0x06
                    128: #define ATAPI_SENSE_DATA_PROTECT               0x07
                    129: #define ATAPI_SENSE_ABORTED_COMMAND            0x0b
                    130: #define ATAPI_SENSE_MISCOMPARE                 0x0e
                    131: 
                    132: #endif _BSD_DEV_ATAPI_EXTERN_HH
                    133: 
                    134: #endif DRIVER_PRIVATE

unix.superglobalmegacorp.com

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