Lines Matching defs:lecp

1679 	ldi_ev_callback_impl_t	*lecp;
1738 for (lecp = list_head(listp); lecp; lecp = list_next(listp, lecp)) {
1739 if (lecp->lec_lhp != handlep)
1741 lecp->lec_lhp = NULL;
1742 lecp->lec_notify = NULL;
1746 lecp->lec_finalize = NULL;
3149 ldi_ev_callback_impl_t *lecp = (ldi_ev_callback_impl_t *)arg;
3151 ASSERT(lecp != NULL);
3152 ASSERT(!ldi_native_cookie(lecp->lec_cookie));
3153 ASSERT(lecp->lec_lhp);
3154 ASSERT(lecp->lec_notify == NULL);
3155 ASSERT(lecp->lec_finalize);
3158 "ev_data=%p", (void *)lecp->lec_lhp, (void *)event_cookie,
3159 (void *)lecp->lec_arg, (void *)ev_data));
3161 lecp->lec_finalize(lecp->lec_lhp, (ldi_ev_cookie_t)event_cookie,
3162 lecp->lec_arg, ev_data);
3170 ldi_ev_callback_impl_t *lecp;
3210 lecp = kmem_zalloc(sizeof (ldi_ev_callback_impl_t), KM_SLEEP);
3223 kmem_free(lecp, sizeof (ldi_ev_callback_impl_t));
3229 i_ldi_ev_callback, (void *)lecp,
3230 (ddi_callback_id_t *)&lecp->lec_id)
3232 kmem_free(lecp, sizeof (ldi_ev_callback_impl_t));
3250 lecp->lec_lhp = lhp;
3251 lecp->lec_dev = lhp->lh_vp->v_rdev;
3252 lecp->lec_spec = VTYP_TO_STYP(lhp->lh_vp->v_type);
3253 lecp->lec_notify = callb->cb_notify;
3254 lecp->lec_finalize = callb->cb_finalize;
3255 lecp->lec_arg = arg;
3256 lecp->lec_cookie = cookie;
3258 lecp->lec_id = (void *)(uintptr_t)(++ldi_ev_id_pool);
3260 ASSERT(lecp->lec_id);
3261 lecp->lec_dip = dip;
3262 list_insert_tail(&ldi_ev_callback_list.le_head, lecp);
3264 *id = (ldi_callback_id_t)lecp->lec_id;
3277 ldi_ev_device_match(ldi_ev_callback_impl_t *lecp, dev_info_t *dip,
3280 ASSERT(lecp);
3286 ASSERT(lecp->lec_dip);
3287 ASSERT(lecp->lec_spec == S_IFCHR || lecp->lec_spec == S_IFBLK);
3288 ASSERT(lecp->lec_dev != DDI_DEV_T_ANY);
3289 ASSERT(lecp->lec_dev != DDI_DEV_T_NONE);
3290 ASSERT(lecp->lec_dev != NODEV);
3292 if (dip != lecp->lec_dip)
3296 if (dev != lecp->lec_dev || spec_type != lecp->lec_spec)
3322 ldi_ev_callback_impl_t *lecp;
3344 for (lecp = list_head(listp); lecp; lecp =
3346 ldi_ev_callback_list.le_walker_next = list_next(listp, lecp);
3349 if (!ldi_ev_device_match(lecp, dip, dev, spec_type))
3352 if (lecp->lec_lhp == NULL) {
3362 if (lecp->lec_notify == NULL) {
3371 lec_event = ldi_ev_get_type(lecp->lec_cookie);
3378 lecp->lec_lhp->lh_flags |= LH_FLAGS_NOTIFY;
3379 if (lecp->lec_notify(lecp->lec_lhp, lecp->lec_cookie,
3380 lecp->lec_arg, ev_data) != LDI_EV_SUCCESS) {
3401 lecp = list_prev(listp, lecp);
3403 for (; lecp; lecp = ldi_ev_callback_list.le_walker_prev) {
3404 ldi_ev_callback_list.le_walker_prev = list_prev(listp, lecp);
3409 if (!ldi_ev_device_match(lecp, dip, dev, spec_type))
3413 if (lecp->lec_finalize == NULL) {
3428 lec_event = ldi_ev_get_type(lecp->lec_cookie);
3437 lecp->lec_finalize(lecp->lec_lhp, lecp->lec_cookie,
3438 LDI_EV_FAILURE, lecp->lec_arg, ev_data);
3445 if (lecp->lec_lhp == NULL &&
3446 ldi_native_cookie(lecp->lec_cookie)) {
3450 lecp->lec_finalize = NULL;
3554 ldi_ev_callback_impl_t *lecp;
3574 for (lecp = list_head(listp); lecp; lecp =
3576 ldi_ev_callback_list.le_walker_next = list_next(listp, lecp);
3578 if (lecp->lec_finalize == NULL) {
3587 if (!ldi_ev_device_match(lecp, dip, dev, spec_type))
3599 lec_event = ldi_ev_get_type(lecp->lec_cookie);
3611 lecp->lec_finalize(lecp->lec_lhp, lecp->lec_cookie,
3612 ldi_result, lecp->lec_arg, ev_data);
3619 if (lecp->lec_lhp == NULL &&
3620 ldi_native_cookie(lecp->lec_cookie)) {
3624 lecp->lec_finalize = NULL;
3686 ldi_ev_callback_impl_t *lecp;
3705 for (lecp = list_head(listp); lecp; lecp = next) {
3706 next = list_next(listp, lecp);
3707 if (lecp->lec_id == id) {
3719 if (ldi_ev_callback_list.le_walker_next == lecp)
3721 if (ldi_ev_callback_list.le_walker_prev == lecp)
3725 list_remove(listp, lecp);
3726 found = lecp;