This patch simplify the way to notify LLDs of the command completion and addresses the following sense buffer problems: - can't handle both data and sense. - forces user-space to use aligned sense buffer tgt copies sense_data from userspace to cmnd->sense_buffer (if necessary), maps user-space pages (if necessary) and then calls host->transfer_response (host->transfer_data is removed). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			895 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			895 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
struct scsi_cmnd;
 | 
						|
struct scsi_lun;
 | 
						|
struct Scsi_Host;
 | 
						|
struct task_struct;
 | 
						|
 | 
						|
/* tmp - will replace with SCSI logging stuff */
 | 
						|
#define eprintk(fmt, args...)					\
 | 
						|
do {								\
 | 
						|
	printk("%s(%d) " fmt, __FUNCTION__, __LINE__, ##args);	\
 | 
						|
} while (0)
 | 
						|
 | 
						|
#define dprintk(fmt, args...)
 | 
						|
/* #define dprintk eprintk */
 | 
						|
 | 
						|
extern void scsi_tgt_if_exit(void);
 | 
						|
extern int scsi_tgt_if_init(void);
 | 
						|
 | 
						|
extern int scsi_tgt_uspace_send_cmd(struct scsi_cmnd *cmd, struct scsi_lun *lun,
 | 
						|
				    u64 tag);
 | 
						|
extern int scsi_tgt_uspace_send_status(struct scsi_cmnd *cmd, u64 tag);
 | 
						|
extern int scsi_tgt_kspace_exec(int host_no, int result, u64 tag,
 | 
						|
				unsigned long uaddr, u32 len, unsigned long sense_uaddr,
 | 
						|
				u32 sense_len, u8 rw);
 | 
						|
extern int scsi_tgt_uspace_send_tsk_mgmt(int host_no, int function, u64 tag,
 | 
						|
					 struct scsi_lun *scsilun, void *data);
 | 
						|
extern int scsi_tgt_kspace_tsk_mgmt(int host_no, u64 mid, int result);
 |