| 2415 | } |
| 2416 | |
| 2417 | void |
| 2418 | knlist_init(struct knlist *knl, void *lock, void (*kl_lock)(void *), |
| 2419 | void (*kl_unlock)(void *), |
| 2420 | void (*kl_assert_lock)(void *, int)) |
| 2421 | { |
| 2422 | |
| 2423 | if (lock == NULL) |
| 2424 | knl->kl_lockarg = &knlist_lock; |
| 2425 | else |
| 2426 | knl->kl_lockarg = lock; |
| 2427 | |
| 2428 | if (kl_lock == NULL) |
| 2429 | knl->kl_lock = knlist_mtx_lock; |
| 2430 | else |
| 2431 | knl->kl_lock = kl_lock; |
| 2432 | if (kl_unlock == NULL) |
| 2433 | knl->kl_unlock = knlist_mtx_unlock; |
| 2434 | else |
| 2435 | knl->kl_unlock = kl_unlock; |
| 2436 | if (kl_assert_lock == NULL) |
| 2437 | knl->kl_assert_lock = knlist_mtx_assert_lock; |
| 2438 | else |
| 2439 | knl->kl_assert_lock = kl_assert_lock; |
| 2440 | |
| 2441 | knl->kl_autodestroy = 0; |
| 2442 | SLIST_INIT(&knl->kl_list); |
| 2443 | } |
| 2444 | |
| 2445 | void |
| 2446 | knlist_init_mtx(struct knlist *knl, struct mtx *lock) |
no outgoing calls
no test coverage detected