| 
									
										
											  
											
												[SCSI] target: Add LIO target core v4.0.0-rc6
LIO target is a full featured in-kernel target framework with the
following feature set:
High-performance, non-blocking, multithreaded architecture with SIMD
support.
Advanced SCSI feature set:
    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)
Multiprotocol target plugins
Storage media independence:
    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.
Standards compliance:
    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA
Significant code cleanups done by Christoph Hellwig.
[jejb: fix up for new block bdev exclusive interface. Minor fixes from
 Randy Dunlap and Dan Carpenter.]
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
											
										 
											2010-12-17 11:11:26 -08:00
										 |  |  | #ifndef TARGET_CORE_PSCSI_H
 | 
					
						
							|  |  |  | #define TARGET_CORE_PSCSI_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define PSCSI_VERSION		"v4.0"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* used in pscsi_find_alloc_len() */ | 
					
						
							|  |  |  | #ifndef INQUIRY_DATA_SIZE
 | 
					
						
							|  |  |  | #define INQUIRY_DATA_SIZE	0x24
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* used in pscsi_add_device_to_list() */ | 
					
						
							|  |  |  | #define PSCSI_DEFAULT_QUEUEDEPTH	1
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define PS_RETRY		5
 | 
					
						
							|  |  |  | #define PS_TIMEOUT_DISK		(15*HZ)
 | 
					
						
							|  |  |  | #define PS_TIMEOUT_OTHER	(500*HZ)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/device.h>
 | 
					
						
							|  |  |  | #include <scsi/scsi_driver.h>
 | 
					
						
							|  |  |  | #include <scsi/scsi_device.h>
 | 
					
						
							|  |  |  | #include <linux/kref.h>
 | 
					
						
							|  |  |  | #include <linux/kobject.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct pscsi_plugin_task { | 
					
						
							|  |  |  | 	unsigned char pscsi_sense[SCSI_SENSE_BUFFERSIZE]; | 
					
						
							|  |  |  | 	int	pscsi_direction; | 
					
						
							|  |  |  | 	int	pscsi_result; | 
					
						
							|  |  |  | 	u32	pscsi_resid; | 
					
						
							| 
									
										
										
										
											2011-06-08 10:36:43 -07:00
										 |  |  | 	unsigned char pscsi_cdb[0]; | 
					
						
							| 
									
										
											  
											
												[SCSI] target: Add LIO target core v4.0.0-rc6
LIO target is a full featured in-kernel target framework with the
following feature set:
High-performance, non-blocking, multithreaded architecture with SIMD
support.
Advanced SCSI feature set:
    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)
Multiprotocol target plugins
Storage media independence:
    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.
Standards compliance:
    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA
Significant code cleanups done by Christoph Hellwig.
[jejb: fix up for new block bdev exclusive interface. Minor fixes from
 Randy Dunlap and Dan Carpenter.]
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
											
										 
											2010-12-17 11:11:26 -08:00
										 |  |  | } ____cacheline_aligned; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define PDF_HAS_CHANNEL_ID	0x01
 | 
					
						
							|  |  |  | #define PDF_HAS_TARGET_ID	0x02
 | 
					
						
							|  |  |  | #define PDF_HAS_LUN_ID		0x04
 | 
					
						
							|  |  |  | #define PDF_HAS_VPD_UNIT_SERIAL 0x08
 | 
					
						
							|  |  |  | #define PDF_HAS_VPD_DEV_IDENT	0x10
 | 
					
						
							|  |  |  | #define PDF_HAS_VIRT_HOST_ID	0x20
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct pscsi_dev_virt { | 
					
						
							| 
									
										
										
										
											2012-10-08 00:03:19 -04:00
										 |  |  | 	struct se_device dev; | 
					
						
							| 
									
										
											  
											
												[SCSI] target: Add LIO target core v4.0.0-rc6
LIO target is a full featured in-kernel target framework with the
following feature set:
High-performance, non-blocking, multithreaded architecture with SIMD
support.
Advanced SCSI feature set:
    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)
Multiprotocol target plugins
Storage media independence:
    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.
Standards compliance:
    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA
Significant code cleanups done by Christoph Hellwig.
[jejb: fix up for new block bdev exclusive interface. Minor fixes from
 Randy Dunlap and Dan Carpenter.]
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
											
										 
											2010-12-17 11:11:26 -08:00
										 |  |  | 	int	pdv_flags; | 
					
						
							|  |  |  | 	int	pdv_host_id; | 
					
						
							|  |  |  | 	int	pdv_channel_id; | 
					
						
							|  |  |  | 	int	pdv_target_id; | 
					
						
							|  |  |  | 	int	pdv_lun_id; | 
					
						
							|  |  |  | 	struct block_device *pdv_bd; | 
					
						
							|  |  |  | 	struct scsi_device *pdv_sd; | 
					
						
							|  |  |  | } ____cacheline_aligned; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef enum phv_modes { | 
					
						
							| 
									
										
										
										
											2012-02-23 18:15:26 +00:00
										 |  |  | 	PHV_VIRTUAL_HOST_ID, | 
					
						
							| 
									
										
											  
											
												[SCSI] target: Add LIO target core v4.0.0-rc6
LIO target is a full featured in-kernel target framework with the
following feature set:
High-performance, non-blocking, multithreaded architecture with SIMD
support.
Advanced SCSI feature set:
    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)
Multiprotocol target plugins
Storage media independence:
    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.
Standards compliance:
    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA
Significant code cleanups done by Christoph Hellwig.
[jejb: fix up for new block bdev exclusive interface. Minor fixes from
 Randy Dunlap and Dan Carpenter.]
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
											
										 
											2010-12-17 11:11:26 -08:00
										 |  |  | 	PHV_LLD_SCSI_HOST_NO | 
					
						
							|  |  |  | } phv_modes_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct pscsi_hba_virt { | 
					
						
							|  |  |  | 	int			phv_host_id; | 
					
						
							|  |  |  | 	phv_modes_t		phv_mode; | 
					
						
							|  |  |  | 	struct Scsi_Host	*phv_lld_host; | 
					
						
							|  |  |  | } ____cacheline_aligned; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif   /*** TARGET_CORE_PSCSI_H ***/
 |