"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "mapscsi-0.0.11/qlogic_api.h" of archive mapscsi-0.0.11.tar.gz:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 #ifndef _QLOGIC_API_
    2 #define _QLOGIC_API_
    3 
    4 #include <linux/ioctl.h>
    5 
    6 extern int qlogic_probe(int fd);
    7 extern int qlogic_map_wwn_to_sd();
    8 extern void qlogic_free();
    9 
   10 #define	INT8	char
   11 #define	INT16	short int
   12 #define	INT32   int
   13 #define	UINT8	unsigned char
   14 #define	UINT16	unsigned short
   15 #define	UINT32	unsigned int
   16 #define	UINT64	void *
   17 #define BOOLEAN unsigned char
   18 
   19 #define	QL_DEF_WWN_NAME_SIZE		8
   20 #define	QL_DEF_PORTID_SIZE		4
   21 
   22 /* HBA node query interface type */
   23 #define	QL_DEF_FC_INTF_TYPE		1
   24 #define	QL_DEF_SCSI_INTF_TYPE		2
   25 
   26 #define	QL_STATUS_DEV_NOT_FOUND		9
   27 
   28 typedef struct {
   29 	UINT16    Bus;				/* 2 */
   30 	UINT16    Target;			/* 2 */
   31 	UINT16    Lun;				/* 2 */
   32 	UINT16    Padding[5];			/* 10 */
   33 } QL_SCSI_ADDR;
   34 
   35 typedef struct {
   36 	UINT8     WWNN[QL_DEF_WWN_NAME_SIZE];	/* 8 */
   37 	UINT8     WWPN[QL_DEF_WWN_NAME_SIZE];	/* 8 */
   38 	UINT8     Id  [QL_DEF_PORTID_SIZE];
   39 					/* 4; last 3 bytes used. big endian */
   40 
   41 	/* The following fields currently are not supported */
   42 	UINT16    Type;				/* 2; Port Type */
   43 	UINT16    Status;			/* 2; Port Status */
   44 	UINT16    Bus;				/* 2; n/a for Solaris */
   45 
   46 	UINT16    TargetId;			/* 2 */
   47 	UINT8     Local;			/* 1; Local or Remote */
   48 	UINT8     ReservedByte[1];		/* 1 */
   49 
   50 	UINT16    LoopID;			/* 2; Loop ID */
   51 
   52 	UINT32    Reserved[7];			/* 28 */
   53 } QL_DISC_PORT;
   54 
   55 /* port type */
   56 #define	QL_DEF_INITIATOR_DEV		1
   57 #define	QL_DEF_TARGET_DEV		2
   58 #define	QL_DEF_TAPE_DEV			4
   59 #define	QL_DEF_FABRIC_DEV		8
   60 
   61 typedef struct {
   62 	UINT64    Signature;			/* 8 chars string */
   63 	UINT16    AddrMode;			/* 2 */
   64 	UINT16    Version;			/* 2 */
   65 	UINT16    SubCode;			/* 2 */
   66 	UINT16    Instance;			/* 2 */
   67 	UINT32    Status;			/* 4 */
   68 	UINT32    DetailStatus;			/* 4 */
   69 	UINT32    Reserved1;			/* 4 */
   70 	UINT32    RequestLen;			/* 4 */
   71 	UINT32    ResponseLen;			/* 4 */
   72 	UINT64    RequestAdr;			/* 8 */
   73 	UINT64    ResponseAdr;			/* 8 */
   74 	UINT16    HbaSelect;			/* 2 */
   75 	UINT16    VendorSpecificStatus[11];	/* 22 */
   76 	UINT64    VendorSpecificData;		/* 8 chars string */
   77 } QL_IOCTL;
   78 
   79 #define QL_MAX_FIBRE_DEVICES   256
   80 #define	QL_VERSION	   5
   81 #define QLMULTIPATH_MAGIC 'y'
   82 
   83 #define QL_IOCTL_QUERY			         /* QUERY */	\
   84     _IOWR(QLMULTIPATH_MAGIC, 0x00, sizeof(QL_IOCTL))
   85 
   86 #define	QL_IOCTL_SC_QUERY_HBA_NODE	1
   87 #define	QL_IOCTL_SC_QUERY_HBA_PORT	2
   88 #define	QL_IOCTL_SC_QUERY_DISC_PORT	3
   89 #define	QL_IOCTL_SC_QUERY_DISC_TGT	4
   90 #define	QL_IOCTL_SC_QUERY_DISC_LUN	5	/* Currently Not Supported */
   91 #define	QL_IOCTL_SC_QUERY_DRIVER	6
   92 #define	QL_IOCTL_SC_QUERY_FW		7
   93 #define	QL_IOCTL_SC_QUERY_CHIP		8
   94 
   95 #define QL_IOCTL_STARTIOCTL			 /* STARTIOCTL */ \
   96     _IOWR(QLMULTIPATH_MAGIC, 0xff, sizeof(QL_IOCTL))
   97 #define QL_IOCTL_SETINSTANCE			 /* SETINSTANCE */ \
   98     _IOWR(QLMULTIPATH_MAGIC, 0xfe, sizeof(QL_IOCTL))
   99 #define	QL_IOCTL_WWPN_TO_SCSIADDR		 /* WWPN_TO_SCSIADDR */ \
  100     _IOWR(QLMULTIPATH_MAGIC, 0xfd, sizeof(QL_IOCTL))
  101 
  102 #endif