diff options
Diffstat (limited to 'usr/src/common/devid/devid_scsi.c')
| -rw-r--r-- | usr/src/common/devid/devid_scsi.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/usr/src/common/devid/devid_scsi.c b/usr/src/common/devid/devid_scsi.c index 45aaacbf0d..6b2574a8db 100644 --- a/usr/src/common/devid/devid_scsi.c +++ b/usr/src/common/devid/devid_scsi.c @@ -41,6 +41,9 @@ #include <sys/dditypes.h> #include <sys/ddi_impldefs.h> #include <sys/scsi/scsi.h> +#ifndef _KERNEL +#include <sys/libdevid.h> +#endif /* !_KERNEL */ #include "devid_impl.h" #define SCSI_INQUIRY_VID_POS 9 @@ -1244,8 +1247,7 @@ scsi_wwnstr_to_wwn(const char *wwnstr, uint64_t *wwnp) return (DDI_FAILURE); /* Skip leading 'w' if wwnstr is in unit-address form */ - if (*wwnstr == 'w') - wwnstr++; + wwnstr = scsi_wwnstr_skip_ua_prefix(wwnstr); if (strlen(wwnstr) != 16) return (DDI_FAILURE); @@ -1328,6 +1330,23 @@ scsi_wwnstr_hexcase(char *wwnstr, int upper_case_hex) } /* + * Function: scsi_wwnstr_skip_ua_prefix + * + * Description: This routine removes the leading 'w' in wwnstr, + * if its in unit-address form. + * + * Arguments: wwnstr - the string wwn to be transformed + * + */ +const char * +scsi_wwnstr_skip_ua_prefix(const char *wwnstr) +{ + if (*wwnstr == 'w') + wwnstr++; + return (wwnstr); +} + +/* * Function: scsi_wwnstr_free * * Description: This routine frees a wwnstr returned by a call |
