Lines Matching refs:da

116 	smb_doorarg_t	da;  in smb_kdoor_upcall()  local
119 bzero(&da, sizeof (smb_doorarg_t)); in smb_kdoor_upcall()
120 da.da_opcode = cmd; in smb_kdoor_upcall()
121 da.da_opname = smb_doorhdr_opname(cmd); in smb_kdoor_upcall()
122 da.da_req_xdr = req_xdr; in smb_kdoor_upcall()
123 da.da_rsp_xdr = rsp_xdr; in smb_kdoor_upcall()
124 da.da_req_data = req_data; in smb_kdoor_upcall()
125 da.da_rsp_data = rsp_data; in smb_kdoor_upcall()
130 da.da_opname); in smb_kdoor_upcall()
135 da.da_flags = SMB_DF_ASYNC; in smb_kdoor_upcall()
137 if ((da.da_event = smb_event_create(sv, SMB_EVENT_TIMEOUT)) == NULL) in smb_kdoor_upcall()
146 smb_event_destroy(da.da_event); in smb_kdoor_upcall()
156 if (da.da_flags & SMB_DF_ASYNC) { in smb_kdoor_upcall()
157 if ((rc = smb_kdoor_send(sv, &da)) == 0) { in smb_kdoor_upcall()
158 if (smb_event_wait(da.da_event) != 0) in smb_kdoor_upcall()
161 rc = smb_kdoor_receive(sv, &da); in smb_kdoor_upcall()
164 if ((rc = smb_kdoor_encode(&da)) == 0) { in smb_kdoor_upcall()
165 if ((rc = smb_kdoor_upcall_private(sv, &da)) == 0) in smb_kdoor_upcall()
166 rc = smb_kdoor_decode(&da); in smb_kdoor_upcall()
168 smb_kdoor_free(&da.da_arg); in smb_kdoor_upcall()
171 smb_event_destroy(da.da_event); in smb_kdoor_upcall()
186 smb_doorarg_t da; in smb_kdoor_send() local
189 bcopy(outer_da, &da, sizeof (smb_doorarg_t)); in smb_kdoor_send()
190 da.da_rsp_xdr = NULL; in smb_kdoor_send()
191 da.da_rsp_data = NULL; in smb_kdoor_send()
193 if (smb_kdoor_encode(&da) != 0) in smb_kdoor_send()
196 if ((rc = smb_kdoor_upcall_private(sv, &da)) == 0) in smb_kdoor_send()
197 rc = smb_kdoor_decode(&da); in smb_kdoor_send()
199 smb_kdoor_free(&da.da_arg); in smb_kdoor_send()
209 smb_doorarg_t da; in smb_kdoor_receive() local
212 bcopy(outer_da, &da, sizeof (smb_doorarg_t)); in smb_kdoor_receive()
213 da.da_opcode = SMB_DR_ASYNC_RESPONSE; in smb_kdoor_receive()
214 da.da_opname = smb_doorhdr_opname(da.da_opcode); in smb_kdoor_receive()
215 da.da_flags &= ~SMB_DF_ASYNC; in smb_kdoor_receive()
216 da.da_req_xdr = NULL; in smb_kdoor_receive()
217 da.da_req_data = NULL; in smb_kdoor_receive()
219 if (smb_kdoor_encode(&da) != 0) in smb_kdoor_receive()
222 if ((rc = smb_kdoor_upcall_private(sv, &da)) == 0) in smb_kdoor_receive()
223 rc = smb_kdoor_decode(&da); in smb_kdoor_receive()
225 smb_kdoor_free(&da.da_arg); in smb_kdoor_receive()
235 smb_kdoor_upcall_private(smb_server_t *sv, smb_doorarg_t *da) in smb_kdoor_upcall_private() argument
241 bcopy(&da->da_arg, &door_arg, sizeof (door_arg_t)); in smb_kdoor_upcall_private()
258 da->da_arg.rbuf = door_arg.data_ptr; in smb_kdoor_upcall_private()
259 da->da_arg.rsize = door_arg.rsize; in smb_kdoor_upcall_private()
264 smb_kdoor_encode(smb_doorarg_t *da) in smb_kdoor_encode() argument
270 len = xdr_sizeof(smb_doorhdr_xdr, &da->da_hdr); in smb_kdoor_encode()
271 if (da->da_req_xdr != NULL) in smb_kdoor_encode()
272 len += xdr_sizeof(da->da_req_xdr, da->da_req_data); in smb_kdoor_encode()
274 smb_kdoor_sethdr(da, len); in smb_kdoor_encode()
279 if (!smb_doorhdr_xdr(&xdrs, &da->da_hdr)) { in smb_kdoor_encode()
281 da->da_opname); in smb_kdoor_encode()
287 if (da->da_req_xdr != NULL) { in smb_kdoor_encode()
288 if (!da->da_req_xdr(&xdrs, da->da_req_data)) { in smb_kdoor_encode()
290 da->da_opname); in smb_kdoor_encode()
297 da->da_arg.data_ptr = buf; in smb_kdoor_encode()
298 da->da_arg.data_size = len; in smb_kdoor_encode()
299 da->da_arg.desc_ptr = NULL; in smb_kdoor_encode()
300 da->da_arg.desc_num = 0; in smb_kdoor_encode()
301 da->da_arg.rbuf = buf; in smb_kdoor_encode()
302 da->da_arg.rsize = len; in smb_kdoor_encode()
312 smb_kdoor_decode(smb_doorarg_t *da) in smb_kdoor_decode() argument
316 char *rbuf = da->da_arg.rbuf; in smb_kdoor_decode()
317 uint32_t rsize = da->da_arg.rsize; in smb_kdoor_decode()
321 da->da_opname); in smb_kdoor_decode()
329 da->da_opname); in smb_kdoor_decode()
334 if (!smb_kdoor_chkhdr(da, &hdr)) { in smb_kdoor_decode()
339 if (hdr.dh_datalen != 0 && da->da_rsp_xdr != NULL) { in smb_kdoor_decode()
340 if (!da->da_rsp_xdr(&xdrs, da->da_rsp_data)) { in smb_kdoor_decode()
342 da->da_opname); in smb_kdoor_decode()
353 smb_kdoor_sethdr(smb_doorarg_t *da, uint32_t datalen) in smb_kdoor_sethdr() argument
355 smb_doorhdr_t *hdr = &da->da_hdr; in smb_kdoor_sethdr()
359 hdr->dh_flags = da->da_flags | SMB_DF_SYSSPACE; in smb_kdoor_sethdr()
360 hdr->dh_op = da->da_opcode; in smb_kdoor_sethdr()
361 hdr->dh_txid = smb_event_txid(da->da_event); in smb_kdoor_sethdr()
367 smb_kdoor_chkhdr(smb_doorarg_t *da, smb_doorhdr_t *hdr) in smb_kdoor_chkhdr() argument
370 (hdr->dh_op != da->da_hdr.dh_op) || in smb_kdoor_chkhdr()
371 (hdr->dh_txid != da->da_hdr.dh_txid)) { in smb_kdoor_chkhdr()
373 da->da_opname); in smb_kdoor_chkhdr()
387 da->da_opname, hdr->dh_door_rc); in smb_kdoor_chkhdr()