llc1
llc1_t *llc1;
llc1 = kmem_zalloc(sizeof (llc1_t), KM_SLEEP);
llc1->llc_qptr = q;
WR(q)->q_ptr = q->q_ptr = (caddr_t)llc1;
llc1->llc_state = DL_UNATTACHED;
llc1->llc_style = DL_STYLE2;
llc1->llc_minor = minordev;
mutex_init(&llc1->llc_lock, NULL, MUTEX_DRIVER, NULL);
llc1insque(llc1, llc1_device_list.llc1_str_prev);
llc1_t *llc1;
llc1 = (llc1_t *)q->q_ptr;
(void) llc1remque(llc1); /* remove from active list */
mutex_enter(&llc1->llc_lock);
if (llc1->llc_state == DL_IDLE || llc1->llc_state == DL_UNBOUND) {
llc1->llc_state = DL_UNBOUND; /* force the issue */
if (llc1->llc_mcast != NULL) {
if ((mcast = llc1->llc_mcast[i]) != NULL) {
if (llc1->llc_mac_info &&
llc1->llc_mac_info->llcp_flags &
llc1->llc_mac_info,
llc1->llc_mcast[i] = NULL;
kmem_free(llc1->llc_mcast,
sizeof (llc_mcast_t *) * llc1->llc_multicnt);
llc1->llc_mcast = NULL;
llc1->llc_state = DL_UNATTACHED;
mutex_exit(&llc1->llc_lock);
mutex_destroy(&llc1->llc_lock);
kmem_free(llc1, sizeof (llc1_t));
struct llc1 *llc_next, *llc_prev;