1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-03 09:00:21 +00:00
freebsd/sys
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
..
amd64 Remove unnecessary includes of <machine/pmap.h> 2013-10-29 02:25:18 +00:00
arm A last BUS_PROBE_NOWILDCARD. Move setting the postfilter function into the 2013-10-29 14:44:36 +00:00
boot Digi-CCWMX53: enable ffec and uart. 2013-10-29 03:42:43 +00:00
bsm
cam Implement extended LUN support. If PIM_EXTLUNS is set by a SIM, encode 2013-10-29 15:36:58 +00:00
cddl
compat - Provide necessary includes. 2013-10-29 11:17:49 +00:00
conf Add missing ARMv6 CPU functions to ARM Makefile 2013-10-29 13:16:05 +00:00
contrib Fix build. We need to include systm.h before if_var.h. 2013-10-28 15:11:37 +00:00
crypto
ddb
dev More BUS_PROBE_NOWILDCARD sweeping. Some devices here (if_ath_ahb and siba) 2013-10-29 14:19:42 +00:00
fs
gdb
geom
gnu/fs/reiserfs
i386 - Provide necessary includes. 2013-10-29 11:17:49 +00:00
ia64 Add bus_dmamap_load_ma() function to load map with the array of 2013-10-27 21:39:16 +00:00
isa
kern Add bus_dmamap_load_ma() function to load map with the array of 2013-10-27 21:39:16 +00:00
kgssapi
libkern
mips Devices that rely on hints or identify routines for discovery need to 2013-10-29 14:07:31 +00:00
modules Axe ng_fec(4). It has never been a real netgraph(4) module, since 2013-10-28 12:47:05 +00:00
net Style: s/SYS_EVENTHANDLER_H/_SYS_EVENTHANDLER_H_/g 2013-10-28 20:32:05 +00:00
net80211 - Provide necessary includes, that before came via if.h pollution. 2013-10-28 22:26:03 +00:00
netatalk
netgraph Axe ng_fec(4). It has never been a real netgraph(4) module, since 2013-10-28 12:47:05 +00:00
netinet Uninline inm_lookup_locked(). Now in_var.h doesn't dereference 2013-10-29 11:21:31 +00:00
netinet6 Include necessary headers that now are available due to pollution 2013-10-28 07:29:16 +00:00
netipsec Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
netipx
netnatm Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
netpfil - Fix VIMAGE build. 2013-10-28 10:12:19 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed
opencrypto
pc98
pci Add preliminary support for RTL8168EP. 2013-10-29 05:37:05 +00:00
powerpc Implement extended LUN support. If PIM_EXTLUNS is set by a SIM, encode 2013-10-29 15:36:58 +00:00
rpc
security
sparc64 Add bus_dmamap_load_ma() function to load map with the array of 2013-10-27 21:39:16 +00:00
sys G/c unused mountrootfsname. 2013-10-28 20:38:17 +00:00
teken
tools
ufs
vm
x86 Remove redundand declaration, fixing the build with gcc. 2013-10-29 07:25:54 +00:00
xdr
xen
Makefile