Lines Matching refs:self
83 struct irda_sock *self; in irda_data_indication() local
87 self = instance; in irda_data_indication()
93 self->rx_flow = FLOW_STOP; in irda_data_indication()
111 struct irda_sock *self; in irda_disconnect_indication() local
114 self = instance; in irda_disconnect_indication()
116 pr_debug("%s(%p)\n", __func__, self); in irda_disconnect_indication()
125 __func__, self); in irda_disconnect_indication()
150 if (self->tsap) { in irda_disconnect_indication()
151 irttp_close_tsap(self->tsap); in irda_disconnect_indication()
152 self->tsap = NULL; in irda_disconnect_indication()
176 struct irda_sock *self; in irda_connect_confirm() local
179 self = instance; in irda_connect_confirm()
181 pr_debug("%s(%p)\n", __func__, self); in irda_connect_confirm()
193 self->max_header_size = max_header_size; in irda_connect_confirm()
196 self->max_sdu_size_tx = max_sdu_size; in irda_connect_confirm()
206 self->max_data_size = irttp_get_max_seg_size(self->tsap); in irda_connect_confirm()
214 self->max_data_size = max_sdu_size; in irda_connect_confirm()
217 self->max_data_size = irttp_get_max_seg_size(self->tsap); in irda_connect_confirm()
221 self->max_data_size); in irda_connect_confirm()
223 memcpy(&self->qos_tx, qos, sizeof(struct qos_info)); in irda_connect_confirm()
240 struct irda_sock *self; in irda_connect_indication() local
243 self = instance; in irda_connect_indication()
245 pr_debug("%s(%p)\n", __func__, self); in irda_connect_indication()
254 self->max_header_size = max_header_size; in irda_connect_indication()
257 self->max_sdu_size_tx = max_sdu_size; in irda_connect_indication()
268 self->max_data_size = irttp_get_max_seg_size(self->tsap); in irda_connect_indication()
277 self->max_data_size = max_sdu_size; in irda_connect_indication()
280 self->max_data_size = irttp_get_max_seg_size(self->tsap); in irda_connect_indication()
284 self->max_data_size); in irda_connect_indication()
286 memcpy(&self->qos_tx, qos, sizeof(struct qos_info)); in irda_connect_indication()
298 static void irda_connect_response(struct irda_sock *self) in irda_connect_response() argument
312 irttp_connect_response(self->tsap, self->max_sdu_size_rx, skb); in irda_connect_response()
323 struct irda_sock *self; in irda_flow_indication() local
326 self = instance; in irda_flow_indication()
334 self->tx_flow = flow; in irda_flow_indication()
337 self->tx_flow = flow; in irda_flow_indication()
345 self->tx_flow = flow; in irda_flow_indication()
361 struct irda_sock *self; in irda_getvalue_confirm() local
363 self = priv; in irda_getvalue_confirm()
364 if (!self) { in irda_getvalue_confirm()
369 pr_debug("%s(%p)\n", __func__, self); in irda_getvalue_confirm()
372 iriap_close(self->iriap); in irda_getvalue_confirm()
373 self->iriap = NULL; in irda_getvalue_confirm()
380 self->errno = result; /* We really need it later */ in irda_getvalue_confirm()
383 wake_up_interruptible(&self->query_wait); in irda_getvalue_confirm()
389 self->ias_result = value; in irda_getvalue_confirm()
390 self->errno = 0; in irda_getvalue_confirm()
393 wake_up_interruptible(&self->query_wait); in irda_getvalue_confirm()
408 struct irda_sock *self; in irda_selective_discovery_indication() local
410 self = priv; in irda_selective_discovery_indication()
411 if (!self) { in irda_selective_discovery_indication()
417 self->cachedaddr = discovery->daddr; in irda_selective_discovery_indication()
420 wake_up_interruptible(&self->query_wait); in irda_selective_discovery_indication()
433 struct irda_sock *self; in irda_discovery_timeout() local
435 self = (struct irda_sock *) priv; in irda_discovery_timeout()
436 BUG_ON(self == NULL); in irda_discovery_timeout()
439 self->cachelog = NULL; in irda_discovery_timeout()
440 self->cachedaddr = 0; in irda_discovery_timeout()
441 self->errno = -ETIME; in irda_discovery_timeout()
444 wake_up_interruptible(&self->query_wait); in irda_discovery_timeout()
453 static int irda_open_tsap(struct irda_sock *self, __u8 tsap_sel, char *name) in irda_open_tsap() argument
457 if (self->tsap) { in irda_open_tsap()
470 notify.instance = self; in irda_open_tsap()
473 self->tsap = irttp_open_tsap(tsap_sel, DEFAULT_INITIAL_CREDIT, in irda_open_tsap()
475 if (self->tsap == NULL) { in irda_open_tsap()
481 self->stsap_sel = self->tsap->stsap_sel; in irda_open_tsap()
493 static int irda_open_lsap(struct irda_sock *self, int pid) in irda_open_lsap() argument
497 if (self->lsap) { in irda_open_lsap()
505 notify.instance = self; in irda_open_lsap()
508 self->lsap = irlmp_open_lsap(LSAP_CONNLESS, ¬ify, pid); in irda_open_lsap()
509 if (self->lsap == NULL) { in irda_open_lsap()
529 static int irda_find_lsap_sel(struct irda_sock *self, char *name) in irda_find_lsap_sel() argument
531 pr_debug("%s(%p, %s)\n", __func__, self, name); in irda_find_lsap_sel()
533 if (self->iriap) { in irda_find_lsap_sel()
539 self->iriap = iriap_open(LSAP_ANY, IAS_CLIENT, self, in irda_find_lsap_sel()
541 if(self->iriap == NULL) in irda_find_lsap_sel()
545 self->errno = -EHOSTUNREACH; in irda_find_lsap_sel()
548 iriap_getvaluebyclass_request(self->iriap, self->saddr, self->daddr, in irda_find_lsap_sel()
552 if (wait_event_interruptible(self->query_wait, (self->iriap==NULL))) in irda_find_lsap_sel()
557 if (self->errno) in irda_find_lsap_sel()
560 if((self->errno == IAS_CLASS_UNKNOWN) || in irda_find_lsap_sel()
561 (self->errno == IAS_ATTRIB_UNKNOWN)) in irda_find_lsap_sel()
568 switch (self->ias_result->type) { in irda_find_lsap_sel()
571 __func__, self->ias_result->t.integer); in irda_find_lsap_sel()
573 if (self->ias_result->t.integer != -1) in irda_find_lsap_sel()
574 self->dtsap_sel = self->ias_result->t.integer; in irda_find_lsap_sel()
576 self->dtsap_sel = 0; in irda_find_lsap_sel()
579 self->dtsap_sel = 0; in irda_find_lsap_sel()
583 if (self->ias_result) in irda_find_lsap_sel()
584 irias_delete_value(self->ias_result); in irda_find_lsap_sel()
586 if (self->dtsap_sel) in irda_find_lsap_sel()
609 static int irda_discover_daddr_and_lsap_sel(struct irda_sock *self, char *name) in irda_discover_daddr_and_lsap_sel() argument
624 discoveries = irlmp_get_discoveries(&number, self->mask.word, in irda_discover_daddr_and_lsap_sel()
625 self->nslots); in irda_discover_daddr_and_lsap_sel()
637 self->daddr = discoveries[i].daddr; in irda_discover_daddr_and_lsap_sel()
638 self->saddr = 0x0; in irda_discover_daddr_and_lsap_sel()
640 __func__, self->daddr); in irda_discover_daddr_and_lsap_sel()
643 err = irda_find_lsap_sel(self, name); in irda_discover_daddr_and_lsap_sel()
650 self->daddr = DEV_ADDR_ANY; in irda_discover_daddr_and_lsap_sel()
655 daddr = self->daddr; in irda_discover_daddr_and_lsap_sel()
656 dtsap_sel = self->dtsap_sel; in irda_discover_daddr_and_lsap_sel()
665 self->daddr = DEV_ADDR_ANY; in irda_discover_daddr_and_lsap_sel()
677 self->daddr = DEV_ADDR_ANY; in irda_discover_daddr_and_lsap_sel()
682 self->daddr = daddr; in irda_discover_daddr_and_lsap_sel()
683 self->saddr = 0x0; in irda_discover_daddr_and_lsap_sel()
684 self->dtsap_sel = dtsap_sel; in irda_discover_daddr_and_lsap_sel()
687 __func__, name, self->daddr); in irda_discover_daddr_and_lsap_sel()
703 struct irda_sock *self = irda_sk(sk); in irda_getname() local
711 saddr.sir_lsap_sel = self->dtsap_sel; in irda_getname()
712 saddr.sir_addr = self->daddr; in irda_getname()
715 saddr.sir_lsap_sel = self->stsap_sel; in irda_getname()
716 saddr.sir_addr = self->saddr; in irda_getname()
768 struct irda_sock *self = irda_sk(sk); in irda_bind() local
771 pr_debug("%s(%p)\n", __func__, self); in irda_bind()
781 self->pid = addr->sir_lsap_sel; in irda_bind()
783 if (self->pid & 0x80) { in irda_bind()
788 err = irda_open_lsap(self, self->pid); in irda_bind()
801 self->ias_obj = irias_new_object(addr->sir_name, jiffies); in irda_bind()
803 if (self->ias_obj == NULL) in irda_bind()
806 err = irda_open_tsap(self, addr->sir_lsap_sel, addr->sir_name); in irda_bind()
808 irias_delete_object(self->ias_obj); in irda_bind()
809 self->ias_obj = NULL; in irda_bind()
814 irias_add_integer_attrib(self->ias_obj, "IrDA:TinyTP:LsapSel", in irda_bind()
815 self->stsap_sel, IAS_KERNEL_ATTR); in irda_bind()
816 irias_insert_object(self->ias_obj); in irda_bind()
833 struct irda_sock *new, *self = irda_sk(sk); in irda_accept() local
899 new->tsap = irttp_dup(self->tsap, new); in irda_accept()
912 new->max_sdu_size_tx = self->max_sdu_size_tx; in irda_accept()
913 new->max_sdu_size_rx = self->max_sdu_size_rx; in irda_accept()
914 new->max_data_size = self->max_data_size; in irda_accept()
915 new->max_header_size = self->max_header_size; in irda_accept()
917 memcpy(&new->qos_tx, &self->qos_tx, sizeof(struct qos_info)); in irda_accept()
920 irttp_listen(self->tsap); in irda_accept()
959 struct irda_sock *self = irda_sk(sk); in irda_connect() local
962 pr_debug("%s(%p)\n", __func__, self); in irda_connect()
996 err = irda_discover_daddr_and_lsap_sel(self, addr->sir_name); in irda_connect()
1003 self->daddr = addr->sir_addr; in irda_connect()
1004 pr_debug("%s(), daddr = %08x\n", __func__, self->daddr); in irda_connect()
1012 err = irda_find_lsap_sel(self, addr->sir_name); in irda_connect()
1022 self->dtsap_sel = addr->sir_lsap_sel; in irda_connect()
1027 if (!self->tsap) in irda_connect()
1028 irda_open_tsap(self, LSAP_ANY, addr->sir_name); in irda_connect()
1035 err = irttp_connect_request(self->tsap, self->dtsap_sel, in irda_connect()
1036 self->saddr, self->daddr, NULL, in irda_connect()
1037 self->max_sdu_size_rx, NULL); in irda_connect()
1064 self->saddr = irttp_get_saddr(self->tsap); in irda_connect()
1087 struct irda_sock *self; in irda_create() local
1110 self = irda_sk(sk); in irda_create()
1111 pr_debug("%s() : self is %p\n", __func__, self); in irda_create()
1113 init_waitqueue_head(&self->query_wait); in irda_create()
1118 self->max_sdu_size_rx = TTP_SAR_DISABLE; in irda_create()
1122 self->max_sdu_size_rx = TTP_SAR_UNBOUND; in irda_create()
1131 self->max_data_size = ULTRA_MAX_DATA - LMP_PID_HEADER; in irda_create()
1132 self->max_header_size = IRDA_MAX_HEADER + LMP_PID_HEADER; in irda_create()
1138 self->max_sdu_size_rx = TTP_SAR_UNBOUND; in irda_create()
1156 self->ckey = irlmp_register_client(0, NULL, NULL, NULL); in irda_create()
1157 self->mask.word = 0xffff; in irda_create()
1158 self->rx_flow = self->tx_flow = FLOW_START; in irda_create()
1159 self->nslots = DISCOVERY_DEFAULT_SLOTS; in irda_create()
1160 self->daddr = DEV_ADDR_ANY; /* Until we get connected */ in irda_create()
1161 self->saddr = 0x0; /* so IrLMP assign us any link */ in irda_create()
1171 static void irda_destroy_socket(struct irda_sock *self) in irda_destroy_socket() argument
1173 pr_debug("%s(%p)\n", __func__, self); in irda_destroy_socket()
1176 irlmp_unregister_client(self->ckey); in irda_destroy_socket()
1177 irlmp_unregister_service(self->skey); in irda_destroy_socket()
1180 if (self->ias_obj) { in irda_destroy_socket()
1181 irias_delete_object(self->ias_obj); in irda_destroy_socket()
1182 self->ias_obj = NULL; in irda_destroy_socket()
1185 if (self->iriap) { in irda_destroy_socket()
1186 iriap_close(self->iriap); in irda_destroy_socket()
1187 self->iriap = NULL; in irda_destroy_socket()
1190 if (self->tsap) { in irda_destroy_socket()
1191 irttp_disconnect_request(self->tsap, NULL, P_NORMAL); in irda_destroy_socket()
1192 irttp_close_tsap(self->tsap); in irda_destroy_socket()
1193 self->tsap = NULL; in irda_destroy_socket()
1196 if (self->lsap) { in irda_destroy_socket()
1197 irlmp_close_lsap(self->lsap); in irda_destroy_socket()
1198 self->lsap = NULL; in irda_destroy_socket()
1271 struct irda_sock *self; in irda_sendmsg() local
1293 self = irda_sk(sk); in irda_sendmsg()
1298 (self->tx_flow != FLOW_STOP || sk->sk_state != TCP_ESTABLISHED))) { in irda_sendmsg()
1310 if (len > self->max_data_size) { in irda_sendmsg()
1312 __func__, len, self->max_data_size); in irda_sendmsg()
1313 len = self->max_data_size; in irda_sendmsg()
1316 skb = sock_alloc_send_skb(sk, len + self->max_header_size + 16, in irda_sendmsg()
1321 skb_reserve(skb, self->max_header_size + 16); in irda_sendmsg()
1334 err = irttp_data_request(self->tsap, skb); in irda_sendmsg()
1362 struct irda_sock *self = irda_sk(sk); in irda_recvmsg_dgram() local
1391 if (self->rx_flow == FLOW_STOP) { in irda_recvmsg_dgram()
1394 self->rx_flow = FLOW_START; in irda_recvmsg_dgram()
1395 irttp_flow_request(self->tsap, FLOW_START); in irda_recvmsg_dgram()
1409 struct irda_sock *self = irda_sk(sk); in irda_recvmsg_stream() local
1508 if (self->rx_flow == FLOW_STOP) { in irda_recvmsg_stream()
1511 self->rx_flow = FLOW_START; in irda_recvmsg_stream()
1512 irttp_flow_request(self->tsap, FLOW_START); in irda_recvmsg_stream()
1530 struct irda_sock *self; in irda_sendmsg_dgram() local
1551 self = irda_sk(sk); in irda_sendmsg_dgram()
1557 if (len > self->max_data_size) { in irda_sendmsg_dgram()
1559 __func__, len, self->max_data_size); in irda_sendmsg_dgram()
1560 len = self->max_data_size; in irda_sendmsg_dgram()
1563 skb = sock_alloc_send_skb(sk, len + self->max_header_size, in irda_sendmsg_dgram()
1569 skb_reserve(skb, self->max_header_size); in irda_sendmsg_dgram()
1584 err = irttp_udata_request(self->tsap, skb); in irda_sendmsg_dgram()
1609 struct irda_sock *self; in irda_sendmsg_ultra() local
1629 self = irda_sk(sk); in irda_sendmsg_ultra()
1651 if ((self->lsap == NULL) || in irda_sendmsg_ultra()
1666 if (len > self->max_data_size) { in irda_sendmsg_ultra()
1668 __func__, len, self->max_data_size); in irda_sendmsg_ultra()
1669 len = self->max_data_size; in irda_sendmsg_ultra()
1672 skb = sock_alloc_send_skb(sk, len + self->max_header_size, in irda_sendmsg_ultra()
1678 skb_reserve(skb, self->max_header_size); in irda_sendmsg_ultra()
1689 err = irlmp_connless_data_request((bound ? self->lsap : NULL), in irda_sendmsg_ultra()
1705 struct irda_sock *self = irda_sk(sk); in irda_shutdown() local
1707 pr_debug("%s(%p)\n", __func__, self); in irda_shutdown()
1715 if (self->iriap) { in irda_shutdown()
1716 iriap_close(self->iriap); in irda_shutdown()
1717 self->iriap = NULL; in irda_shutdown()
1720 if (self->tsap) { in irda_shutdown()
1721 irttp_disconnect_request(self->tsap, NULL, P_NORMAL); in irda_shutdown()
1722 irttp_close_tsap(self->tsap); in irda_shutdown()
1723 self->tsap = NULL; in irda_shutdown()
1727 self->rx_flow = self->tx_flow = FLOW_START; /* needed ??? */ in irda_shutdown()
1728 self->daddr = DEV_ADDR_ANY; /* Until we get re-connected */ in irda_shutdown()
1729 self->saddr = 0x0; /* so IrLMP assign us any link */ in irda_shutdown()
1743 struct irda_sock *self = irda_sk(sk); in irda_poll() local
1772 if ((self->tx_flow == FLOW_START) && in irda_poll()
1780 if ((self->tx_flow == FLOW_START) && in irda_poll()
1876 struct irda_sock *self = irda_sk(sk); in irda_setsockopt() local
1882 pr_debug("%s(%p)\n", __func__, self); in irda_setsockopt()
1921 if(self->ias_obj == NULL) { in irda_setsockopt()
1926 ias_obj = self->ias_obj; in irda_setsockopt()
1934 ((ias_obj == NULL) || (ias_obj != self->ias_obj))) { in irda_setsockopt()
2052 ias_obj = self->ias_obj; in irda_setsockopt()
2065 ((ias_obj == NULL) || (ias_obj != self->ias_obj))) { in irda_setsockopt()
2108 self->max_sdu_size_rx = opt; in irda_setsockopt()
2129 if (self->skey) in irda_setsockopt()
2130 irlmp_unregister_service(self->skey); in irda_setsockopt()
2132 self->skey = irlmp_register_service((__u16) opt); in irda_setsockopt()
2152 self->mask.word = (__u16) opt; in irda_setsockopt()
2154 self->mask.word &= 0x7f7f; in irda_setsockopt()
2156 if(!self->mask.word) in irda_setsockopt()
2157 self->mask.word = 0xFFFF; in irda_setsockopt()
2227 struct irda_sock *self = irda_sk(sk); in irda_getsockopt() local
2239 pr_debug("%s(%p)\n", __func__, self); in irda_getsockopt()
2265 discoveries = irlmp_get_discoveries(&list.len, self->mask.word, in irda_getsockopt()
2266 self->nslots); in irda_getsockopt()
2296 val = self->max_data_size; in irda_getsockopt()
2338 ias_obj = self->ias_obj; in irda_getsockopt()
2406 if(self->daddr != DEV_ADDR_ANY) { in irda_getsockopt()
2408 daddr = self->daddr; in irda_getsockopt()
2421 if (self->iriap) { in irda_getsockopt()
2429 self->iriap = iriap_open(LSAP_ANY, IAS_CLIENT, self, in irda_getsockopt()
2432 if (self->iriap == NULL) { in irda_getsockopt()
2439 self->errno = -EHOSTUNREACH; in irda_getsockopt()
2442 iriap_getvaluebyclass_request(self->iriap, in irda_getsockopt()
2443 self->saddr, daddr, in irda_getsockopt()
2448 if (wait_event_interruptible(self->query_wait, in irda_getsockopt()
2449 (self->iriap == NULL))) { in irda_getsockopt()
2459 if (self->errno) in irda_getsockopt()
2463 if((self->errno == IAS_CLASS_UNKNOWN) || in irda_getsockopt()
2464 (self->errno == IAS_ATTRIB_UNKNOWN)) in irda_getsockopt()
2473 err = irda_extract_ias_value(ias_opt, self->ias_result); in irda_getsockopt()
2474 if (self->ias_result) in irda_getsockopt()
2475 irias_delete_value(self->ias_result); in irda_getsockopt()
2518 irlmp_update_client(self->ckey, self->mask.word, in irda_getsockopt()
2520 NULL, (void *) self); in irda_getsockopt()
2523 irlmp_discovery_request(self->nslots); in irda_getsockopt()
2526 if (!self->cachedaddr) { in irda_getsockopt()
2531 self->errno = 0; in irda_getsockopt()
2532 setup_timer(&self->watchdog, irda_discovery_timeout, in irda_getsockopt()
2533 (unsigned long)self); in irda_getsockopt()
2534 mod_timer(&self->watchdog, in irda_getsockopt()
2538 err = __wait_event_interruptible(self->query_wait, in irda_getsockopt()
2539 (self->cachedaddr != 0 || self->errno == -ETIME)); in irda_getsockopt()
2542 del_timer(&(self->watchdog)); in irda_getsockopt()
2554 irlmp_update_client(self->ckey, self->mask.word, in irda_getsockopt()
2558 if (!self->cachedaddr) { in irda_getsockopt()
2562 daddr = self->cachedaddr; in irda_getsockopt()
2564 self->cachedaddr = 0; in irda_getsockopt()