Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

scsi_log(9f) [sunos man page]

scsi_log(9F)						   Kernel Functions for Drivers 					      scsi_log(9F)

NAME
scsi_log - display a SCSI-device-related message SYNOPSIS
#include <sys/scsi/scsi.h> #include <sys/cmn_err.h> void scsi_log(dev_info_t *dip, char *drv_name, uint_t level, const char *fmt, ...); INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). PARAMETERS
dip Pointer to the dev_info structure. drv_name String naming the device. level Error level. fmt Display format. DESCRIPTION
scsi_log() is a utility function that displays a message via the cmn_err(9F) routine. The error levels that can be passed in to this func- tion are CE_PANIC, CE_WARN, CE_NOTE, CE_CONT, and SCSI_DEBUG. The last level is used to assist in displaying debug messages to the console only. drv_name is the short name by which this device is known; example disk driver names are sd and cmdk. If the dev_info_t pointer is NULL, then the drv_name will be used with no unit or long name. If the first character in format is: o An exclamation mark (!), the message goes only to the system buffer. o A caret (^), the message goes only to the console. o A question mark (?) and level is CE_CONT, the message is always sent to the system buffer, but is written to the console only when the system has been booted in verbose mode. See kernel(1M). If neither condition is met, the ? character has no effect and is simply ignored. All formatting conversions in use by cmn_err() also work with scsi_log(). CONTEXT
scsi_log() may be called from user or interrupt context. SEE ALSO
kernel(1M), sd(7D), cmn_err(9F), scsi_errmsg(9F) Writing Device Drivers SunOS 5.10 18 Nov 2004 scsi_log(9F)

Check Out this Related Man Page

scsi_errmsg(9F) 					   Kernel Functions for Drivers 					   scsi_errmsg(9F)

NAME
scsi_errmsg - display a SCSI request sense message SYNOPSIS
#include <sys/scsi/scsi.h> void scsi_errmsg(struct scsi_device *devp, struct scsi_pkt *pktp, char *drv_name, int severity, daddr_t blkno, daddr_t err_blkno, struct scsi_key_strings *cmdlist, struct scsi_extended_sense *sensep); INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). PARAMETERS
devp Pointer to the scsi_device(9S) structure. pktp Pointer to a scsi_pkt(9S) structure. drv_name String used by scsi_log(9F). severity Error severity level, maps to severity strings below. blkno Requested block number. err_blkno Error block number. cmdlist An array of SCSI command description strings. sensep A pointer to a scsi_extended_sense(9S) structure. DESCRIPTION
scsi_errmsg() interprets the request sense information in the sensep pointer and generates a standard message that is displayed using scsi_log(9F). The first line of the message is always a CE_WARN, with the continuation lines being CE_CONT. sensep may be NULL, in which case no sense key or vendor information is displayed. The driver should make the determination as to when to call this function based on the severity of the failure and the severity level that the driver wants to report. The scsi_device(9S) structure denoted by devp supplies the identification of the device that requested the display. severity selects which string is used in the "Error Level:" reporting, according to the following table: Severity Value: String: SCSI_ERR_ALL All SCSI_ERR_UNKNOWN Unknown SCSI_ERR_INFO Informational SCSI_ERR_RECOVERE Recovered SCSI_ERR_RETRYABL Retryable SCSI_ERR_FATAL Fatal blkno is the block number of the original request that generated the error. err_blkno is the block number where the error occurred. cmdlist is a mapping table for translating the SCSI command code in pktp to the actual command string. The cmdlist is described in the structure below: struct scsi_key_strings { int key; char *message; }; For a basic SCSI disk, the following list is appropriate: static struct scsi_key_strings scsi_cmds[] = { 0x00, "test unit ready", 0x01, "rezero/rewind", 0x03, "request sense", 0x04, "format", 0x07, "reassign", 0x08, "read", 0x0a, "write", 0x0b, "seek", 0x12, "inquiry", 0x15, "mode select", 0x16, "reserve", 0x17, "release", 0x18, "copy", 0x1a, "mode sense", 0x1b, "start/stop", 0x1e, "door lock", 0x28, "read(10)", 0x2a, "write(10)", 0x2f, "verify", 0x37, "read defect data", 0x3b, "write buffer", -1, NULL }; CONTEXT
scsi_errmsg() may be called from user or interrupt context. EXAMPLES
Example 1: Generating error information. This entry: scsi_errmsg(devp, pkt, "sd", SCSI_ERR_INFO, bp->b_blkno, err_blkno, sd_cmds, rqsense); Generates: WARNING: /sbus@1,f8000000/esp@0,800000/sd@1,0 (sd1): Error for Command: read Error Level: Informational Requested Block: 23936 Error Block: 23936 Vendor: QUANTUM Serial Number: 123456 Sense Key: Unit Attention ASC: 0x29 (reset), ASCQ: 0x0, FRU: 0x0 SEE ALSO
cmn_err(9F), scsi_log(9F), scsi_device(9S), scsi_extended_sense(9S), scsi_pkt(9S) Writing Device Drivers SunOS 5.10 8 Oct 1997 scsi_errmsg(9F)
Man Page