Lines Matching full:pn
110 struct pep_sock *pn = pep_sk(sk); in pep_indicate() local
121 ph->pipe_handle = pn->pipe_handle; in pep_indicate()
131 struct pep_sock *pn = pep_sk(sk); in pipe_handler_request() local
142 ph->pipe_handle = pn->pipe_handle; in pipe_handler_request()
149 struct pep_sock *pn = pep_sk(sk); in pipe_handler_send_created_ind() local
152 pn->tx_fc, pn->rx_fc, in pipe_handler_send_created_ind()
229 struct pep_sock *pn = pep_sk(sk); in pipe_grant_credits() local
233 switch (pn->rx_fc) { in pipe_grant_credits()
239 pn->rx_credits = 1; in pipe_grant_credits()
242 if ((pn->rx_credits + CREDITS_THR) > CREDITS_MAX) in pipe_grant_credits()
245 CREDITS_MAX - pn->rx_credits, in pipe_grant_credits()
247 pn->rx_credits = CREDITS_MAX; in pipe_grant_credits()
254 struct pep_sock *pn = pep_sk(sk); in pipe_rcv_status() local
270 switch (pn->tx_fc) { in pipe_rcv_status()
274 atomic_set(&pn->tx_credits, 0); in pipe_rcv_status()
277 atomic_set(&pn->tx_credits, wake = 1); in pipe_rcv_status()
283 atomic_set(&pn->tx_credits, wake = 1); in pipe_rcv_status()
289 if (pn->tx_fc != PN_MULTI_CREDIT_FLOW_CONTROL) in pipe_rcv_status()
291 atomic_add(wake = hdr->data[3], &pn->tx_credits); in pipe_rcv_status()
306 struct pep_sock *pn = pep_sk(sk); in pipe_rcv_created() local
310 pn->rx_fc = pn->tx_fc = PN_LEGACY_FLOW_CONTROL; in pipe_rcv_created()
322 pn->tx_fc = data[0] & 3; in pipe_rcv_created()
323 pn->rx_fc = data[1] & 3; in pipe_rcv_created()
335 struct pep_sock *pn = pep_sk(sk); in pipe_do_rcv() local
362 pn->init_enable = 0; in pipe_do_rcv()
365 pn->init_enable = 1; in pipe_do_rcv()
373 atomic_set(&pn->tx_credits, 0); in pipe_do_rcv()
378 if (skb_queue_len(&pn->ctrlreq_queue) >= PNPIPE_CTRLREQ_MAX) { in pipe_do_rcv()
383 queue = &pn->ctrlreq_queue; in pipe_do_rcv()
391 if (!pn_flow_safe(pn->rx_fc)) { in pipe_do_rcv()
399 if (pn->rx_credits == 0) { in pipe_do_rcv()
404 pn->rx_credits--; in pipe_do_rcv()
422 if (!pn->init_enable) in pipe_do_rcv()
426 if (!pn_flow_safe(pn->tx_fc)) { in pipe_do_rcv()
427 atomic_set(&pn->tx_credits, 1); in pipe_do_rcv()
438 pn->rx_credits = 0; in pipe_do_rcv()
462 struct pep_sock *pn = pep_sk(sk); in pipe_destruct() local
465 skb_queue_purge(&pn->ctrlreq_queue); in pipe_destruct()
484 struct pep_sock *pn = pep_sk(sk); in pep_connresp_rcv() local
508 pn->tx_fc = pipe_negotiate_fc(data + 2, len - 2); in pep_connresp_rcv()
514 pn->rx_fc = pipe_negotiate_fc(data + 2, len - 2); in pep_connresp_rcv()
538 struct pep_sock *pn = pep_sk(sk); in pipe_start_flow_control() local
540 if (!pn_flow_safe(pn->tx_fc)) { in pipe_start_flow_control()
541 atomic_set(&pn->tx_credits, 1); in pipe_start_flow_control()
551 struct pep_sock *pn = pep_sk(sk); in pipe_handler_do_rcv() local
561 if (!pn_flow_safe(pn->rx_fc)) { in pipe_handler_do_rcv()
569 if (pn->rx_credits == 0) { in pipe_handler_do_rcv()
574 pn->rx_credits--; in pipe_handler_do_rcv()
591 if (pn->init_enable == PN_PIPE_DISABLE) in pipe_handler_do_rcv()
656 struct pep_sock *pn = pep_sk(sk); in pep_do_rcv() local
673 sknode = pep_find_pipe(&pn->hlist, &dst, pipe_handle); in pep_do_rcv()
717 struct pep_sock *pn = pep_sk(sk); in pipe_do_remove() local
728 ph->pipe_handle = pn->pipe_handle; in pipe_do_remove()
736 struct pep_sock *pn = pep_sk(sk); in pep_sock_close() local
753 ifindex = pn->ifindex; in pep_sock_close()
754 pn->ifindex = 0; in pep_sock_close()
765 struct pep_sock *pn = pep_sk(sk), *newpn; in pep_sock_accept() local
829 newsk = pep_find_pipe(&pn->hlist, &dst, pipe_handle); in pep_sock_accept()
877 sk_add_node(newsk, &pn->hlist); in pep_sock_accept()
887 struct pep_sock *pn = pep_sk(sk); in pep_sock_connect() local
891 if (pn->pipe_handle == PN_PIPE_INVALID_HANDLE) in pep_sock_connect()
892 pn->pipe_handle = 1; /* anything but INVALID_HANDLE */ in pep_sock_connect()
895 pn->init_enable, data, 4); in pep_sock_connect()
897 pn->pipe_handle = PN_PIPE_INVALID_HANDLE; in pep_sock_connect()
922 struct pep_sock *pn = pep_sk(sk); in pep_first_packet_length() local
929 q = &pn->ctrlreq_queue; in pep_first_packet_length()
953 struct pep_sock *pn = pep_sk(sk); in pep_ioctl() local
973 else if (!pn->pn_sk.sobject) in pep_ioctl()
986 struct pep_sock *pn = pep_sk(sk); in pep_init() local
989 INIT_HLIST_HEAD(&pn->hlist); in pep_init()
990 pn->listener = NULL; in pep_init()
991 skb_queue_head_init(&pn->ctrlreq_queue); in pep_init()
992 atomic_set(&pn->tx_credits, 0); in pep_init()
993 pn->ifindex = 0; in pep_init()
994 pn->peer_type = 0; in pep_init()
995 pn->pipe_handle = PN_PIPE_INVALID_HANDLE; in pep_init()
996 pn->rx_credits = 0; in pep_init()
997 pn->rx_fc = pn->tx_fc = PN_LEGACY_FLOW_CONTROL; in pep_init()
998 pn->init_enable = 1; in pep_init()
999 pn->aligned = 0; in pep_init()
1006 struct pep_sock *pn = pep_sk(sk); in pep_setsockopt() local
1023 if (!pn->ifindex == !val) in pep_setsockopt()
1033 pn->ifindex = err; in pep_setsockopt()
1037 pn->ifindex = 0; in pep_setsockopt()
1047 pn->pipe_handle = val; in pep_setsockopt()
1053 pn->init_enable = !!val; in pep_setsockopt()
1068 struct pep_sock *pn = pep_sk(sk); in pep_getsockopt() local
1078 val = pn->ifindex ? PNPIPE_ENCAP_IP : PNPIPE_ENCAP_NONE; in pep_getsockopt()
1082 val = pn->ifindex; in pep_getsockopt()
1086 val = pn->pipe_handle; in pep_getsockopt()
1092 val = pn->init_enable; in pep_getsockopt()
1109 struct pep_sock *pn = pep_sk(sk); in pipe_skb_send() local
1113 if (pn_flow_safe(pn->tx_fc) && in pipe_skb_send()
1114 !atomic_add_unless(&pn->tx_credits, -1, 0)) { in pipe_skb_send()
1119 skb_push(skb, 3 + pn->aligned); in pipe_skb_send()
1123 if (pn->aligned) { in pipe_skb_send()
1128 ph->pipe_handle = pn->pipe_handle; in pipe_skb_send()
1131 if (err && pn_flow_safe(pn->tx_fc)) in pipe_skb_send()
1132 atomic_inc(&pn->tx_credits); in pipe_skb_send()
1139 struct pep_sock *pn = pep_sk(sk); in pep_sendmsg() local
1158 skb_reserve(skb, MAX_PHONET_HEADER + 3 + pn->aligned); in pep_sendmsg()
1184 done = atomic_read(&pn->tx_credits); in pep_sendmsg()
1198 done = sk_wait_event(sk, &timeo, atomic_read(&pn->tx_credits), &wait); in pep_sendmsg()
1218 struct pep_sock *pn = pep_sk(sk); in pep_writeable() local
1220 return atomic_read(&pn->tx_credits); in pep_writeable()
1278 struct pep_sock *pn = pep_sk(sk); in pep_recvmsg() local
1282 skb = skb_dequeue(&pn->ctrlreq_queue); in pep_recvmsg()
1322 struct pep_sock *pn = pep_sk(sk); in pep_sock_unhash() local
1327 if (pn->listener != NULL) { in pep_sock_unhash()
1328 skparent = pn->listener; in pep_sock_unhash()
1329 pn->listener = NULL; in pep_sock_unhash()
1332 pn = pep_sk(skparent); in pep_sock_unhash()
1340 if (hlist_empty(&pn->hlist)) in pep_sock_unhash()
1341 pn_sock_unhash(&pn->pn_sk.sk); in pep_sock_unhash()