kgpio_minor
kgpio_minor_t kgpio_minor;
if (kgpio->kgpio_minor.kminor_id > 0) {
id_free(kgpio_g_ids, kgpio->kgpio_minor.kminor_id);
kgpio->kgpio_minor.kminor_id = 0;
avl_remove(&kgpio_g_minors, &kgpio->kgpio_minor);
(minor_t)kgpio->kgpio_minor.kminor_id, DDI_NT_GPIO_CTRL, 0) != 0) {
kgpio->kgpio_minor.kminor_id = id_alloc_nosleep(kgpio_g_ids);
if (kgpio->kgpio_minor.kminor_id == -1) {
kgpio->kgpio_minor.kminor_type = KGPIO_MINOR_T_CTRL;
kgpio->kgpio_minor.kminor_data.kminor_ctrl = kgpio;
avl_add(&kgpio_g_minors, &kgpio->kgpio_minor);