MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Kernel Functions for Drivers                      scsierrmsg(9F)



NAME
     scsierrmsg - display a SCSI request sense message

SYNOPSIS
     #include 



     void scsierrmsg(struct scsidevice *devp, struct scsipkt *pktp,
          char *drvname, int severity, daddrt blkno, daddrt errblkno,
          struct scsikeystrings *cmdlist, struct scsiextendedsense *sensep);


INTERFACE LEVEL
     Solaris DI specific (Solaris DI).

PARAMETERS
     devp         Pointer to the  scsidevice(9S) structure.


     pktp         Pointer to a scsipkt(9S) structure.


     drvname     String used by scsilog(9F).


     severity     Error severity level, maps to severity  strings
                  below.


     blkno        Requested block number.


     errblkno    Error block number.


     cmdlist      An array of SCSI command description strings.


     sensep       A pointer to a  scsiextendedsense(9S)  struc-
                  ture.


DESCRIPTION
     The scsierrmsg()  function  interprets  the  request  sense
     information  in  the sensep pointer and generates a standard
     message that is displayed using scsilog(9F). The first line
     of  the  message  is always a CEWARN, with the continuation
     lines being CECONT. sensep may be NUL, in  which  case  no
     sense key or vendor information is displayed.





SunOS 5.11          Last change: 16 Jan 2006                    1






Kernel Functions for Drivers                      scsierrmsg(9F)



     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 scsidevice(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:
     SCSIERAL                  All
     SCSIERUNKNOWN              Unknown
     SCSIERINFO                 Informational
     SCSIERECOVERE             Recovered
     SCSIERETRYABL             Retryable
     SCSIERFATAL                Fatal



     blkno is the block number of the original request that  gen-
     erated  the  error.  errblkno 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 scsikeystrings {
               int key;
               char *message;
       };



     For a basic SCSI disk, the following list is appropriate:

       static struct scsikeystrings scsicmds[] = {
               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",



SunOS 5.11          Last change: 16 Jan 2006                    2






Kernel Functions for Drivers                      scsierrmsg(9F)



               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, NUL
       };


CONTEXT
     The scsierrmsg() function may be called from  user,  inter-
     rupt, or kernel context.

EXAMPLES
     Example 1 Generating error information.


     This entry:


       scsierrmsg(devp, pkt, "sd", SCSIERINFO, bp->bblkno,
                errblkno, sdcmds, 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
     cmnerr(9F),         scsilog(9F),          scsidevice(9S),
     scsiextendedsense(9S), scsipkt(9S)


     Writing Device Drivers









SunOS 5.11          Last change: 16 Jan 2006                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™