diff options
Diffstat (limited to 'include/scsi/scsi_netlink.h')
-rw-r--r-- | include/scsi/scsi_netlink.h | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/include/scsi/scsi_netlink.h b/include/scsi/scsi_netlink.h deleted file mode 100644 index 62b4edab15d3..000000000000 --- a/include/scsi/scsi_netlink.h +++ /dev/null | |||
@@ -1,123 +0,0 @@ | |||
1 | /* | ||
2 | * SCSI Transport Netlink Interface | ||
3 | * Used for the posting of outbound SCSI transport events | ||
4 | * | ||
5 | * Copyright (C) 2006 James Smart, Emulex Corporation | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | #ifndef SCSI_NETLINK_H | ||
23 | #define SCSI_NETLINK_H | ||
24 | |||
25 | #include <linux/netlink.h> | ||
26 | #include <linux/types.h> | ||
27 | |||
28 | /* | ||
29 | * This file intended to be included by both kernel and user space | ||
30 | */ | ||
31 | |||
32 | /* Single Netlink Message type to send all SCSI Transport messages */ | ||
33 | #define SCSI_TRANSPORT_MSG NLMSG_MIN_TYPE + 1 | ||
34 | |||
35 | /* SCSI Transport Broadcast Groups */ | ||
36 | /* leaving groups 0 and 1 unassigned */ | ||
37 | #define SCSI_NL_GRP_FC_EVENTS (1<<2) /* Group 2 */ | ||
38 | #define SCSI_NL_GRP_CNT 3 | ||
39 | |||
40 | |||
41 | /* SCSI_TRANSPORT_MSG event message header */ | ||
42 | struct scsi_nl_hdr { | ||
43 | uint8_t version; | ||
44 | uint8_t transport; | ||
45 | uint16_t magic; | ||
46 | uint16_t msgtype; | ||
47 | uint16_t msglen; | ||
48 | } __attribute__((aligned(sizeof(uint64_t)))); | ||
49 | |||
50 | /* scsi_nl_hdr->version value */ | ||
51 | #define SCSI_NL_VERSION 1 | ||
52 | |||
53 | /* scsi_nl_hdr->magic value */ | ||
54 | #define SCSI_NL_MAGIC 0xA1B2 | ||
55 | |||
56 | /* scsi_nl_hdr->transport value */ | ||
57 | #define SCSI_NL_TRANSPORT 0 | ||
58 | #define SCSI_NL_TRANSPORT_FC 1 | ||
59 | #define SCSI_NL_MAX_TRANSPORTS 2 | ||
60 | |||
61 | /* Transport-based scsi_nl_hdr->msgtype values are defined in each transport */ | ||
62 | |||
63 | /* | ||
64 | * GENERIC SCSI scsi_nl_hdr->msgtype Values | ||
65 | */ | ||
66 | /* kernel -> user */ | ||
67 | #define SCSI_NL_SHOST_VENDOR 0x0001 | ||
68 | /* user -> kernel */ | ||
69 | /* SCSI_NL_SHOST_VENDOR msgtype is kernel->user and user->kernel */ | ||
70 | |||
71 | |||
72 | /* | ||
73 | * Message Structures : | ||
74 | */ | ||
75 | |||
76 | /* macro to round up message lengths to 8byte boundary */ | ||
77 | #define SCSI_NL_MSGALIGN(len) (((len) + 7) & ~7) | ||
78 | |||
79 | |||
80 | /* | ||
81 | * SCSI HOST Vendor Unique messages : | ||
82 | * SCSI_NL_SHOST_VENDOR | ||
83 | * | ||
84 | * Note: The Vendor Unique message payload will begin directly after | ||
85 | * this structure, with the length of the payload per vmsg_datalen. | ||
86 | * | ||
87 | * Note: When specifying vendor_id, be sure to read the Vendor Type and ID | ||
88 | * formatting requirements specified below | ||
89 | */ | ||
90 | struct scsi_nl_host_vendor_msg { | ||
91 | struct scsi_nl_hdr snlh; /* must be 1st element ! */ | ||
92 | uint64_t vendor_id; | ||
93 | uint16_t host_no; | ||
94 | uint16_t vmsg_datalen; | ||
95 | } __attribute__((aligned(sizeof(uint64_t)))); | ||
96 | |||
97 | |||
98 | /* | ||
99 | * Vendor ID: | ||
100 | * If transports post vendor-unique events, they must pass a well-known | ||
101 | * 32-bit vendor identifier. This identifier consists of 8 bits indicating | ||
102 | * the "type" of identifier contained, and 24 bits of id data. | ||
103 | * | ||
104 | * Identifiers for each type: | ||
105 | * PCI : ID data is the 16 bit PCI Registered Vendor ID | ||
106 | */ | ||
107 | #define SCSI_NL_VID_TYPE_SHIFT 56 | ||
108 | #define SCSI_NL_VID_TYPE_MASK ((__u64)0xFF << SCSI_NL_VID_TYPE_SHIFT) | ||
109 | #define SCSI_NL_VID_TYPE_PCI ((__u64)0x01 << SCSI_NL_VID_TYPE_SHIFT) | ||
110 | #define SCSI_NL_VID_ID_MASK (~ SCSI_NL_VID_TYPE_MASK) | ||
111 | |||
112 | |||
113 | #define INIT_SCSI_NL_HDR(hdr, t, mtype, mlen) \ | ||
114 | { \ | ||
115 | (hdr)->version = SCSI_NL_VERSION; \ | ||
116 | (hdr)->transport = t; \ | ||
117 | (hdr)->magic = SCSI_NL_MAGIC; \ | ||
118 | (hdr)->msgtype = mtype; \ | ||
119 | (hdr)->msglen = mlen; \ | ||
120 | } | ||
121 | |||
122 | #endif /* SCSI_NETLINK_H */ | ||
123 | |||