Lines Matching refs:llcp_sock
62 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in llcp_sock_bind() local
101 llcp_sock->dev = dev; in llcp_sock_bind()
102 llcp_sock->local = nfc_llcp_local_get(local); in llcp_sock_bind()
103 llcp_sock->nfc_protocol = llcp_addr.nfc_protocol; in llcp_sock_bind()
104 llcp_sock->service_name_len = min_t(unsigned int, in llcp_sock_bind()
107 llcp_sock->service_name = kmemdup(llcp_addr.service_name, in llcp_sock_bind()
108 llcp_sock->service_name_len, in llcp_sock_bind()
110 if (!llcp_sock->service_name) { in llcp_sock_bind()
111 nfc_llcp_local_put(llcp_sock->local); in llcp_sock_bind()
112 llcp_sock->local = NULL; in llcp_sock_bind()
113 llcp_sock->dev = NULL; in llcp_sock_bind()
117 llcp_sock->ssap = nfc_llcp_get_sdp_ssap(local, llcp_sock); in llcp_sock_bind()
118 if (llcp_sock->ssap == LLCP_SAP_MAX) { in llcp_sock_bind()
119 nfc_llcp_local_put(llcp_sock->local); in llcp_sock_bind()
120 llcp_sock->local = NULL; in llcp_sock_bind()
121 kfree(llcp_sock->service_name); in llcp_sock_bind()
122 llcp_sock->service_name = NULL; in llcp_sock_bind()
123 llcp_sock->dev = NULL; in llcp_sock_bind()
128 llcp_sock->reserved_ssap = llcp_sock->ssap; in llcp_sock_bind()
132 pr_debug("Socket bound to SAP %d\n", llcp_sock->ssap); in llcp_sock_bind()
148 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in llcp_raw_sock_bind() local
183 llcp_sock->dev = dev; in llcp_raw_sock_bind()
184 llcp_sock->local = nfc_llcp_local_get(local); in llcp_raw_sock_bind()
185 llcp_sock->nfc_protocol = llcp_addr.nfc_protocol; in llcp_raw_sock_bind()
230 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in nfc_llcp_setsockopt() local
260 llcp_sock->rw = (u8) opt; in nfc_llcp_setsockopt()
282 llcp_sock->miux = cpu_to_be16((u16) opt); in nfc_llcp_setsockopt()
293 pr_debug("%p rw %d miux %d\n", llcp_sock, in nfc_llcp_setsockopt()
294 llcp_sock->rw, llcp_sock->miux); in nfc_llcp_setsockopt()
304 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in nfc_llcp_getsockopt() local
317 local = llcp_sock->local; in nfc_llcp_getsockopt()
327 rw = llcp_sock->rw > LLCP_MAX_RW ? local->rw : llcp_sock->rw; in nfc_llcp_getsockopt()
334 miux = be16_to_cpu(llcp_sock->miux) > LLCP_MAX_MIUX ? in nfc_llcp_getsockopt()
335 be16_to_cpu(local->miux) : be16_to_cpu(llcp_sock->miux); in nfc_llcp_getsockopt()
343 remote_miu = llcp_sock->remote_miu > LLCP_MAX_MIU ? in nfc_llcp_getsockopt()
344 local->remote_miu : llcp_sock->remote_miu; in nfc_llcp_getsockopt()
358 if (put_user(llcp_sock->remote_rw, (u32 __user *) optval)) in nfc_llcp_getsockopt()
378 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in nfc_llcp_accept_unlink() local
382 list_del_init(&llcp_sock->accept_queue); in nfc_llcp_accept_unlink()
383 sk_acceptq_removed(llcp_sock->parent); in nfc_llcp_accept_unlink()
384 llcp_sock->parent = NULL; in nfc_llcp_accept_unlink()
391 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in nfc_llcp_accept_enqueue() local
397 list_add_tail(&llcp_sock->accept_queue, in nfc_llcp_accept_enqueue()
399 llcp_sock->parent = parent; in nfc_llcp_accept_enqueue()
502 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in llcp_sock_getname() local
505 if (llcp_sock == NULL || llcp_sock->dev == NULL) in llcp_sock_getname()
508 pr_debug("%p %d %d %d\n", sk, llcp_sock->target_idx, in llcp_sock_getname()
509 llcp_sock->dsap, llcp_sock->ssap); in llcp_sock_getname()
514 if (!llcp_sock->dev) { in llcp_sock_getname()
519 llcp_addr->dev_idx = llcp_sock->dev->idx; in llcp_sock_getname()
520 llcp_addr->target_idx = llcp_sock->target_idx; in llcp_sock_getname()
521 llcp_addr->nfc_protocol = llcp_sock->nfc_protocol; in llcp_sock_getname()
522 llcp_addr->dsap = llcp_sock->dsap; in llcp_sock_getname()
523 llcp_addr->ssap = llcp_sock->ssap; in llcp_sock_getname()
524 llcp_addr->service_name_len = llcp_sock->service_name_len; in llcp_sock_getname()
525 memcpy(llcp_addr->service_name, llcp_sock->service_name, in llcp_sock_getname()
534 struct nfc_llcp_sock *llcp_sock, *parent_sock; in llcp_accept_poll() local
539 list_for_each_entry(llcp_sock, &parent_sock->accept_queue, in llcp_accept_poll()
541 sk = &llcp_sock->sk; in llcp_accept_poll()
593 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in llcp_sock_release() local
601 local = llcp_sock->local; in llcp_sock_release()
611 nfc_llcp_send_disconnect(llcp_sock); in llcp_sock_release()
617 list_for_each_entry_safe(lsk, n, &llcp_sock->accept_queue, in llcp_sock_release()
629 if (llcp_sock->reserved_ssap < LLCP_SAP_MAX) in llcp_sock_release()
630 nfc_llcp_put_ssap(llcp_sock->local, llcp_sock->ssap); in llcp_sock_release()
657 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in llcp_sock_connect() local
711 llcp_sock->dev = dev; in llcp_sock_connect()
712 llcp_sock->local = nfc_llcp_local_get(local); in llcp_sock_connect()
713 llcp_sock->ssap = nfc_llcp_get_local_ssap(local); in llcp_sock_connect()
714 if (llcp_sock->ssap == LLCP_SAP_MAX) { in llcp_sock_connect()
715 nfc_llcp_local_put(llcp_sock->local); in llcp_sock_connect()
716 llcp_sock->local = NULL; in llcp_sock_connect()
721 llcp_sock->reserved_ssap = llcp_sock->ssap; in llcp_sock_connect()
724 llcp_sock->dsap = addr->dsap; in llcp_sock_connect()
726 llcp_sock->dsap = LLCP_SAP_SDP; in llcp_sock_connect()
727 llcp_sock->nfc_protocol = addr->nfc_protocol; in llcp_sock_connect()
728 llcp_sock->service_name_len = min_t(unsigned int, in llcp_sock_connect()
731 llcp_sock->service_name = kmemdup(addr->service_name, in llcp_sock_connect()
732 llcp_sock->service_name_len, in llcp_sock_connect()
734 if (!llcp_sock->service_name) { in llcp_sock_connect()
741 ret = nfc_llcp_send_connect(llcp_sock); in llcp_sock_connect()
758 kfree(llcp_sock->service_name); in llcp_sock_connect()
759 llcp_sock->service_name = NULL; in llcp_sock_connect()
762 nfc_llcp_put_ssap(local, llcp_sock->ssap); in llcp_sock_connect()
763 nfc_llcp_local_put(llcp_sock->local); in llcp_sock_connect()
764 llcp_sock->local = NULL; in llcp_sock_connect()
778 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in llcp_sock_sendmsg() local
792 if (!llcp_sock->local) { in llcp_sock_sendmsg()
808 return nfc_llcp_send_ui_frame(llcp_sock, addr->dsap, addr->ssap, in llcp_sock_sendmsg()
819 return nfc_llcp_send_i_frame(llcp_sock, msg, len); in llcp_sock_sendmsg()
952 struct nfc_llcp_sock *llcp_sock = nfc_llcp_sock(sk); in llcp_sock_destruct() local
957 nfc_put_device(llcp_sock->dev); in llcp_sock_destruct()
961 nfc_llcp_sock_free(llcp_sock); in llcp_sock_destruct()
972 struct nfc_llcp_sock *llcp_sock; in nfc_llcp_sock_alloc() local
978 llcp_sock = nfc_llcp_sock(sk); in nfc_llcp_sock_alloc()
986 llcp_sock->ssap = 0; in nfc_llcp_sock_alloc()
987 llcp_sock->dsap = LLCP_SAP_SDP; in nfc_llcp_sock_alloc()
988 llcp_sock->rw = LLCP_MAX_RW + 1; in nfc_llcp_sock_alloc()
989 llcp_sock->miux = cpu_to_be16(LLCP_MAX_MIUX + 1); in nfc_llcp_sock_alloc()
990 llcp_sock->send_n = llcp_sock->send_ack_n = 0; in nfc_llcp_sock_alloc()
991 llcp_sock->recv_n = llcp_sock->recv_ack_n = 0; in nfc_llcp_sock_alloc()
992 llcp_sock->remote_ready = 1; in nfc_llcp_sock_alloc()
993 llcp_sock->reserved_ssap = LLCP_SAP_MAX; in nfc_llcp_sock_alloc()
994 nfc_llcp_socket_remote_param_init(llcp_sock); in nfc_llcp_sock_alloc()
995 skb_queue_head_init(&llcp_sock->tx_queue); in nfc_llcp_sock_alloc()
996 skb_queue_head_init(&llcp_sock->tx_pending_queue); in nfc_llcp_sock_alloc()
997 INIT_LIST_HEAD(&llcp_sock->accept_queue); in nfc_llcp_sock_alloc()