Lines Matching refs:self
23 irnet_socket * self = in irnet_ppp_disconnect() local
26 if (self == NULL) in irnet_ppp_disconnect()
32 if (self->ppp_open && !self->ttp_open && !self->ttp_connect) { in irnet_ppp_disconnect()
33 ppp_unregister_channel(&self->chan); in irnet_ppp_disconnect()
34 self->ppp_open = 0; in irnet_ppp_disconnect()
124 irnet_open_tsap(irnet_socket * self) in irnet_open_tsap() argument
128 DENTER(IRDA_SR_TRACE, "(self=0x%p)\n", self); in irnet_open_tsap()
130 DABORT(self->tsap != NULL, -EBUSY, IRDA_SR_ERROR, "Already busy !\n"); in irnet_open_tsap()
141 notify.instance = self; in irnet_open_tsap()
145 self->tsap = irttp_open_tsap(LSAP_ANY, DEFAULT_INITIAL_CREDIT, in irnet_open_tsap()
147 DABORT(self->tsap == NULL, -ENOMEM, in irnet_open_tsap()
151 self->stsap_sel = self->tsap->stsap_sel; in irnet_open_tsap()
154 self->tsap, self->stsap_sel); in irnet_open_tsap()
173 irnet_ias_to_tsap(irnet_socket * self, in irnet_ias_to_tsap() argument
179 DENTER(IRDA_SR_TRACE, "(self=0x%p)\n", self); in irnet_ias_to_tsap()
182 self->errno = 0; in irnet_ias_to_tsap()
191 self->errno = -EADDRNOTAVAIL; in irnet_ias_to_tsap()
197 self->errno = -EHOSTUNREACH; in irnet_ias_to_tsap()
217 self->errno = -EADDRNOTAVAIL; in irnet_ias_to_tsap()
220 self->errno = -EADDRNOTAVAIL; in irnet_ias_to_tsap()
231 if(!(self->errno)) in irnet_ias_to_tsap()
235 self->errno = -EHOSTUNREACH; in irnet_ias_to_tsap()
257 irnet_find_lsap_sel(irnet_socket * self) in irnet_find_lsap_sel() argument
259 DENTER(IRDA_SR_TRACE, "(self=0x%p)\n", self); in irnet_find_lsap_sel()
262 DABORT(self->iriap, -EBUSY, IRDA_SR_ERROR, "busy with a previous query.\n"); in irnet_find_lsap_sel()
265 self->iriap = iriap_open(LSAP_ANY, IAS_CLIENT, self, in irnet_find_lsap_sel()
269 self->errno = -EHOSTUNREACH; in irnet_find_lsap_sel()
272 iriap_getvaluebyclass_request(self->iriap, self->rsaddr, self->daddr, in irnet_find_lsap_sel()
292 irnet_connect_tsap(irnet_socket * self) in irnet_connect_tsap() argument
296 DENTER(IRDA_SR_TRACE, "(self=0x%p)\n", self); in irnet_connect_tsap()
299 err = irnet_open_tsap(self); in irnet_connect_tsap()
302 clear_bit(0, &self->ttp_connect); in irnet_connect_tsap()
308 err = irttp_connect_request(self->tsap, self->dtsap_sel, in irnet_connect_tsap()
309 self->rsaddr, self->daddr, NULL, in irnet_connect_tsap()
310 self->max_sdu_size_rx, NULL); in irnet_connect_tsap()
313 clear_bit(0, &self->ttp_connect); in irnet_connect_tsap()
336 irnet_discover_next_daddr(irnet_socket * self) in irnet_discover_next_daddr() argument
340 if(self->iriap) in irnet_discover_next_daddr()
342 iriap_close(self->iriap); in irnet_discover_next_daddr()
343 self->iriap = NULL; in irnet_discover_next_daddr()
346 self->iriap = iriap_open(LSAP_ANY, IAS_CLIENT, self, in irnet_discover_next_daddr()
348 if(self->iriap == NULL) in irnet_discover_next_daddr()
352 self->disco_index++; in irnet_discover_next_daddr()
355 if(self->disco_index < self->disco_number) in irnet_discover_next_daddr()
358 iriap_getvaluebyclass_request(self->iriap, in irnet_discover_next_daddr()
359 self->discoveries[self->disco_index].saddr, in irnet_discover_next_daddr()
360 self->discoveries[self->disco_index].daddr, in irnet_discover_next_daddr()
395 irnet_discover_daddr_and_lsap_sel(irnet_socket * self) in irnet_discover_daddr_and_lsap_sel() argument
399 DENTER(IRDA_SR_TRACE, "(self=0x%p)\n", self); in irnet_discover_daddr_and_lsap_sel()
402 self->discoveries = irlmp_get_discoveries(&self->disco_number, self->mask, in irnet_discover_daddr_and_lsap_sel()
406 if(self->discoveries == NULL) in irnet_discover_daddr_and_lsap_sel()
408 self->disco_number = -1; in irnet_discover_daddr_and_lsap_sel()
409 clear_bit(0, &self->ttp_connect); in irnet_discover_daddr_and_lsap_sel()
413 self->discoveries, self->disco_number); in irnet_discover_daddr_and_lsap_sel()
416 self->disco_index = -1; in irnet_discover_daddr_and_lsap_sel()
417 self->daddr = DEV_ADDR_ANY; in irnet_discover_daddr_and_lsap_sel()
420 ret = irnet_discover_next_daddr(self); in irnet_discover_daddr_and_lsap_sel()
424 if(self->iriap) in irnet_discover_daddr_and_lsap_sel()
425 iriap_close(self->iriap); in irnet_discover_daddr_and_lsap_sel()
426 self->iriap = NULL; in irnet_discover_daddr_and_lsap_sel()
429 kfree(self->discoveries); in irnet_discover_daddr_and_lsap_sel()
430 self->discoveries = NULL; in irnet_discover_daddr_and_lsap_sel()
432 clear_bit(0, &self->ttp_connect); in irnet_discover_daddr_and_lsap_sel()
451 irnet_dname_to_daddr(irnet_socket * self) in irnet_dname_to_daddr() argument
457 DENTER(IRDA_SR_TRACE, "(self=0x%p)\n", self); in irnet_dname_to_daddr()
474 if(!strncmp(discoveries[i].info, self->rname, NICKNAME_MAX_LEN)) in irnet_dname_to_daddr()
477 self->daddr = discoveries[i].daddr; in irnet_dname_to_daddr()
479 self->rname, self->daddr); in irnet_dname_to_daddr()
486 DEBUG(IRDA_SR_INFO, "cannot discover device ``%s'' !!!\n", self->rname); in irnet_dname_to_daddr()
503 irda_irnet_create(irnet_socket * self) in irda_irnet_create() argument
505 DENTER(IRDA_SOCK_TRACE, "(self=0x%p)\n", self); in irda_irnet_create()
507 self->magic = IRNET_MAGIC; /* Paranoia */ in irda_irnet_create()
509 self->ttp_open = 0; /* Prevent higher layer from accessing IrTTP */ in irda_irnet_create()
510 self->ttp_connect = 0; /* Not connecting yet */ in irda_irnet_create()
511 self->rname[0] = '\0'; /* May be set via control channel */ in irda_irnet_create()
512 self->rdaddr = DEV_ADDR_ANY; /* May be set via control channel */ in irda_irnet_create()
513 self->rsaddr = DEV_ADDR_ANY; /* May be set via control channel */ in irda_irnet_create()
514 self->daddr = DEV_ADDR_ANY; /* Until we get connected */ in irda_irnet_create()
515 self->saddr = DEV_ADDR_ANY; /* Until we get connected */ in irda_irnet_create()
516 self->max_sdu_size_rx = TTP_SAR_UNBOUND; in irda_irnet_create()
519 self->ckey = irlmp_register_client(0, NULL, NULL, NULL); in irda_irnet_create()
521 self->mask = 0xffff; /* For W2k compatibility */ in irda_irnet_create()
523 self->mask = irlmp_service_to_hint(S_LAN); in irda_irnet_create()
525 self->tx_flow = FLOW_START; /* Flow control from IrTTP */ in irda_irnet_create()
527 INIT_WORK(&self->disconnect_work, irnet_ppp_disconnect); in irda_irnet_create()
547 irda_irnet_connect(irnet_socket * self) in irda_irnet_connect() argument
551 DENTER(IRDA_SOCK_TRACE, "(self=0x%p)\n", self); in irda_irnet_connect()
557 if(test_and_set_bit(0, &self->ttp_connect)) in irda_irnet_connect()
559 if((self->iriap != NULL) || (self->tsap != NULL)) in irda_irnet_connect()
566 if((irnet_server.running) && (self->q.q_next == NULL)) in irda_irnet_connect()
569 hashbin_insert(irnet_server.list, (irda_queue_t *) self, 0, self->rname); in irda_irnet_connect()
571 DEBUG(IRDA_SOCK_INFO, "Inserted ``%s'' in hashbin...\n", self->rname); in irda_irnet_connect()
575 if((self->rdaddr == DEV_ADDR_ANY) && (self->rname[0] == '\0')) in irda_irnet_connect()
578 if((err = irnet_discover_daddr_and_lsap_sel(self)) != 0) in irda_irnet_connect()
585 if(self->rdaddr == DEV_ADDR_ANY) in irda_irnet_connect()
587 if((err = irnet_dname_to_daddr(self)) != 0) in irda_irnet_connect()
592 self->daddr = self->rdaddr; in irda_irnet_connect()
595 irnet_find_lsap_sel(self); in irda_irnet_connect()
616 irda_irnet_destroy(irnet_socket * self) in irda_irnet_destroy() argument
618 DENTER(IRDA_SOCK_TRACE, "(self=0x%p)\n", self); in irda_irnet_destroy()
619 if(self == NULL) in irda_irnet_destroy()
624 if((irnet_server.running) && (self->q.q_next != NULL)) in irda_irnet_destroy()
629 entry = hashbin_remove_this(irnet_server.list, (irda_queue_t *) self); in irda_irnet_destroy()
630 self->q.q_next = NULL; in irda_irnet_destroy()
632 DASSERT(entry == self, , IRDA_SOCK_ERROR, "Can't remove from hash.\n"); in irda_irnet_destroy()
636 if(test_bit(0, &self->ttp_open)) in irda_irnet_destroy()
642 self->saddr, self->daddr, self->rname, 0); in irda_irnet_destroy()
647 clear_bit(0, &self->ttp_connect); in irda_irnet_destroy()
650 clear_bit(0, &self->ttp_open); in irda_irnet_destroy()
653 irlmp_unregister_client(self->ckey); in irda_irnet_destroy()
656 if(self->iriap) in irda_irnet_destroy()
658 iriap_close(self->iriap); in irda_irnet_destroy()
659 self->iriap = NULL; in irda_irnet_destroy()
663 if(self->discoveries != NULL) in irda_irnet_destroy()
666 kfree(self->discoveries); in irda_irnet_destroy()
667 self->discoveries = NULL; in irda_irnet_destroy()
671 if(self->tsap) in irda_irnet_destroy()
674 irttp_disconnect_request(self->tsap, NULL, P_NORMAL); in irda_irnet_destroy()
675 irttp_close_tsap(self->tsap); in irda_irnet_destroy()
676 self->tsap = NULL; in irda_irnet_destroy()
678 self->stsap_sel = 0; in irda_irnet_destroy()
702 irnet_daddr_to_dname(irnet_socket * self) in irnet_daddr_to_dname() argument
708 DENTER(IRDA_SERV_TRACE, "(self=0x%p)\n", self); in irnet_daddr_to_dname()
721 if(discoveries[i].daddr == self->daddr) in irnet_daddr_to_dname()
724 strlcpy(self->rname, discoveries[i].info, sizeof(self->rname)); in irnet_daddr_to_dname()
725 self->rname[sizeof(self->rname) - 1] = '\0'; in irnet_daddr_to_dname()
727 self->daddr, self->rname); in irnet_daddr_to_dname()
734 DEXIT(IRDA_SERV_INFO, ": cannot discover device 0x%08x !!!\n", self->daddr); in irnet_daddr_to_dname()
749 irnet_find_socket(irnet_socket * self) in irnet_find_socket() argument
754 DENTER(IRDA_SERV_TRACE, "(self=0x%p)\n", self); in irnet_find_socket()
757 self->daddr = irttp_get_daddr(self->tsap); in irnet_find_socket()
758 self->saddr = irttp_get_saddr(self->tsap); in irnet_find_socket()
761 err = irnet_daddr_to_dname(self); in irnet_find_socket()
771 0, self->rname); in irnet_find_socket()
787 if((new->rdaddr == self->daddr) || (new->daddr == self->daddr)) in irnet_find_socket()
791 new, self->daddr); in irnet_find_socket()
907 irnet_disconnect_server(irnet_socket * self, in irnet_disconnect_server() argument
910 DENTER(IRDA_SERV_TRACE, "(self=0x%p)\n", self); in irnet_disconnect_server()
919 irttp_disconnect_request(self->tsap, NULL, P_NORMAL); in irnet_disconnect_server()
924 self->saddr, self->daddr, self->rname, 0); in irnet_disconnect_server()
927 irttp_listen(self->tsap); in irnet_disconnect_server()
1107 irnet_socket * self = (irnet_socket *) instance; in irnet_disconnect_indication() local
1111 DENTER(IRDA_TCB_TRACE, "(self=0x%p)\n", self); in irnet_disconnect_indication()
1112 DASSERT(self != NULL, , IRDA_CB_ERROR, "Self is NULL !!!\n"); in irnet_disconnect_indication()
1119 test_open = test_and_clear_bit(0, &self->ttp_open); in irnet_disconnect_indication()
1122 test_connect = test_and_clear_bit(0, &self->ttp_connect); in irnet_disconnect_indication()
1136 irnet_post_event(self, IRNET_DISCONNECT_FROM, in irnet_disconnect_indication()
1137 self->saddr, self->daddr, self->rname, 0); in irnet_disconnect_indication()
1140 if((self->tsap) && (self != &irnet_server.s)) in irnet_disconnect_indication()
1141 irnet_post_event(self, IRNET_NOANSWER_FROM, in irnet_disconnect_indication()
1142 self->saddr, self->daddr, self->rname, 0); in irnet_disconnect_indication()
1145 if((self->tsap) && (self != &irnet_server.s)) in irnet_disconnect_indication()
1148 irttp_close_tsap(self->tsap); in irnet_disconnect_indication()
1149 self->tsap = NULL; in irnet_disconnect_indication()
1152 self->stsap_sel = 0; in irnet_disconnect_indication()
1153 self->daddr = DEV_ADDR_ANY; in irnet_disconnect_indication()
1154 self->tx_flow = FLOW_START; in irnet_disconnect_indication()
1157 if(self->ppp_open) in irnet_disconnect_indication()
1162 schedule_work(&self->disconnect_work); in irnet_disconnect_indication()
1170 ppp_output_wakeup(&self->chan); in irnet_disconnect_indication()
1192 irnet_socket * self = (irnet_socket *) instance; in irnet_connect_confirm() local
1194 DENTER(IRDA_TCB_TRACE, "(self=0x%p)\n", self); in irnet_connect_confirm()
1197 if(! test_bit(0, &self->ttp_connect)) in irnet_connect_confirm()
1204 self->max_header_size = max_header_size; in irnet_connect_confirm()
1207 self->max_sdu_size_tx = max_sdu_size; in irnet_connect_confirm()
1208 self->max_data_size = max_sdu_size; in irnet_connect_confirm()
1211 self->max_data_size = irttp_get_max_seg_size(self->tsap); in irnet_connect_confirm()
1215 self->saddr = irttp_get_saddr(self->tsap); in irnet_connect_confirm()
1218 set_bit(0, &self->ttp_open); in irnet_connect_confirm()
1219 clear_bit(0, &self->ttp_connect); /* Not racy, IrDA traffic is serial */ in irnet_connect_confirm()
1221 ppp_output_wakeup(&self->chan); in irnet_connect_confirm()
1239 irnet_post_event(self, IRNET_CONNECT_TO, in irnet_connect_confirm()
1240 self->saddr, self->daddr, self->rname, 0); in irnet_connect_confirm()
1257 irnet_socket * self = (irnet_socket *) instance; in irnet_flow_indication() local
1258 LOCAL_FLOW oldflow = self->tx_flow; in irnet_flow_indication()
1260 DENTER(IRDA_TCB_TRACE, "(self=0x%p, flow=%d)\n", self, flow); in irnet_flow_indication()
1263 self->tx_flow = flow; in irnet_flow_indication()
1272 ppp_output_wakeup(&self->chan); in irnet_flow_indication()
1299 irnet_socket * self = (irnet_socket *) instance; in irnet_status_indication() local
1301 DENTER(IRDA_TCB_TRACE, "(self=0x%p)\n", self); in irnet_status_indication()
1302 DASSERT(self != NULL, , IRDA_CB_ERROR, "Self is NULL !!!\n"); in irnet_status_indication()
1308 irnet_post_event(self, IRNET_BLOCKED_LINK, in irnet_status_indication()
1309 self->saddr, self->daddr, self->rname, 0); in irnet_status_indication()
1487 irnet_socket * self = (irnet_socket *) priv; in irnet_getvalue_confirm() local
1489 DENTER(IRDA_OCB_TRACE, "(self=0x%p)\n", self); in irnet_getvalue_confirm()
1490 DASSERT(self != NULL, , IRDA_OCB_ERROR, "Self is NULL !!!\n"); in irnet_getvalue_confirm()
1494 if(! test_bit(0, &self->ttp_connect)) in irnet_getvalue_confirm()
1501 iriap_close(self->iriap); in irnet_getvalue_confirm()
1502 self->iriap = NULL; in irnet_getvalue_confirm()
1505 self->dtsap_sel = irnet_ias_to_tsap(self, result, value); in irnet_getvalue_confirm()
1508 if(self->errno) in irnet_getvalue_confirm()
1510 clear_bit(0, &self->ttp_connect); in irnet_getvalue_confirm()
1511 DERROR(IRDA_OCB_ERROR, "IAS connect failed ! (0x%X)\n", self->errno); in irnet_getvalue_confirm()
1516 self->daddr, self->dtsap_sel); in irnet_getvalue_confirm()
1519 irnet_connect_tsap(self); in irnet_getvalue_confirm()
1550 irnet_socket * self = (irnet_socket *) priv; in irnet_discovervalue_confirm() local
1553 DENTER(IRDA_OCB_TRACE, "(self=0x%p)\n", self); in irnet_discovervalue_confirm()
1554 DASSERT(self != NULL, , IRDA_OCB_ERROR, "Self is NULL !!!\n"); in irnet_discovervalue_confirm()
1558 if(! test_bit(0, &self->ttp_connect)) in irnet_discovervalue_confirm()
1565 dtsap_sel = irnet_ias_to_tsap(self, result, value); in irnet_discovervalue_confirm()
1568 if(self->errno == 0) in irnet_discovervalue_confirm()
1571 if(self->daddr != DEV_ADDR_ANY) in irnet_discovervalue_confirm()
1578 self->daddr = self->discoveries[self->disco_index].daddr; in irnet_discovervalue_confirm()
1579 self->dtsap_sel = dtsap_sel; in irnet_discovervalue_confirm()
1584 if((self->errno == -EADDRNOTAVAIL) || (self->errno == 0)) in irnet_discovervalue_confirm()
1589 ret = irnet_discover_next_daddr(self); in irnet_discovervalue_confirm()
1602 iriap_close(self->iriap); in irnet_discovervalue_confirm()
1603 self->iriap = NULL; in irnet_discovervalue_confirm()
1607 self->discoveries); in irnet_discovervalue_confirm()
1608 if(self->discoveries != NULL) in irnet_discovervalue_confirm()
1611 kfree(self->discoveries); in irnet_discovervalue_confirm()
1612 self->discoveries = NULL; in irnet_discovervalue_confirm()
1614 self->disco_number = -1; in irnet_discovervalue_confirm()
1617 if(self->daddr == DEV_ADDR_ANY) in irnet_discovervalue_confirm()
1619 self->daddr = DEV_ADDR_ANY; in irnet_discovervalue_confirm()
1620 clear_bit(0, &self->ttp_connect); in irnet_discovervalue_confirm()
1628 self->daddr, self->dtsap_sel); in irnet_discovervalue_confirm()
1631 irnet_connect_tsap(self); in irnet_discovervalue_confirm()
1664 irnet_socket * self = &irnet_server.s; in irnet_discovery_indication() local
1666 DENTER(IRDA_OCB_TRACE, "(self=0x%p)\n", self); in irnet_discovery_indication()
1695 irnet_socket * self = &irnet_server.s; in irnet_expiry_indication() local
1697 DENTER(IRDA_OCB_TRACE, "(self=0x%p)\n", self); in irnet_expiry_indication()
1724 irnet_socket * self; in irnet_proc_show() local
1743 self = (irnet_socket *) hashbin_get_first(irnet_server.list); in irnet_proc_show()
1744 while(self != NULL) in irnet_proc_show()
1750 seq_printf(m, "Requested IrDA name: \"%s\", ", self->rname); in irnet_proc_show()
1751 seq_printf(m, "daddr: %08x, ", self->rdaddr); in irnet_proc_show()
1752 seq_printf(m, "saddr: %08x\n", self->rsaddr); in irnet_proc_show()
1756 (self->ppp_open ? "registered" : "unregistered")); in irnet_proc_show()
1757 if(self->ppp_open) in irnet_proc_show()
1760 ppp_unit_number(&self->chan)); in irnet_proc_show()
1762 ppp_channel_index(&self->chan)); in irnet_proc_show()
1764 self->mru); in irnet_proc_show()
1769 if(self->ttp_open) in irnet_proc_show()
1772 if(self->tsap != NULL) in irnet_proc_show()
1775 if(self->iriap != NULL) in irnet_proc_show()
1778 if(self->ttp_connect) in irnet_proc_show()
1783 seq_printf(m, "daddr: %08x, ", self->daddr); in irnet_proc_show()
1784 seq_printf(m, "stsap_sel: %02x, ", self->stsap_sel); in irnet_proc_show()
1785 seq_printf(m, "dtsap_sel: %02x\n", self->dtsap_sel); in irnet_proc_show()
1788 self = (irnet_socket *) hashbin_get_next(irnet_server.list); in irnet_proc_show()