diff options
author | Alan Somers <asomers@FreeBSD.org> | 2016-04-18 15:01:59 +0000 |
---|---|---|
committer | Alan Somers <asomers@FreeBSD.org> | 2016-04-18 15:01:59 +0000 |
commit | f94033f40717ce1d870f22cf7671879ae28f0f5e (patch) | |
tree | 35ae92365124b4aaf20c2782310934f4d2ff8f4a /sys | |
parent | 6e4fcca0f87bb7d0f80934881ddd68dbd57fbcbf (diff) | |
download | src-f94033f40717ce1d870f22cf7671879ae28f0f5e.tar.gz src-f94033f40717ce1d870f22cf7671879ae28f0f5e.zip |
Add the ability to read a SAS device's Target Port NAA designator
sys/cam/scsi/scsi_all.h
sys/cam/scsi/scsi_all.c
Add the scsi_devid_is_port_naa helper function
Reviewed by: ken
MFC after: 4 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D5975
Notes
Notes:
svn path=/head/; revision=298212
Diffstat (limited to 'sys')
-rw-r--r-- | sys/cam/scsi/scsi_all.c | 13 | ||||
-rw-r--r-- | sys/cam/scsi/scsi_all.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/sys/cam/scsi/scsi_all.c b/sys/cam/scsi/scsi_all.c index 3a073ee94837..12be4023ce7a 100644 --- a/sys/cam/scsi/scsi_all.c +++ b/sys/cam/scsi/scsi_all.c @@ -5626,6 +5626,19 @@ scsi_devid_is_lun_name(uint8_t *bufp) return 1; } +int +scsi_devid_is_port_naa(uint8_t *bufp) +{ + struct scsi_vpd_id_descriptor *descr; + + descr = (struct scsi_vpd_id_descriptor *)bufp; + if ((descr->id_type & SVPD_ID_ASSOC_MASK) != SVPD_ID_ASSOC_PORT) + return 0; + if ((descr->id_type & SVPD_ID_TYPE_MASK) != SVPD_ID_TYPE_NAA) + return 0; + return 1; +} + struct scsi_vpd_id_descriptor * scsi_get_devid_desc(struct scsi_vpd_id_descriptor *desc, uint32_t len, scsi_devid_checkfn_t ck_fn) diff --git a/sys/cam/scsi/scsi_all.h b/sys/cam/scsi/scsi_all.h index e5b492f2f0aa..6e97a27e53bf 100644 --- a/sys/cam/scsi/scsi_all.h +++ b/sys/cam/scsi/scsi_all.h @@ -3661,6 +3661,7 @@ int scsi_devid_is_lun_eui64(uint8_t *bufp); int scsi_devid_is_lun_naa(uint8_t *bufp); int scsi_devid_is_lun_name(uint8_t *bufp); int scsi_devid_is_lun_t10(uint8_t *bufp); +int scsi_devid_is_port_naa(uint8_t *bufp); struct scsi_vpd_id_descriptor * scsi_get_devid(struct scsi_vpd_device_id *id, uint32_t len, scsi_devid_checkfn_t ck_fn); |