freebsd-nq/sys/cam/scsi
Nathan Whitehorn ef5758fa10 Implement extended LUN support. If PIM_EXTLUNS is set by a SIM, encode
the upper 32-bits of the LUN, if possible, into the target_lun field as
passed directly from the REPORT LUNs response. This allows extended LUN
support to work for all LUNs with zeros in the lower 32-bits, which covers
most addressing modes without breaking KBI. Behavior for drivers not
setting PIM_EXTLUNS is unchanged. No user-facing interfaces are modified.

Extended LUNs are stored with swizzled 16-bit word order so that, for
devices implementing LUN addressing (like SCSI-2), the numerical
representation of the LUN is identical with and without PIM_EXTLUNS. Thus
setting PIM_EXTLUNS keeps most behavior, and user-facing LUN IDs, unchanged.
This follows the strategy used in Solaris. A macro (CAM_EXTLUN_BYTE_SWIZZLE)
is provided to transform a lun_id_t into a uint64_t ordered for the wire.

This is the second part of work for full 64-bit extended LUN support and is
designed to a bridge for stable/10 to the final 64-bit LUN code. The
third and final part will involve widening lun_id_t to 64 bits and will
not be MFCed. This third part will break the KBI but will keep the KPI
unchanged so that all drivers that will care about this can be updated now
and not require code changes between HEAD and stable/10.

Reviewed by:	scottl
MFC after:	2 weeks
2013-10-29 15:36:58 +00:00
..
scsi_all.c Unify periph invalidation and destruction reporting. 2013-10-15 17:59:41 +00:00
scsi_all.h Improve ZFS N-way mirror read performance by using load and locality 2013-10-23 09:54:58 +00:00
scsi_cd.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_cd.h
scsi_ch.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_ch.h Update chio(1) and ch(4) to support reporting element designators. 2013-04-19 20:03:51 +00:00
scsi_da.c Some microoptimizations for da and ada drivers: 2013-10-24 14:05:44 +00:00
scsi_da.h Add camcontrol support for the SCSI sanitize command 2013-09-06 15:19:57 +00:00
scsi_dvcfg.h
scsi_enc_internal.h Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_enc_safte.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_enc_ses.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_enc.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_enc.h MFprojects/zfsd: 2012-05-24 14:07:44 +00:00
scsi_iu.h
scsi_low.c Remove some more NetBSD compat shims and other unused bits from these 2012-09-10 18:49:49 +00:00
scsi_low.h Remove some more NetBSD compat shims and other unused bits from these 2012-09-10 18:49:49 +00:00
scsi_message.h
scsi_pass.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_pass.h
scsi_pt.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_pt.h
scsi_sa.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_sa.h
scsi_ses.h Fix off by one error in ses_enc_desc_last_byte(). 2012-07-24 13:32:49 +00:00
scsi_sg.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_sg.h
scsi_targ_bh.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_target.c Merge CAM locking changes from the projects/camlock branch to radically 2013-10-21 12:00:26 +00:00
scsi_targetio.h
scsi_xpt.c Implement extended LUN support. If PIM_EXTLUNS is set by a SIM, encode 2013-10-29 15:36:58 +00:00
smp_all.c
smp_all.h