1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #pragma D depends_on library ip.d
28 #pragma D depends_on library net.d	/* conninfo_t */
29 #pragma D depends_on library scsi.d	/* scsicmd_t and iscsiinfo_t */
30 #pragma D depends_on module genunix
31 #pragma D depends_on module iscsit
32 #pragma D depends_on module idm
33 
34 #pragma D binding "1.5" translator
35 translator conninfo_t < idm_conn_t *P > {
36 	ci_local = (P->ic_laddr.ss_family == AF_INET) ?
37 	    inet_ntoa((ipaddr_t *)
38 	    &((struct sockaddr_in *)&P->ic_laddr)->sin_addr) :
39 	    inet_ntoa6(&((struct sockaddr_in6 *)&P->ic_laddr)->sin6_addr);
40 
41 	ci_remote = (P->ic_raddr.ss_family == AF_INET) ?
42 	    inet_ntoa((ipaddr_t *)
43 	    &((struct sockaddr_in *)&P->ic_raddr)->sin_addr) :
44 	    inet_ntoa6(&((struct sockaddr_in6 *)&P->ic_raddr)->sin6_addr);
45 
46 	ci_protocol = (P->ic_laddr.ss_family == AF_INET) ? "ipv4" : "ipv6";
47 };
48 
49 #pragma D binding "1.5" translator
50 translator iscsiinfo_t < iscsi_async_evt_hdr_t *P > {
51 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
52 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
53 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
54 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
55 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
56 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
57 	    (((idm_conn_t *)arg0)->ic_transport_type ==
58 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
59 	ii_lun = (((uint64_t)P->lun[0] << (64 - 0*8 - 8)) +
60             ((uint64_t)P->lun[1] << (64 - 1*8 - 8)) +
61             ((uint64_t)P->lun[2] << (64 - 2*8 - 8)) +
62             ((uint64_t)P->lun[3] << (64 - 3*8 - 8)) +
63             ((uint64_t)P->lun[4] << (64 - 4*8 - 8)) +
64             ((uint64_t)P->lun[5] << (64 - 5*8 - 8)) +
65             ((uint64_t)P->lun[6] << (64 - 6*8 - 8)) +
66             ((uint64_t)P->lun[7] << (64 - 7*8 - 8)));
67 	ii_itt = 0;
68 	ii_ttt = 0;
69 	ii_cmdsn = 0;
70 	ii_statsn = ntohl(P->statsn);
71 	ii_datasn = 0;
72 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
73 	ii_flags = P->flags;
74 };
75 
76 #pragma D binding "1.5" translator
77 translator iscsiinfo_t < iscsi_login_hdr_t *P > {
78 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
79 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
80 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
81 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
82 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
83 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
84 	    (((idm_conn_t *)arg0)->ic_transport_type ==
85 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
86 	ii_lun = 0; /* NA */
87 	ii_itt = ntohl(P->itt);
88 	ii_ttt = 0xffffffff;
89 	ii_cmdsn = ntohl(P->cmdsn);
90 	ii_statsn = ntohl(P->expstatsn);
91 	ii_datasn = 0;
92 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
93 	ii_flags = P->flags;
94 };
95 
96 #pragma D binding "1.5" translator
97 translator iscsiinfo_t < iscsi_login_rsp_hdr_t *P > {
98 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
99 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
100 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
101 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
102 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
103 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
104 	    (((idm_conn_t *)arg0)->ic_transport_type ==
105 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
106 	ii_lun = 0; /* NA */
107 	ii_itt = ntohl(P->itt);
108 	ii_ttt = 0xffffffff;
109 	ii_cmdsn = ntohl(P->expcmdsn);
110 	ii_statsn = ntohl(P->statsn);
111 	ii_datasn = 0;
112 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
113 	ii_flags = P->flags;
114 };
115 
116 #pragma D binding "1.5" translator
117 translator iscsiinfo_t < iscsi_logout_hdr_t *P > {
118 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
119 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
120 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
121 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
122 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
123 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
124 	    (((idm_conn_t *)arg0)->ic_transport_type ==
125 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
126 	ii_lun = 0; /* NA */
127 	ii_itt = ntohl(P->itt);
128 	ii_ttt = 0xffffffff;
129 	ii_cmdsn = ntohl(P->cmdsn);
130 	ii_statsn = ntohl(P->expstatsn);
131 	ii_datasn = 0;
132 	ii_datalen = 0;
133 	ii_flags = P->flags;
134 };
135 
136 #pragma D binding "1.5" translator
137 translator iscsiinfo_t < iscsi_logout_rsp_hdr_t *P > {
138 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
139 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
140 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
141 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
142 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
143 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
144 	    (((idm_conn_t *)arg0)->ic_transport_type ==
145 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
146 	ii_lun = 0; /* NA */
147 	ii_itt = ntohl(P->itt);
148 	ii_ttt = 0xffffffff;
149 	ii_cmdsn = 0;
150 	ii_statsn = ntohl(P->statsn);
151 	ii_datasn = 0;
152 	ii_datalen = 0;
153 	ii_flags = P->flags;
154 };
155 
156 #pragma D binding "1.5" translator
157 translator iscsiinfo_t < iscsi_rtt_hdr_t *P > {
158 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
159 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
160 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
161 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
162 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
163 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
164 	    (((idm_conn_t *)arg0)->ic_transport_type ==
165 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
166 	ii_lun = 0; /* NA */
167 	ii_itt = ntohl(P->itt);
168 	ii_ttt = ntohl(P->ttt);
169 	ii_cmdsn = ntohl(P->expcmdsn);
170 	ii_statsn = ntohl(P->statsn);
171 	ii_datasn = ntohl(P->rttsn);
172 	ii_datalen = 0;
173 	ii_flags = P->flags;
174 };
175 
176 #pragma D binding "1.5" translator
177 translator iscsiinfo_t < iscsi_data_rsp_hdr_t *P > {
178 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
179 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
180 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
181 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
182 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
183 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
184 	    (((idm_conn_t *)arg0)->ic_transport_type ==
185 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
186 	ii_lun = (((uint64_t)P->lun[0] << (64 - 0*8 - 8)) +
187 	    ((uint64_t)P->lun[1] << (64 - 1*8 - 8)) +
188             ((uint64_t)P->lun[2] << (64 - 2*8 - 8)) +
189             ((uint64_t)P->lun[3] << (64 - 3*8 - 8)) +
190             ((uint64_t)P->lun[4] << (64 - 4*8 - 8)) +
191             ((uint64_t)P->lun[5] << (64 - 5*8 - 8)) +
192             ((uint64_t)P->lun[6] << (64 - 6*8 - 8)) +
193             ((uint64_t)P->lun[7] << (64 - 7*8 - 8)));
194 	ii_itt = ntohl(P->itt);
195 	ii_ttt = ntohl(P->ttt);
196 	ii_cmdsn = ntohl(P->expcmdsn);
197 	ii_statsn = ntohl(P->statsn);
198 	ii_datasn = ntohl(P->datasn);
199 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
200 	ii_flags = P->flags;
201 };
202 
203 #pragma D binding "1.5" translator
204 translator iscsiinfo_t < iscsi_data_hdr_t *P > {
205 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
206 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
207 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
208 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
209 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
210 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
211 	    (((idm_conn_t *)arg0)->ic_transport_type ==
212 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
213 	ii_lun = (((uint64_t)P->lun[0] << (64 - 0*8 - 8)) +
214             ((uint64_t)P->lun[1] << (64 - 1*8 - 8)) +
215             ((uint64_t)P->lun[2] << (64 - 2*8 - 8)) +
216             ((uint64_t)P->lun[3] << (64 - 3*8 - 8)) +
217             ((uint64_t)P->lun[4] << (64 - 4*8 - 8)) +
218             ((uint64_t)P->lun[5] << (64 - 5*8 - 8)) +
219             ((uint64_t)P->lun[6] << (64 - 6*8 - 8)) +
220             ((uint64_t)P->lun[7] << (64 - 7*8 - 8)));
221 	ii_itt = ntohl(P->itt);
222 	ii_ttt = ntohl(P->ttt);
223 	ii_cmdsn = 0;
224 	ii_statsn = ntohl(P->expstatsn);
225 	ii_datasn = ntohl(P->datasn);
226 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
227 	ii_flags = P->flags;
228 };
229 
230 #pragma D binding "1.5" translator
231 translator iscsiinfo_t < iscsi_nop_in_hdr_t *P > {
232 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
233 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
234 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
235 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
236 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
237 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
238 	    (((idm_conn_t *)arg0)->ic_transport_type ==
239 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
240 	ii_lun = (((uint64_t)P->lun[0] << (64 - 0*8 - 8)) +
241             ((uint64_t)P->lun[1] << (64 - 1*8 - 8)) +
242             ((uint64_t)P->lun[2] << (64 - 2*8 - 8)) +
243             ((uint64_t)P->lun[3] << (64 - 3*8 - 8)) +
244             ((uint64_t)P->lun[4] << (64 - 4*8 - 8)) +
245             ((uint64_t)P->lun[5] << (64 - 5*8 - 8)) +
246             ((uint64_t)P->lun[6] << (64 - 6*8 - 8)) +
247             ((uint64_t)P->lun[7] << (64 - 7*8 - 8)));
248 	ii_itt = ntohl(P->itt);
249 	ii_ttt = ntohl(P->ttt);
250 	ii_cmdsn = ntohl(P->expcmdsn);
251 	ii_statsn = ntohl(P->statsn);
252 	ii_datasn = 0;
253 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
254 	ii_flags = P->flags;
255 };
256 
257 #pragma D binding "1.5" translator
258 translator iscsiinfo_t < iscsi_nop_out_hdr_t *P > {
259 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
260 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
261 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
262 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
263 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
264 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
265 	    (((idm_conn_t *)arg0)->ic_transport_type ==
266 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
267 	ii_lun = (((uint64_t)P->lun[0] << (64 - 0*8 - 8)) +
268             ((uint64_t)P->lun[1] << (64 - 1*8 - 8)) +
269             ((uint64_t)P->lun[2] << (64 - 2*8 - 8)) +
270             ((uint64_t)P->lun[3] << (64 - 3*8 - 8)) +
271             ((uint64_t)P->lun[4] << (64 - 4*8 - 8)) +
272             ((uint64_t)P->lun[5] << (64 - 5*8 - 8)) +
273             ((uint64_t)P->lun[6] << (64 - 6*8 - 8)) +
274             ((uint64_t)P->lun[7] << (64 - 7*8 - 8)));
275 	ii_itt = ntohl(P->itt);
276 	ii_ttt = ntohl(P->ttt);
277 	ii_cmdsn = ntohl(P->cmdsn);
278 	ii_statsn = ntohl(P->expstatsn);
279 	ii_datasn = 0;
280 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
281 	ii_flags = P->flags;
282 };
283 
284 #pragma D binding "1.5" translator
285 translator iscsiinfo_t < iscsi_scsi_cmd_hdr_t *P > {
286 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
287 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
288 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
289 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
290 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
291 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
292 	    (((idm_conn_t *)arg0)->ic_transport_type ==
293 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
294 	ii_lun = (((uint64_t)P->lun[0] << (64 - 0*8 - 8)) +
295             ((uint64_t)P->lun[1] << (64 - 1*8 - 8)) +
296             ((uint64_t)P->lun[2] << (64 - 2*8 - 8)) +
297             ((uint64_t)P->lun[3] << (64 - 3*8 - 8)) +
298             ((uint64_t)P->lun[4] << (64 - 4*8 - 8)) +
299             ((uint64_t)P->lun[5] << (64 - 5*8 - 8)) +
300             ((uint64_t)P->lun[6] << (64 - 6*8 - 8)) +
301             ((uint64_t)P->lun[7] << (64 - 7*8 - 8)));
302 	ii_itt = ntohl(P->itt);
303 	ii_ttt = 0xffffffff;
304 	ii_cmdsn = ntohl(P->cmdsn);
305 	ii_statsn = ntohl(P->expstatsn);
306 	ii_datasn = 0;
307 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
308 	ii_flags = P->flags;
309 };
310 
311 #pragma D binding "1.5" translator
312 translator iscsiinfo_t < iscsi_scsi_rsp_hdr_t *P > {
313 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
314 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
315 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
316 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
317 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
318 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
319 	    (((idm_conn_t *)arg0)->ic_transport_type ==
320 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
321 	ii_lun = 0; /* NA */
322 	ii_itt = ntohl(P->itt);
323 	ii_ttt = 0xffffffff;
324 	ii_cmdsn = ntohl(P->expcmdsn);
325 	ii_statsn = ntohl(P->statsn);
326 	ii_datasn = ntohl(P->expdatasn);
327 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
328 	ii_flags = P->flags;
329 };
330 
331 #pragma D binding "1.5" translator
332 translator iscsiinfo_t < iscsi_scsi_task_mgt_hdr_t *P > {
333 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
334 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
335 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
336 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
337 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
338 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
339 	    (((idm_conn_t *)arg0)->ic_transport_type ==
340 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
341 	ii_lun = (((uint64_t)P->lun[0] << (64 - 0*8 - 8)) +
342             ((uint64_t)P->lun[1] << (64 - 1*8 - 8)) +
343             ((uint64_t)P->lun[2] << (64 - 2*8 - 8)) +
344             ((uint64_t)P->lun[3] << (64 - 3*8 - 8)) +
345             ((uint64_t)P->lun[4] << (64 - 4*8 - 8)) +
346             ((uint64_t)P->lun[5] << (64 - 5*8 - 8)) +
347             ((uint64_t)P->lun[6] << (64 - 6*8 - 8)) +
348             ((uint64_t)P->lun[7] << (64 - 7*8 - 8)));
349 	ii_itt = ntohl(P->itt);
350 	ii_ttt = ntohl(P->rtt);
351 	ii_cmdsn = ntohl(P->cmdsn);
352 	ii_statsn = ntohl(P->expstatsn);
353 	ii_datasn = 0;
354 	ii_datalen = 0;
355 	ii_flags = 0;
356 };
357 
358 #pragma D binding "1.5" translator
359 translator iscsiinfo_t < iscsi_scsi_task_mgt_rsp_hdr_t *P > {
360 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
361 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
362 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
363 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
364 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
365 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
366 	    (((idm_conn_t *)arg0)->ic_transport_type ==
367 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
368 	ii_lun = 0; /* NA */
369 	ii_itt = ntohl(P->itt);
370 	ii_ttt = ntohl(P->rtt);
371 	ii_cmdsn = ntohl(P->expcmdsn);
372 	ii_statsn = ntohl(P->statsn);
373 	ii_datasn = 0;
374 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
375 	ii_flags = P->flags;
376 };
377 
378 #pragma D binding "1.5" translator
379 translator iscsiinfo_t < iscsi_text_hdr_t *P > {
380 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
381 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
382 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
383 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
384 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
385 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
386 	    (((idm_conn_t *)arg0)->ic_transport_type ==
387 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
388 	ii_lun = 0; /* NA */
389 	ii_itt = ntohl(P->itt);
390 	ii_ttt = ntohl(P->ttt);
391 	ii_cmdsn = ntohl(P->cmdsn);
392 	ii_statsn = ntohl(P->expstatsn);
393 	ii_datasn = 0;
394 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
395 	ii_flags = P->flags;
396 };
397 
398 #pragma D binding "1.5" translator
399 translator iscsiinfo_t < iscsi_text_rsp_hdr_t *P > {
400 	ii_initiator = ((idm_conn_t *)arg0)->ic_initiator_name;
401 	ii_target = ((idm_conn_t *)arg0)->ic_target_name;
402 	ii_isid = ((idm_conn_t *)arg0)->ic_isid;
403 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
404 	ii_transport = (((idm_conn_t *)arg0)->ic_transport_type ==
405 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
406 	    (((idm_conn_t *)arg0)->ic_transport_type ==
407 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
408 	ii_lun = 0; /* NA */
409 	ii_itt = ntohl(P->itt);
410 	ii_ttt = ntohl(P->ttt);
411 	ii_cmdsn = ntohl(P->expcmdsn);
412 	ii_statsn = ntohl(P->statsn);
413 	ii_datasn = 0;
414 	ii_datalen = P->dlength[0] << 16 | P->dlength[1] << 8 | P->dlength[2];
415 	ii_flags = P->flags;
416 };
417 
418 #pragma D binding "1.5" translator
419 translator iscsiinfo_t < idm_conn_t *P > {
420 	ii_initiator = P->ic_initiator_name;
421 	ii_target = P->ic_target_name;
422 	ii_isid = P->ic_isid;
423 	ii_tsih = ((idm_conn_t *)arg0)->ic_tsih;
424 	ii_transport = (P->ic_transport_type ==
425 	    IDM_TRANSPORT_TYPE_ISER) ? "iser-ib" :
426 	    (P->ic_transport_type ==
427 	    IDM_TRANSPORT_TYPE_SOCKETS) ? "sockets" : "Unknown";
428 	ii_lun = 0;
429 	ii_itt = 0;
430 	ii_ttt = 0;
431 	ii_cmdsn = 0;
432 	ii_statsn = 0;
433 	ii_datasn = 0;
434 	ii_datalen = 0;
435 	ii_flags = 0;
436 };
437 
438 #pragma D binding "1.5" translator
439 translator xferinfo_t < uintptr_t P > {
440 	xfer_laddr = (arg1 == NULL) ? 0xffffffff : (uintptr_t)arg1;
441 	xfer_loffset = arg2;
442 	xfer_lkey = 0; /* not used */
443 	xfer_len = arg6;
444 	xfer_raddr = arg3;
445 	xfer_roffset = arg4;
446 	xfer_rkey = arg5;
447 	xfer_type = arg7;
448 };
449 
450 inline int IDM_TRANSPORT_TYPE_ISER = 0;
451 #pragma D binding "1.5" IDM_TRANSPORT_TYPE_ISER
452 inline int IDM_TRANSPORT_TYPE_SOCKETS = 1;
453 #pragma D binding "1.5" IDM_TRANSPORT_TYPE_SOCKETS
454 
455