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 (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #ifndef _ATA_BLACKLIST_H 28 #define _ATA_BLACKLIST_H 29 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 /* 36 * This is the PCI-IDE chip blacklist 37 */ 38 typedef struct { 39 uint_t b_vendorid; 40 uint_t b_vmask; 41 uint_t b_deviceid; 42 uint_t b_dmask; 43 uint_t b_flags; 44 } pcibl_t; 45 46 extern pcibl_t ata_pciide_blacklist[]; 47 48 /* 49 * This is the drive blacklist 50 */ 51 typedef struct { 52 char *b_model; 53 uint_t b_flags; 54 } atabl_t; 55 56 extern atabl_t ata_drive_blacklist[]; 57 58 /* 59 * use the same flags for both lists 60 */ 61 #define ATA_BL_BOGUS 0x1 /* only use in compatibility mode */ 62 #define ATA_BL_NODMA 0x2 /* don't use DMA on this one */ 63 #define ATA_BL_1SECTOR 0x4 /* limit PIO transfers to 1 sector */ 64 #define ATA_BL_BMSTATREG_PIO_BROKEN 0x8 65 66 /* 67 * do not use bus master ide status register 68 * if not doing dma, or if it does not work 69 * properly when doing DMA (for example, on 70 * some lx50's!) 71 */ 72 73 74 #define ATA_BL_NORVRT 0x10 75 /* 76 * Don't enable revert to power-on 77 * defaults before rebooting 78 */ 79 80 #define ATA_BL_NO_SIMPLEX 0x20 81 /* 82 * Ignore simplex bit on this device 83 * if set 84 */ 85 #define ATA_BL_ATAPI_NODMA 0x40 86 /* 87 * Disable DMA for ATAPI devices because 88 * controller has trouble supporting it 89 */ 90 91 #ifdef __cplusplus 92 } 93 #endif 94 95 #endif /* _ATA_BLACKLIST_H */ 96