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