Lines Matching refs:idm

219 	mutex_enter(&idm.idm_global_mutex);  in idm_ini_conn_create()
220 list_insert_tail(&idm.idm_ini_conn_list, ic); in idm_ini_conn_create()
221 mutex_exit(&idm.idm_global_mutex); in idm_ini_conn_create()
254 mutex_enter(&idm.idm_global_mutex); in idm_ini_conn_destroy()
255 list_remove(&idm.idm_ini_conn_list, ic); in idm_ini_conn_destroy()
256 mutex_exit(&idm.idm_global_mutex); in idm_ini_conn_destroy()
258 if (taskq_dispatch(idm.idm_global_taskq, in idm_ini_conn_destroy()
428 mutex_enter(&idm.idm_global_mutex); in idm_tgt_svc_create()
429 list_insert_tail(&idm.idm_tgt_svc_list, is); in idm_tgt_svc_create()
430 mutex_exit(&idm.idm_global_mutex); in idm_tgt_svc_create()
448 mutex_enter(&idm.idm_global_mutex); in idm_tgt_svc_destroy()
450 list_remove(&idm.idm_tgt_svc_list, is); in idm_tgt_svc_destroy()
452 cv_broadcast(&idm.idm_tgt_svc_cv); in idm_tgt_svc_destroy()
453 mutex_exit(&idm.idm_global_mutex); in idm_tgt_svc_destroy()
601 mutex_enter(&idm.idm_global_mutex); in idm_tgt_svc_lookup()
602 for (result = list_head(&idm.idm_tgt_svc_list); in idm_tgt_svc_lookup()
604 result = list_next(&idm.idm_tgt_svc_list, result)) { in idm_tgt_svc_lookup()
611 cv_wait(&idm.idm_tgt_svc_cv, in idm_tgt_svc_lookup()
612 &idm.idm_global_mutex); in idm_tgt_svc_lookup()
613 mutex_exit(&idm.idm_global_mutex); in idm_tgt_svc_lookup()
617 mutex_exit(&idm.idm_global_mutex); in idm_tgt_svc_lookup()
621 mutex_exit(&idm.idm_global_mutex); in idm_tgt_svc_lookup()
974 ASSERT(idm.idm_buf_cache != NULL); in idm_buf_alloc()
988 buf = kmem_cache_alloc(idm.idm_buf_cache, KM_NOSLEEP); in idm_buf_alloc()
1021 kmem_cache_free(idm.idm_buf_cache, buf); in idm_buf_alloc()
1041 kmem_cache_free(idm.idm_buf_cache, buf); in idm_buf_alloc()
1074 kmem_cache_free(idm.idm_buf_cache, buf); in idm_buf_free()
1264 idt = kmem_cache_alloc(idm.idm_task_cache, KM_NOSLEEP); in idm_task_alloc()
1275 kmem_cache_free(idm.idm_task_cache, idt); in idm_task_alloc()
1370 kmem_cache_free(idm.idm_task_cache, idt); in idm_task_free()
1399 rw_enter(&idm.idm_taskid_table_lock, RW_READER); in idm_task_find_common()
1400 if (tt >= idm.idm_taskid_max) { in idm_task_find_common()
1401 rw_exit(&idm.idm_taskid_table_lock); in idm_task_find_common()
1405 idt = idm.idm_taskid_table[tt]; in idm_task_find_common()
1426 rw_exit(&idm.idm_taskid_table_lock); in idm_task_find_common()
1438 rw_exit(&idm.idm_taskid_table_lock); in idm_task_find_common()
1477 rw_enter(&idm.idm_taskid_table_lock, RW_READER); in idm_task_find_by_handle()
1479 for (idx = 0; idx < idm.idm_taskid_max; idx++) { in idm_task_find_by_handle()
1480 idt = idm.idm_taskid_table[idx]; in idm_task_find_by_handle()
1505 rw_exit(&idm.idm_taskid_table_lock); in idm_task_find_by_handle()
1507 if ((idt == NULL) || (idx == idm.idm_taskid_max)) in idm_task_find_by_handle()
1541 rw_enter(&idm.idm_taskid_table_lock, RW_READER); in idm_task_abort()
1542 for (idx = 0; idx < idm.idm_taskid_max; idx++) { in idm_task_abort()
1543 task = idm.idm_taskid_table[idx]; in idm_task_abort()
1550 rw_exit(&idm.idm_taskid_table_lock); in idm_task_abort()
1552 rw_enter(&idm.idm_taskid_table_lock, RW_READER); in idm_task_abort()
1556 rw_exit(&idm.idm_taskid_table_lock); in idm_task_abort()
2182 if (taskq_dispatch(idm.idm_global_taskq, in idm_refcnt_rele()
2210 if (taskq_dispatch(idm.idm_global_taskq, in idm_refcnt_rele_and_destroy()
2243 if (taskq_dispatch(idm.idm_global_taskq, in idm_refcnt_async_wait_ref()
2303 rw_init(&idm.idm_taskid_table_lock, NULL, RW_DRIVER, NULL); in _idm_init()
2306 mutex_init(&idm.idm_global_mutex, NULL, MUTEX_DEFAULT, NULL); in _idm_init()
2308 cv_init(&idm.idm_tgt_svc_cv, NULL, CV_DEFAULT, NULL); in _idm_init()
2309 cv_init(&idm.idm_wd_cv, NULL, CV_DEFAULT, NULL); in _idm_init()
2315 idm.idm_global_taskq = taskq_create("idm_global_taskq", 1, minclsyspri, in _idm_init()
2317 if (idm.idm_global_taskq == NULL) { in _idm_init()
2318 cv_destroy(&idm.idm_wd_cv); in _idm_init()
2319 cv_destroy(&idm.idm_tgt_svc_cv); in _idm_init()
2320 mutex_destroy(&idm.idm_global_mutex); in _idm_init()
2321 rw_destroy(&idm.idm_taskid_table_lock); in _idm_init()
2326 idm.idm_wd_thread = thread_create(NULL, 0, in _idm_init()
2328 if (idm.idm_wd_thread == NULL) { in _idm_init()
2330 taskq_destroy(idm.idm_global_taskq); in _idm_init()
2331 cv_destroy(&idm.idm_wd_cv); in _idm_init()
2332 cv_destroy(&idm.idm_tgt_svc_cv); in _idm_init()
2333 mutex_destroy(&idm.idm_global_mutex); in _idm_init()
2334 rw_destroy(&idm.idm_taskid_table_lock); in _idm_init()
2339 mutex_enter(&idm.idm_global_mutex); in _idm_init()
2340 while (!idm.idm_wd_thread_running) in _idm_init()
2341 cv_wait(&idm.idm_wd_cv, &idm.idm_global_mutex); in _idm_init()
2342 mutex_exit(&idm.idm_global_mutex); in _idm_init()
2348 idm.idm_taskid_max = idm_max_taskids; in _idm_init()
2349 idm.idm_taskid_table = (idm_task_t **) in _idm_init()
2350 kmem_zalloc(idm.idm_taskid_max * sizeof (idm_task_t *), KM_SLEEP); in _idm_init()
2351 idm.idm_taskid_next = 0; in _idm_init()
2354 idm.idm_buf_cache = kmem_cache_create("idm_buf_cache", in _idm_init()
2361 idm.idm_task_cache = kmem_cache_create("idm_task_cache", in _idm_init()
2367 list_create(&idm.idm_tgt_svc_list, sizeof (idm_svc_t), in _idm_init()
2369 list_create(&idm.idm_tgt_conn_list, sizeof (idm_conn_t), in _idm_init()
2371 list_create(&idm.idm_ini_conn_list, sizeof (idm_conn_t), in _idm_init()
2378 (void) idm_idpool_create(&idm.idm_conn_id_pool); in _idm_init()
2386 if (!list_is_empty(&idm.idm_ini_conn_list) || in _idm_fini()
2387 !list_is_empty(&idm.idm_tgt_conn_list) || in _idm_fini()
2388 !list_is_empty(&idm.idm_tgt_svc_list)) { in _idm_fini()
2392 mutex_enter(&idm.idm_global_mutex); in _idm_fini()
2393 idm.idm_wd_thread_running = B_FALSE; in _idm_fini()
2394 cv_signal(&idm.idm_wd_cv); in _idm_fini()
2395 mutex_exit(&idm.idm_global_mutex); in _idm_fini()
2397 thread_join(idm.idm_wd_thread_did); in _idm_fini()
2399 idm_idpool_destroy(&idm.idm_conn_id_pool); in _idm_fini()
2402 mutex_enter(&idm.idm_global_mutex); in _idm_fini()
2404 mutex_exit(&idm.idm_global_mutex); in _idm_fini()
2409 list_destroy(&idm.idm_ini_conn_list); in _idm_fini()
2410 list_destroy(&idm.idm_tgt_conn_list); in _idm_fini()
2411 list_destroy(&idm.idm_tgt_svc_list); in _idm_fini()
2412 kmem_cache_destroy(idm.idm_task_cache); in _idm_fini()
2413 kmem_cache_destroy(idm.idm_buf_cache); in _idm_fini()
2414 kmem_free(idm.idm_taskid_table, in _idm_fini()
2415 idm.idm_taskid_max * sizeof (idm_task_t *)); in _idm_fini()
2416 mutex_destroy(&idm.idm_global_mutex); in _idm_fini()
2417 cv_destroy(&idm.idm_wd_cv); in _idm_fini()
2418 cv_destroy(&idm.idm_tgt_svc_cv); in _idm_fini()
2419 rw_destroy(&idm.idm_taskid_table_lock); in _idm_fini()