1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * Copyright 1996-2002 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #ifndef _SYS_DCD_CONF_AUTOCONF_H 28 #define _SYS_DCD_CONF_AUTOCONF_H 29 30 #pragma ident "%Z%%M% %I% %E% SMI" 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 /* 37 * Following are for debugging purposes (few Sun drivers support this) 38 */ 39 #define DCD_DEBUG_TGT 0x1 /* debug statements in target drivers */ 40 #define DCD_DEBUG_LIB 0x2 /* debug statements in library */ 41 #define DCD_DEBUG_HA 0x4 /* debug statements in host adapters */ 42 43 /* 44 * DCD autoconfiguration definitions. 45 * 46 * The library routine dcd_probe() is provided as a service to target 47 * driver to check for bare-bones existence of a dcd device. It is 48 * defined as: 49 * 50 * int dcd_probe(struct scsi_device *devp, int (*callback())) 51 * 52 * dcd_probe() only executes an inquiry. 53 * 54 * Both functions return one of the integer values as defined below: 55 */ 56 57 #define DCDPROBE_EXISTS 0 /* device exists, inquiry data valid */ 58 #define DCDPROBE_NONCCS 1 /* device exists, no inquiry data */ 59 #define DCDPROBE_NORESP 2 /* device didn't respond */ 60 #define DCDPROBE_NOMEM 3 /* no space available for structures */ 61 #define DCDPROBE_FAILURE 4 /* polled cmnd failure- unspecified */ 62 #define DCDPROBE_BUSY 5 /* device was busy */ 63 #define DCDPROBE_NOMEM_CB 6 64 /* 65 * no space available for structures 66 * but callback request has been 67 * queued 68 */ 69 /* 70 * The following are the defines for the dcd_options. The dcd_options 71 * is a 32 bit quantity which is split in the following way to make it easier 72 * for the current HBA driver to program it easily. 73 * The following is the layout of the dcd_options bit. 74 * 75 * Bit 0, 1, 2, 3, 4 - Indicate the mode that is requested. 76 * Bit 5 represent the support for Ultra ATA. 77 * Bit 6 represent the support for Block Mode. 78 * Bit 7 will indicate PIO or DMA (set means DMA). 79 */ 80 81 82 /* The following are the defines for the PIO Modes. */ 83 #define DCD_PIO_MODE0 0 84 #define DCD_PIO_MODE1 1 85 #define DCD_PIO_MODE2 2 86 #define DCD_PIO_MODE3 3 87 #define DCD_PIO_MODE4 4 88 89 /* The following are the defines for the DMA modes */ 90 #define DCD_MULT_DMA_MODE0 0 91 #define DCD_MULT_DMA_MODE1 1 92 #define DCD_MULT_DMA_MODE2 2 93 #define DCD_MULT_DMA_MODE3 3 94 #define DCD_MULT_DMA_MODE4 4 95 #define DCD_MULT_DMA_MODE5 5 96 97 /* The following ate the generic defines for the dcd_options */ 98 #define DCD_BLOCK_MODE 0x40 99 #define DCD_ULTRA_ATA 0x20 100 #define DCD_DMA_MODE 0x80 101 102 #define DEFAULT_DCD_OPTIONS 0xA5 103 #define DCD_CHECK_ULTRA 0xA0 104 #define DCD_CHECK_DMA 0x80 105 #define DCD_CHECK_PIO 0x00 106 #ifdef __cplusplus 107 } 108 #endif 109 110 #endif /* _SYS_DCD_CONF_AUTOCONF_H */ 111