Lines Matching refs:vdds

146 	vnet_dds_info_t *vdds = arg;  in debug_printf()  local
148 if (vdds != NULL) { in debug_printf()
150 vdds->vnetp->instance, fname); in debug_printf()
236 vnet_dds_info_t *vdds = &vnetp->vdds_info; in vdds_init() local
239 vdds->vnetp = vnetp; in vdds_init()
240 DBG1(vdds, "Initializing.."); in vdds_init()
242 if ((vdds->dds_taskqp = ddi_taskq_create(vnetp->dip, qname, 1, in vdds_init()
248 mutex_init(&vdds->lock, NULL, MUTEX_DRIVER, NULL); in vdds_init()
258 vnet_dds_info_t *vdds = &vnetp->vdds_info; in vdds_cleanup() local
260 DBG1(vdds, "Cleanup..."); in vdds_cleanup()
265 ddi_taskq_destroy(vdds->dds_taskqp); in vdds_cleanup()
266 vdds->dds_taskqp = NULL; in vdds_cleanup()
267 mutex_destroy(&vdds->lock); in vdds_cleanup()
268 DBG1(vdds, "Cleanup complete"); in vdds_cleanup()
278 vnet_dds_info_t *vdds = &vnetp->vdds_info; in vdds_cleanup_hybrid_res() local
280 DBG1(vdds, "Hybrid device cleanup..."); in vdds_cleanup_hybrid_res()
281 mutex_enter(&vdds->lock); in vdds_cleanup_hybrid_res()
282 if (vdds->task_flags == VNET_DDS_TASK_ADD_SHARE) { in vdds_cleanup_hybrid_res()
288 vdds->task_flags = 0; in vdds_cleanup_hybrid_res()
289 DBG2(vdds, "Task for ADD is pending, clean flags only"); in vdds_cleanup_hybrid_res()
290 } else if ((vdds->hio_dip != NULL) && (vdds->task_flags == 0)) { in vdds_cleanup_hybrid_res()
295 vdds->task_flags = VNET_DDS_TASK_REL_SHARE; in vdds_cleanup_hybrid_res()
296 (void) ddi_taskq_dispatch(vdds->dds_taskqp, in vdds_cleanup_hybrid_res()
298 DBG2(vdds, "Dispatched a task to destroy HIO device"); in vdds_cleanup_hybrid_res()
305 mutex_exit(&vdds->lock); in vdds_cleanup_hybrid_res()
306 DBG1(vdds, "Hybrid device cleanup complete"); in vdds_cleanup_hybrid_res()
316 vnet_dds_info_t *vdds = &vnetp->vdds_info; in vdds_cleanup_hio() local
319 ddi_taskq_wait(vdds->dds_taskqp); in vdds_cleanup_hio()
322 ddi_taskq_wait(vdds->dds_taskqp); in vdds_cleanup_hio()
331 vnet_dds_info_t *vdds = &vnetp->vdds_info; in vdds_process_dds_msg() local
334 DBG1(vdds, "DDS message received..."); in vdds_process_dds_msg()
337 DBG2(vdds, "Invalid class send NACK"); in vdds_process_dds_msg()
341 mutex_enter(&vdds->lock); in vdds_process_dds_msg()
344 DBG2(vdds, "DDS_VNET_ADD_SHARE message..."); in vdds_process_dds_msg()
345 if ((vdds->task_flags != 0) || (vdds->hio_dip != NULL)) { in vdds_process_dds_msg()
350 DWARN(vdds, "NACK: Already pending DDS task"); in vdds_process_dds_msg()
352 mutex_exit(&vdds->lock); in vdds_process_dds_msg()
355 vdds->task_flags = VNET_DDS_TASK_ADD_SHARE; in vdds_process_dds_msg()
357 DBG2(vdds, "Dispatching task for ADD_SHARE"); in vdds_process_dds_msg()
358 rv = ddi_taskq_dispatch(vdds->dds_taskqp, in vdds_process_dds_msg()
362 DBG2(vdds, "NACK: Failed to dispatch task"); in vdds_process_dds_msg()
364 vdds->task_flags = 0; in vdds_process_dds_msg()
369 DBG2(vdds, "DDS_VNET_DEL_SHARE message..."); in vdds_process_dds_msg()
370 if (vdds->task_flags == VNET_DDS_TASK_ADD_SHARE) { in vdds_process_dds_msg()
375 DBG2(vdds, "ACK:ADD_SHARE task still pending"); in vdds_process_dds_msg()
376 vdds->task_flags = 0; in vdds_process_dds_msg()
378 mutex_exit(&vdds->lock); in vdds_process_dds_msg()
381 if ((vdds->task_flags == 0) && (vdds->hio_dip == NULL)) { in vdds_process_dds_msg()
383 DBG2(vdds, "NACK:No HIO device exists"); in vdds_process_dds_msg()
385 mutex_exit(&vdds->lock); in vdds_process_dds_msg()
388 vdds->task_flags = VNET_DDS_TASK_DEL_SHARE; in vdds_process_dds_msg()
389 bcopy(dmsg, &vdds->dmsg, sizeof (vio_dds_msg_t)); in vdds_process_dds_msg()
390 DBG2(vdds, "Dispatching DEL_SHARE task"); in vdds_process_dds_msg()
391 rv = ddi_taskq_dispatch(vdds->dds_taskqp, in vdds_process_dds_msg()
395 DBG2(vdds, "NACK: failed to dispatch task"); in vdds_process_dds_msg()
397 vdds->task_flags = 0; in vdds_process_dds_msg()
401 DBG2(vdds, "Reply for REL_SHARE reply=%d", in vdds_process_dds_msg()
405 DWARN(vdds, "Discarding Unknown DDS message"); in vdds_process_dds_msg()
408 mutex_exit(&vdds->lock); in vdds_process_dds_msg()
419 vnet_dds_info_t *vdds = &vnetp->vdds_info; in vdds_process_dds_msg_task() local
420 vio_dds_msg_t *dmsg = &vdds->dmsg; in vdds_process_dds_msg_task()
426 DBG1(vdds, "DDS task started..."); in vdds_process_dds_msg_task()
427 mutex_enter(&vdds->lock); in vdds_process_dds_msg_task()
428 switch (vdds->task_flags) { in vdds_process_dds_msg_task()
430 DBG2(vdds, "ADD_SHARE task..."); in vdds_process_dds_msg_task()
443 DERR(vdds, "Failed to create HIO node"); in vdds_process_dds_msg_task()
445 vdds->hio_dip = dip; in vdds_process_dds_msg_task()
446 vdds->hio_cookie = hio_cookie; in vdds_process_dds_msg_task()
447 (void) snprintf(vdds->hio_ifname, in vdds_process_dds_msg_task()
448 sizeof (vdds->hio_ifname), "%s%d", in vdds_process_dds_msg_task()
451 rv = vnet_hio_mac_init(vnetp, vdds->hio_ifname); in vdds_process_dds_msg_task()
454 DERR(vdds, "HIO mac init failed, cleaning up"); in vdds_process_dds_msg_task()
458 DERR(vdds, "Successfully destroyed" in vdds_process_dds_msg_task()
465 vdds->hio_dip = NULL; in vdds_process_dds_msg_task()
466 vdds->hio_cookie = 0; in vdds_process_dds_msg_task()
474 DERR(vdds, "Successfully created HIO node"); in vdds_process_dds_msg_task()
479 DBG2(vdds, "DEL_SHARE task..."); in vdds_process_dds_msg_task()
481 DBG2(vdds, "NACK: No HIO device destroy"); in vdds_process_dds_msg_task()
486 vdds->hio_cookie); in vdds_process_dds_msg_task()
489 DERR(vdds, "Successfully destroyed" in vdds_process_dds_msg_task()
496 DBG2(vdds, "ACK: HIO device destroyed"); in vdds_process_dds_msg_task()
498 vdds->hio_dip = 0; in vdds_process_dds_msg_task()
499 vdds->hio_cookie = 0; in vdds_process_dds_msg_task()
503 DBG2(vdds, "REL_SHARE task..."); in vdds_process_dds_msg_task()
507 vdds->hio_cookie); in vdds_process_dds_msg_task()
509 DERR(vdds, "Successfully destroyed " in vdds_process_dds_msg_task()
517 vdds->hio_dip = 0; in vdds_process_dds_msg_task()
518 vdds->hio_cookie = 0; in vdds_process_dds_msg_task()
524 vdds->task_flags = 0; in vdds_process_dds_msg_task()
525 mutex_exit(&vdds->lock); in vdds_process_dds_msg_task()
534 vnet_dds_info_t *vdds = &vnetp->vdds_info; in vdds_send_dds_rel_msg() local
539 DBG1(vdds, "Sending DDS_VNET_REL_SHARE message"); in vdds_send_dds_rel_msg()
546 vmsg.dds_req_id = (++vdds->dds_req_id); in vdds_send_dds_rel_msg()
548 smsg->cookie = vdds->hio_cookie; in vdds_send_dds_rel_msg()
559 vnet_dds_info_t *vdds = &vnetp->vdds_info; in vdds_send_dds_resp_msg() local
562 DBG1(vdds, "Sending a response mesage=%d", ack); in vdds_send_dds_resp_msg()