i2cnex_minors
mutex_enter(&i2cnex_minors.im_mutex);
avl_remove(&i2cnex_minors.im_nexi, nex);
mutex_exit(&i2cnex_minors.im_mutex);
mutex_enter(&i2cnex_minors.im_mutex);
avl_add(&i2cnex_minors.im_nexi, nex);
mutex_exit(&i2cnex_minors.im_mutex);
mutex_enter(&i2cnex_minors.im_mutex);
avl_remove(&i2cnex_minors.im_nexi, nex);
mutex_exit(&i2cnex_minors.im_mutex);
mutex_enter(&i2cnex_minors.im_mutex);
avl_add(&i2cnex_minors.im_nexi, nex);
mutex_exit(&i2cnex_minors.im_mutex);
mutex_enter(&i2cnex_minors.im_mutex);
avl_remove(&i2cnex_minors.im_nexi, nex);
mutex_exit(&i2cnex_minors.im_mutex);
mutex_enter(&i2cnex_minors.im_mutex);
avl_add(&i2cnex_minors.im_nexi, nex);
mutex_exit(&i2cnex_minors.im_mutex);
mutex_enter(&i2cnex_minors.im_mutex);
avl_remove(&i2cnex_minors.im_nexi, nex);
mutex_exit(&i2cnex_minors.im_mutex);
mutex_enter(&i2cnex_minors.im_mutex);
avl_add(&i2cnex_minors.im_nexi, nex);
mutex_exit(&i2cnex_minors.im_mutex);
mutex_destroy(&i2cnex_minors.im_mutex);
avl_destroy(&i2cnex_minors.im_users);
avl_destroy(&i2cnex_minors.im_nexi);
list_destroy(&i2cnex_minors.im_roots);
id_space_destroy(i2cnex_minors.im_user_ids);
id_space_destroy(i2cnex_minors.im_ids);
i2cnex_minors.im_ids = NULL;
i2cnex_minors.im_ids = id_space_create("i2cnex_minors",
if (i2cnex_minors.im_ids == NULL) {
i2cnex_minors.im_user_ids = id_space_create("i2cnex_user_minors",
if (i2cnex_minors.im_ids == NULL) {
id_space_destroy(i2cnex_minors.im_ids);
list_create(&i2cnex_minors.im_roots, sizeof (i2c_root_t),
avl_create(&i2cnex_minors.im_nexi, i2c_nexus_compare,
avl_create(&i2cnex_minors.im_users, i2c_user_compare,
mutex_init(&i2cnex_minors.im_mutex, NULL, MUTEX_DRIVER, NULL);
i2cnex_minors_t i2cnex_minors;
mutex_enter(&i2cnex_minors.im_mutex);
for (i2c_root_t *r = list_head(&i2cnex_minors.im_roots); r != NULL;
r = list_next(&i2cnex_minors.im_roots, r)) {
mutex_exit(&i2cnex_minors.im_mutex);
mutex_exit(&i2cnex_minors.im_mutex);
list_insert_tail(&i2cnex_minors.im_roots, root);
mutex_exit(&i2cnex_minors.im_mutex);
VERIFY(MUTEX_HELD(&i2cnex_minors.im_mutex));
list_remove(&i2cnex_minors.im_roots, root);
id_free(i2cnex_minors.im_ids, nex->in_minor);
nex->in_minor = id_alloc_nosleep(i2cnex_minors.im_ids);
mutex_enter(&i2cnex_minors.im_mutex);
ret = avl_find(&i2cnex_minors.im_nexi, &n, NULL);
mutex_exit(&i2cnex_minors.im_mutex);
extern i2cnex_minors_t i2cnex_minors;
mutex_enter(&i2cnex_minors.im_mutex);
mutex_exit(&i2cnex_minors.im_mutex);
mutex_enter(&i2cnex_minors.im_mutex);
avl_remove(&i2cnex_minors.im_users, user);
mutex_exit(&i2cnex_minors.im_mutex);
user->iu_minor = id_alloc_nosleep(i2cnex_minors.im_user_ids);
mutex_enter(&i2cnex_minors.im_mutex);
avl_add(&i2cnex_minors.im_users, user);
mutex_exit(&i2cnex_minors.im_mutex);
id_free(i2cnex_minors.im_user_ids, user->iu_minor);
mutex_enter(&i2cnex_minors.im_mutex);
ret = avl_find(&i2cnex_minors.im_users, &u, NULL);
mutex_exit(&i2cnex_minors.im_mutex);