1 /* pluto.h: SparcSTORAGE Array SCSI host adapter driver definitions.
2  *
3  * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
4  */
5 
6 #ifndef _PLUTO_H
7 #define _PLUTO_H
8 
9 #include "../fc4/fcp_impl.h"
10 
11 struct pluto {
12 	/* This must be first */
13 	fc_channel	*fc;
14 	char		rev_str[5];
15 	char		fw_rev_str[5];
16 	char		serial_str[13];
17 };
18 
19 struct pluto_inquiry {
20 	u8	dtype;
21 	u8	removable:1, qualifier:7;
22 	u8	iso:2, ecma:3, ansi:3;
23 	u8	aenc:1, trmiop:1, :2, rdf:4;
24 	u8	len;
25 	u8	xxx1;
26 	u8	xxx2;
27 	u8	reladdr:1, wbus32:1, wbus16:1, sync:1, linked:1, :1, cmdque:1, softreset:1;
28 	u8	vendor_id[8];
29 	u8	product_id[16];
30 	u8	revision[4];
31 	u8	fw_revision[4];
32 	u8	serial[12];
33 	u8	xxx3[2];
34 	u8	channels;
35 	u8	targets;
36 };
37 
38 /* This is the max number of outstanding SCSI commands per pluto */
39 #define PLUTO_CAN_QUEUE		254
40 
41 int pluto_detect(Scsi_Host_Template *);
42 int pluto_release(struct Scsi_Host *);
43 const char * pluto_info(struct Scsi_Host *);
44 
45 #define PLUTO {							\
46 	name:			"Sparc Storage Array 100/200",	\
47 	detect:			pluto_detect,			\
48 	release:		pluto_release,			\
49 	info:			pluto_info,			\
50 	queuecommand:		fcp_scsi_queuecommand,		\
51 	can_queue:		PLUTO_CAN_QUEUE,		\
52 	this_id:		-1,				\
53 	sg_tablesize:		1,				\
54 	cmd_per_lun:		1,				\
55 	use_clustering:		ENABLE_CLUSTERING,		\
56 	use_new_eh_code:	FCP_SCSI_USE_NEW_EH_CODE,	\
57 	abort:			fcp_old_abort,			\
58 	eh_abort_handler:	fcp_scsi_abort,			\
59 	eh_device_reset_handler:fcp_scsi_dev_reset,		\
60 	eh_bus_reset_handler:	fcp_scsi_bus_reset,		\
61 	eh_host_reset_handler:	fcp_scsi_host_reset,		\
62 }
63 
64 #endif /* !(_PLUTO_H) */
65 
66