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
11struct 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
19struct 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
41int pluto_detect(Scsi_Host_Template *);
42int pluto_release(struct Scsi_Host *);
43const 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