Lines Matching refs:lap

232 	struct lap_cb *lap;  in irlmp_close_lsap()  local
242 lap = self->lap; in irlmp_close_lsap()
243 if (lap) { in irlmp_close_lsap()
244 IRDA_ASSERT(lap->magic == LMP_LAP_MAGIC, return;); in irlmp_close_lsap()
251 irlmp_do_lap_event(self->lap, in irlmp_close_lsap()
255 lsap = hashbin_remove(lap->lsaps, (long) self, NULL); in irlmp_close_lsap()
257 lap->cache.valid = FALSE; in irlmp_close_lsap()
260 self->lap = NULL; in irlmp_close_lsap()
284 struct lap_cb *lap; in irlmp_register_link() local
293 lap = kzalloc(sizeof(struct lap_cb), GFP_KERNEL); in irlmp_register_link()
294 if (lap == NULL) in irlmp_register_link()
297 lap->irlap = irlap; in irlmp_register_link()
298 lap->magic = LMP_LAP_MAGIC; in irlmp_register_link()
299 lap->saddr = saddr; in irlmp_register_link()
300 lap->daddr = DEV_ADDR_ANY; in irlmp_register_link()
302 lap->cache.valid = FALSE; in irlmp_register_link()
304 lap->lsaps = hashbin_new(HB_LOCK); in irlmp_register_link()
305 if (lap->lsaps == NULL) { in irlmp_register_link()
308 kfree(lap); in irlmp_register_link()
312 lap->lap_state = LAP_STANDBY; in irlmp_register_link()
314 init_timer(&lap->idle_timer); in irlmp_register_link()
319 hashbin_insert(irlmp->links, (irda_queue_t *) lap, lap->saddr, NULL); in irlmp_register_link()
326 notify->instance = lap; in irlmp_register_link()
373 struct lap_cb *lap; in irlmp_connect_request() local
436 lap = hashbin_lock_find(irlmp->links, saddr, NULL); in irlmp_connect_request()
437 if (lap == NULL) { in irlmp_connect_request()
444 if (lap->daddr == DEV_ADDR_ANY) in irlmp_connect_request()
445 lap->daddr = daddr; in irlmp_connect_request()
446 else if (lap->daddr != daddr) { in irlmp_connect_request()
448 if (HASHBIN_GET_SIZE(lap->lsaps) == 0) { in irlmp_connect_request()
466 self->lap = lap; in irlmp_connect_request()
476 IRDA_ASSERT(lsap->lap != NULL, return -1;); in irlmp_connect_request()
477 IRDA_ASSERT(lsap->lap->magic == LMP_LAP_MAGIC, return -1;); in irlmp_connect_request()
479 hashbin_insert(self->lap->lsaps, (irda_queue_t *) self, (long) self, in irlmp_connect_request()
520 IRDA_ASSERT(self->lap != NULL, return;); in irlmp_connect_indication()
530 self->qos = *self->lap->qos; in irlmp_connect_indication()
532 max_seg_size = self->lap->qos->data_size.value-LMP_HEADER; in irlmp_connect_indication()
533 lap_header_size = IRLAP_GET_HEADER_SIZE(self->lap->irlap); in irlmp_connect_indication()
593 IRDA_ASSERT(self->lap != NULL, return;); in irlmp_connect_confirm()
595 self->qos = *self->lap->qos; in irlmp_connect_confirm()
597 max_seg_size = self->lap->qos->data_size.value-LMP_HEADER; in irlmp_connect_confirm()
598 lap_header_size = IRLAP_GET_HEADER_SIZE(self->lap->irlap); in irlmp_connect_confirm()
633 (orig->lap == NULL)) { in irlmp_dup()
665 new->lap->cache.valid = FALSE; in irlmp_dup()
710 IRDA_ASSERT(self->lap != NULL, return -1;); in irlmp_disconnect_request()
711 IRDA_ASSERT(self->lap->magic == LMP_LAP_MAGIC, return -1;); in irlmp_disconnect_request()
712 IRDA_ASSERT(self->lap->lsaps != NULL, return -1;); in irlmp_disconnect_request()
714 lsap = hashbin_remove(self->lap->lsaps, (long) self, NULL); in irlmp_disconnect_request()
716 self->lap->cache.valid = FALSE; in irlmp_disconnect_request()
728 self->lap = NULL; in irlmp_disconnect_request()
764 IRDA_ASSERT(self->lap != NULL, return;); in irlmp_disconnect_indication()
765 IRDA_ASSERT(self->lap->lsaps != NULL, return;); in irlmp_disconnect_indication()
767 lsap = hashbin_remove(self->lap->lsaps, (long) self, NULL); in irlmp_disconnect_indication()
769 self->lap->cache.valid = FALSE; in irlmp_disconnect_indication()
778 self->lap = NULL; in irlmp_disconnect_indication()
804 struct lap_cb *lap; in irlmp_do_expiry() local
815 lap = (struct lap_cb *) hashbin_get_first(irlmp->links); in irlmp_do_expiry()
816 while (lap != NULL) { in irlmp_do_expiry()
817 IRDA_ASSERT(lap->magic == LMP_LAP_MAGIC, return;); in irlmp_do_expiry()
819 if (lap->lap_state == LAP_STANDBY) { in irlmp_do_expiry()
821 irlmp_expire_discoveries(irlmp->cachelog, lap->saddr, in irlmp_do_expiry()
824 lap = (struct lap_cb *) hashbin_get_next(irlmp->links); in irlmp_do_expiry()
837 struct lap_cb *lap; in irlmp_do_discovery() local
865 lap = (struct lap_cb *) hashbin_get_first(irlmp->links); in irlmp_do_discovery()
866 while (lap != NULL) { in irlmp_do_discovery()
867 IRDA_ASSERT(lap->magic == LMP_LAP_MAGIC, return;); in irlmp_do_discovery()
869 if (lap->lap_state == LAP_STANDBY) { in irlmp_do_discovery()
871 irlmp_do_lap_event(lap, LM_LAP_DISCOVERY_REQUEST, in irlmp_do_discovery()
874 lap = (struct lap_cb *) hashbin_get_next(irlmp->links); in irlmp_do_discovery()
1196 struct lap_cb *lap; in irlmp_connless_data_request() local
1216 lap = (struct lap_cb *) hashbin_get_first(irlmp->links); in irlmp_connless_data_request()
1217 while (lap != NULL) { in irlmp_connless_data_request()
1218 IRDA_ASSERT(lap->magic == LMP_LAP_MAGIC, return -1;); in irlmp_connless_data_request()
1226 irlap_unitdata_request(lap->irlap, clone_skb); in irlmp_connless_data_request()
1230 lap = (struct lap_cb *) hashbin_get_next(irlmp->links); in irlmp_connless_data_request()
1632 struct lap_cb *lap; in irlmp_slsap_inuse() local
1656 lap = (struct lap_cb *) hashbin_get_first(irlmp->links); in irlmp_slsap_inuse()
1657 while (lap != NULL) { in irlmp_slsap_inuse()
1658 IRDA_ASSERT(lap->magic == LMP_LAP_MAGIC, goto errlap;); in irlmp_slsap_inuse()
1663 spin_lock(&lap->lsaps->hb_spinlock); in irlmp_slsap_inuse()
1666 self = (struct lsap_cb *) hashbin_get_first(lap->lsaps); in irlmp_slsap_inuse()
1676 self = (struct lsap_cb*) hashbin_get_next(lap->lsaps); in irlmp_slsap_inuse()
1678 spin_unlock(&lap->lsaps->hb_spinlock); in irlmp_slsap_inuse()
1681 lap = (struct lap_cb *) hashbin_get_next(irlmp->links); in irlmp_slsap_inuse()
1711 spin_unlock(&lap->lsaps->hb_spinlock); in irlmp_slsap_inuse()
1933 struct lap_cb *lap = v; in irlmp_seq_show() local
1936 irlmp_state[lap->lap_state]); in irlmp_seq_show()
1939 lap->saddr, lap->daddr); in irlmp_seq_show()
1941 HASHBIN_GET_SIZE(lap->lsaps)); in irlmp_seq_show()
1947 spin_lock(&lap->lsaps->hb_spinlock); in irlmp_seq_show()
1950 for (self = (struct lsap_cb *) hashbin_get_first(lap->lsaps); in irlmp_seq_show()
1952 self = (struct lsap_cb *)hashbin_get_next(lap->lsaps)) { in irlmp_seq_show()
1965 spin_unlock(&lap->lsaps->hb_spinlock); in irlmp_seq_show()