"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