te
Copyright (c) 2001, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
SCSI_GET_DEVICE_TYPE_SCSI_OPTIONS 9F "Nov 19, 2001"
NAME
scsi_get_device_type_scsi_options - look up per-device-type scsi-options property
SYNOPSIS
#include <sys/scsi/scsi.h>



int scsi_get_device_type_scsi_options(dev_info_t *dip,
 struct scsi_device *devp, int default_scsi_options);
INTERFACE LEVEL
illumos DDI specific (illumos DDI).
PARAMETERS
dip

Pointer to the device info node for this HBA driver.

devp

Pointer to a scsi_device(9S) structure of the target.

default_scsi_options

Value returned if no match is found.

DESCRIPTION
The scsi_get_device_type_scsi_options() function looks up the property device-type-scsi-options-list, which can be specified in the HBA's driver.conf(5) file. This property allows specification of scsi-options on a per-device-type basis.

The formal syntax is:

device-type-scsi-options-list = <duplet> [, <duplet> *];

where:

<duplet> := <vid+pid>, <scsi-options-property-name>

and:

<scsi-options-property-name> = <value>;

The string <vid+pid> is returned by the device on a SCSI inquiry command. This string can contain any character in the range 0x20-0x7e. Characters such as double quote (") or single quote ('), which are not permitted in property value strings, are represented by their octal equivalent (for example, \e042 and \e047). Trailing spaces can be truncated.

For example:

device-type-scsi-options-list=
 "SEAGATE ST32550W", "seagate-options",
 "EXABYTE EXB-2501". "exabyte-options",
 "IBM OEM DFHSS4S", "ibm-options";

seagate-options = 0x78;
exabyte-options = 0x58;
ibm-options = 0x378;

The scsi_get_device_type_scsi_options() function searches the list of duplets for a matching INQUIRY string. If a match is found, scsi_get_device_type_scsi_options() returns the corresponding value.

RETURN VALUES
scsi_get_device_type_scsi_options() returns the scsi-options value found, or if no match is found the default_scsi_options value passed in.
CONTEXT
This function can be called from kernel or interrupt context.
SEE ALSO
Writing Device Drivers