1 // for user apps, make sure data size types are defined
5 #define CCPQFCTS_IOC_MAGIC 'Z'
11 } cpqfc_pci_info_struct;
13 typedef __u32 DriverVer_type;
15 /* this is nearly duplicated in idashare.h */
17 int lc; /* Controller number */
18 int node; /* Node (box) number */
19 int ld; /* Logical Drive on this box, if required */
20 __u32 nexus; /* SCSI Nexus */
21 void *argp; /* Argument pointer */
26 char cdb[16]; /* SCSI CDB for the pass-through */
27 ushort bus; /* Target bus on the box */
28 ushort pdrive; /* Physical drive on the box */
29 int len; /* Length of the data area of the CDB */
30 int sense_len; /* Length of the sense data */
31 char sense_data[40]; /* Sense data */
32 void *bufp; /* Data area for the CDB */
33 char rw_flag; /* Read CDB or Write CDB */
37 * Defines for the IOCTLS.
40 #define VENDOR_READ_OPCODE 0x26
41 #define VENDOR_WRITE_OPCODE 0x27
43 #define CPQFCTS_GETPCIINFO _IOR( CCPQFCTS_IOC_MAGIC, 1, cpqfc_pci_info_struct)
44 #define CPQFCTS_GETDRIVVER _IOR( CCPQFCTS_IOC_MAGIC, 9, DriverVer_type)
46 #define CPQFCTS_SCSI_PASSTHRU _IOWR( CCPQFCTS_IOC_MAGIC,11, VENDOR_IOCTL_REQ)
49 * We would rather have equivalent generic, low-level driver agnostic
50 * ioctls that do what CPQFC_IOCTL_FC_TARGET_ADDRESS and
51 * CPQFC_IOCTL_FC_TDR 0x5388 do, but currently, we do not have them,
52 * consequently applications would have to know they are talking to cpqfc.
56 * Used to get Fibre Channel WWN and port_id from device
59 #define CPQFC_IOCTL_FC_TARGET_ADDRESS \
60 _IOR( CCPQFCTS_IOC_MAGIC, 13, Scsi_FCTargAddress)
63 * Used to invoke Target Defice Reset for Fibre Channel
66 #define CPQFC_IOCTL_FC_TDR _IO( CCPQFCTS_IOC_MAGIC, 15)