man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: July 2014
 
 

scsi_get_device_type_string(9F)

Name

scsi_get_device_type_string - look up per-device-type, returning matching information string

Synopsis

#include <sys/scsi/scsi.h>

char *scsi_get_device_type_string(char *prop_name,
		dev_info_t  *dip, struct scsi_device  *devp);

Interface Level

Solaris DDI specific (Solaris DDI).

Parameters

prop_name

Name of string array property that contains a list of paired device-type information.

dip

Pointer to the device info node for this HBA driver.

devp

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

Description

The scsi_get_device_type_string() function looks up the prop_name property, which can be specified in the HBA's driver.conf(4) file. This property allows specification of per-device-type information. The syntax for prop_name in a driver.conf(4) file is:

The formal syntax is:

prop_name = <duplet> [, <duplet> *];

where:

<duplet> := "<vid+pid>", "<information"

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, \042 and \047). Trailing spaces can be truncated.

For example:

scsi_vhci_failover_override =
	    "STK     FLEXLINE 400",	"f_asym_lsi", 
 	    "SUN     T4",		"f_tpgs";;

The scsi_get_device_type_string() function searches the list of duplets for a matching INQUIRY string. If a match is found, scsi_get_device_type_string returns a copy of the <information> string. The meaning of the returned < information> string is determined by the caller.

Return Values

scsi_get_device_type_string() returns a copy of the matching <information> string, or if no match is found, NULL is returned. When a non-NULL value is returned, the caller is responsible for freeing the < information> string via:

kmem_free(info, strlen(info) + 1);

Context

This function can be called from kernel or interrupt context.

See Also

driver.conf(4)

Writing Device Drivers