• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/net/tipc/

Lines Matching defs:p_ptr

70 static u32 port_peernode(struct port *p_ptr)
72 return msg_destnode(&p_ptr->publ.phdr);
75 static u32 port_peerport(struct port *p_ptr)
77 return msg_destport(&p_ptr->publ.phdr);
80 static u32 port_out_seqno(struct port *p_ptr)
82 return msg_transp_seqno(&p_ptr->publ.phdr);
85 static void port_incr_out_seqno(struct port *p_ptr)
87 struct tipc_msg *m = &p_ptr->publ.phdr;
225 struct port *p_ptr;
229 p_ptr = kzalloc(sizeof(*p_ptr), GFP_ATOMIC);
230 if (!p_ptr) {
234 ref = tipc_ref_acquire(p_ptr, &p_ptr->publ.lock);
237 kfree(p_ptr);
242 p_ptr->publ.ref = ref;
243 msg = &p_ptr->publ.phdr;
249 p_ptr->last_in_seqno = 41;
250 p_ptr->sent = 1;
251 p_ptr->publ.usr_handle = usr_handle;
252 INIT_LIST_HEAD(&p_ptr->wait_list);
253 INIT_LIST_HEAD(&p_ptr->subscription.nodesub_list);
254 p_ptr->congested_link = NULL;
255 p_ptr->max_pkt = MAX_PKT_DEFAULT;
256 p_ptr->dispatcher = dispatcher;
257 p_ptr->wakeup = wakeup;
258 p_ptr->user_port = NULL;
259 k_init_timer(&p_ptr->timer, (Handler)port_timeout, ref);
261 INIT_LIST_HEAD(&p_ptr->publications);
262 INIT_LIST_HEAD(&p_ptr->port_list);
263 list_add_tail(&p_ptr->port_list, &ports);
265 tipc_port_unlock(p_ptr);
271 struct port *p_ptr;
275 p_ptr = tipc_port_lock(ref);
276 if (!p_ptr)
280 tipc_port_unlock(p_ptr);
282 k_cancel_timer(&p_ptr->timer);
283 if (p_ptr->publ.connected) {
284 buf = port_build_peer_abort_msg(p_ptr, TIPC_ERR_NO_PORT);
285 tipc_nodesub_unsubscribe(&p_ptr->subscription);
287 if (p_ptr->user_port) {
288 tipc_reg_remove_port(p_ptr->user_port);
289 kfree(p_ptr->user_port);
293 list_del(&p_ptr->port_list);
294 list_del(&p_ptr->wait_list);
296 k_term_timer(&p_ptr->timer);
297 kfree(p_ptr);
320 struct port *p_ptr;
323 p_ptr = tipc_port_lock(ref);
324 if (!p_ptr)
326 handle = p_ptr->publ.usr_handle;
327 tipc_port_unlock(p_ptr);
331 static int port_unreliable(struct port *p_ptr)
333 return msg_src_droppable(&p_ptr->publ.phdr);
338 struct port *p_ptr;
340 p_ptr = tipc_port_lock(ref);
341 if (!p_ptr)
343 *isunreliable = port_unreliable(p_ptr);
344 spin_unlock_bh(p_ptr->publ.lock);
350 struct port *p_ptr;
352 p_ptr = tipc_port_lock(ref);
353 if (!p_ptr)
355 msg_set_src_droppable(&p_ptr->publ.phdr, (isunreliable != 0));
356 tipc_port_unlock(p_ptr);
360 static int port_unreturnable(struct port *p_ptr)
362 return msg_dest_droppable(&p_ptr->publ.phdr);
367 struct port *p_ptr;
369 p_ptr = tipc_port_lock(ref);
370 if (!p_ptr)
372 *isunrejectable = port_unreturnable(p_ptr);
373 spin_unlock_bh(p_ptr->publ.lock);
379 struct port *p_ptr;
381 p_ptr = tipc_port_lock(ref);
382 if (!p_ptr)
384 msg_set_dest_droppable(&p_ptr->publ.phdr, (isunrejectable != 0));
385 tipc_port_unlock(p_ptr);
472 struct port *p_ptr = tipc_port_lock(msg_destport(msg));
474 if (p_ptr) {
475 if (p_ptr->publ.connected)
476 abuf = port_build_self_abort_msg(p_ptr, err);
477 tipc_port_unlock(p_ptr);
488 int tipc_port_reject_sections(struct port *p_ptr, struct tipc_msg *hdr,
496 !p_ptr->user_port, &buf);
505 struct port *p_ptr = tipc_port_lock(ref);
508 if (!p_ptr)
511 if (!p_ptr->publ.connected) {
512 tipc_port_unlock(p_ptr);
517 if (p_ptr->probing_state == PROBING) {
518 buf = port_build_self_abort_msg(p_ptr, TIPC_ERR_NO_PORT);
520 buf = port_build_proto_msg(port_peerport(p_ptr),
521 port_peernode(p_ptr),
522 p_ptr->publ.ref,
527 port_out_seqno(p_ptr),
529 port_incr_out_seqno(p_ptr);
530 p_ptr->probing_state = PROBING;
531 k_start_timer(&p_ptr->timer, p_ptr->probing_interval);
533 tipc_port_unlock(p_ptr);
540 struct port *p_ptr = tipc_port_lock(ref);
543 if (!p_ptr)
545 buf = port_build_self_abort_msg(p_ptr, TIPC_ERR_NO_NODE);
546 tipc_port_unlock(p_ptr);
551 static struct sk_buff *port_build_self_abort_msg(struct port *p_ptr, u32 err)
553 u32 imp = msg_importance(&p_ptr->publ.phdr);
555 if (!p_ptr->publ.connected)
559 return port_build_proto_msg(p_ptr->publ.ref,
561 port_peerport(p_ptr),
562 port_peernode(p_ptr),
566 p_ptr->last_in_seqno + 1,
571 static struct sk_buff *port_build_peer_abort_msg(struct port *p_ptr, u32 err)
573 u32 imp = msg_importance(&p_ptr->publ.phdr);
575 if (!p_ptr->publ.connected)
579 return port_build_proto_msg(port_peerport(p_ptr),
580 port_peernode(p_ptr),
581 p_ptr->publ.ref,
586 port_out_seqno(p_ptr),
593 struct port *p_ptr = tipc_port_lock(msg_destport(msg));
600 if (!p_ptr) {
602 } else if (p_ptr->publ.connected) {
603 if (port_peernode(p_ptr) != msg_orignode(msg))
605 if (port_peerport(p_ptr) != msg_origport(msg))
609 u32 myno = ++p_ptr->last_in_seqno;
612 abort_buf = port_build_self_abort_msg(p_ptr, err);
616 int wakeup = tipc_port_congested(p_ptr) &&
617 p_ptr->publ.congested &&
618 p_ptr->wakeup;
619 p_ptr->acked += msg_msgcnt(msg);
620 if (tipc_port_congested(p_ptr))
622 p_ptr->publ.congested = 0;
625 p_ptr->wakeup(&p_ptr->publ);
628 } else if (p_ptr->publ.published) {
653 port_out_seqno(p_ptr),
656 p_ptr->probing_state = CONFIRMED;
657 port_incr_out_seqno(p_ptr);
659 if (p_ptr)
660 tipc_port_unlock(p_ptr);
666 static void port_print(struct port *p_ptr, struct print_buf *buf, int full_id)
673 tipc_node(tipc_own_addr), p_ptr->publ.ref);
675 tipc_printf(buf, "%-10u:", p_ptr->publ.ref);
677 if (p_ptr->publ.connected) {
678 u32 dport = port_peerport(p_ptr);
679 u32 destnode = port_peernode(p_ptr);
684 if (p_ptr->publ.conn_type != 0)
686 p_ptr->publ.conn_type,
687 p_ptr->publ.conn_instance);
689 else if (p_ptr->publ.published) {
691 list_for_each_entry(publ, &p_ptr->publications, pport_list) {
710 struct port *p_ptr;
720 list_for_each_entry(p_ptr, &ports, port_list) {
721 spin_lock_bh(p_ptr->publ.lock);
722 port_print(p_ptr, &pb, 0);
723 spin_unlock_bh(p_ptr->publ.lock);
737 struct port *p_ptr;
741 list_for_each_entry(p_ptr, &ports, port_list) {
742 msg = &p_ptr->publ.phdr;
766 struct port *p_ptr;
783 p_ptr = tipc_port_lock(dref);
784 if (!p_ptr)
789 up_ptr = p_ptr->user_port;
791 connected = p_ptr->publ.connected;
792 published = p_ptr->publ.published;
801 u32 peer_port = port_peerport(p_ptr);
802 u32 peer_node = port_peernode(p_ptr);
804 spin_unlock_bh(p_ptr->publ.lock);
816 if (unlikely(++p_ptr->publ.conn_unacked >=
819 p_ptr->publ.conn_unacked);
828 spin_unlock_bh(p_ptr->publ.lock);
843 spin_unlock_bh(p_ptr->publ.lock);
871 u32 peer_port = port_peerport(p_ptr);
872 u32 peer_node = port_peernode(p_ptr);
874 spin_unlock_bh(p_ptr->publ.lock);
890 spin_unlock_bh(p_ptr->publ.lock);
903 spin_unlock_bh(p_ptr->publ.lock);
953 struct port *p_ptr;
958 p_ptr = tipc_port_lock(ref);
959 if (p_ptr) {
960 up_ptr = p_ptr->user_port;
965 tipc_port_unlock(p_ptr);
972 static void port_wakeup(struct tipc_port *p_ptr)
974 tipc_k_signal((Handler)port_wakeup_sh, p_ptr->ref);
979 struct port *p_ptr;
982 p_ptr = tipc_port_lock(ref);
983 if (!p_ptr)
985 if (p_ptr->publ.connected) {
986 p_ptr->publ.conn_unacked -= ack;
987 buf = port_build_proto_msg(port_peerport(p_ptr),
988 port_peernode(p_ptr),
994 port_out_seqno(p_ptr),
997 tipc_port_unlock(p_ptr);
1019 struct port *p_ptr;
1028 p_ptr = tipc_port_lock(ref);
1029 if (!p_ptr) {
1034 p_ptr->user_port = up_ptr;
1037 up_ptr->ref = p_ptr->publ.ref;
1047 *portref = p_ptr->publ.ref;
1048 dbg(" tipc_createport: %x with ref %u\n", p_ptr, p_ptr->publ.ref);
1049 tipc_port_unlock(p_ptr);
1062 struct port *p_ptr;
1064 p_ptr = tipc_port_lock(ref);
1065 if (!p_ptr)
1067 *importance = (unsigned int)msg_importance(&p_ptr->publ.phdr);
1068 spin_unlock_bh(p_ptr->publ.lock);
1074 struct port *p_ptr;
1079 p_ptr = tipc_port_lock(ref);
1080 if (!p_ptr)
1082 msg_set_importance(&p_ptr->publ.phdr, (u32)imp);
1083 spin_unlock_bh(p_ptr->publ.lock);
1090 struct port *p_ptr;
1095 p_ptr = tipc_port_lock(ref);
1096 if (!p_ptr)
1099 dbg("tipc_publ %u, p_ptr = %x, conn = %x, scope = %x, "
1101 ref, p_ptr, p_ptr->publ.connected, scope, seq->lower, seq->upper);
1102 if (p_ptr->publ.connected)
1108 key = ref + p_ptr->pub_count + 1;
1114 scope, p_ptr->publ.ref, key);
1116 list_add(&publ->pport_list, &p_ptr->publications);
1117 p_ptr->pub_count++;
1118 p_ptr->publ.published = 1;
1122 tipc_port_unlock(p_ptr);
1128 struct port *p_ptr;
1133 p_ptr = tipc_port_lock(ref);
1134 if (!p_ptr)
1138 &p_ptr->publications, pport_list) {
1145 &p_ptr->publications, pport_list) {
1160 if (list_empty(&p_ptr->publications))
1161 p_ptr->publ.published = 0;
1162 tipc_port_unlock(p_ptr);
1168 struct port *p_ptr;
1172 p_ptr = tipc_port_lock(ref);
1173 if (!p_ptr)
1175 if (p_ptr->publ.published || p_ptr->publ.connected)
1180 msg = &p_ptr->publ.phdr;
1184 msg_set_origport(msg, p_ptr->publ.ref);
1192 p_ptr->probing_interval = PROBING_INTERVAL;
1193 p_ptr->probing_state = CONFIRMED;
1194 p_ptr->publ.connected = 1;
1195 k_start_timer(&p_ptr->timer, p_ptr->probing_interval);
1197 tipc_nodesub_subscribe(&p_ptr->subscription,peer->node,
1202 tipc_port_unlock(p_ptr);
1203 p_ptr->max_pkt = tipc_link_get_max_pkt(peer->node, ref);
1214 struct port *p_ptr;
1217 p_ptr = tipc_port_lock(ref);
1218 if (!p_ptr)
1220 if (p_ptr->publ.connected) {
1221 p_ptr->publ.connected = 0;
1223 tipc_nodesub_unsubscribe(&p_ptr->subscription);
1226 tipc_port_unlock(p_ptr);
1235 struct port *p_ptr;
1238 p_ptr = tipc_port_lock(ref);
1239 if (!p_ptr)
1242 if (p_ptr->publ.connected) {
1243 u32 imp = msg_importance(&p_ptr->publ.phdr);
1246 buf = port_build_proto_msg(port_peerport(p_ptr),
1247 port_peernode(p_ptr),
1253 port_out_seqno(p_ptr),
1256 tipc_port_unlock(p_ptr);
1263 struct port *p_ptr;
1265 p_ptr = tipc_port_lock(ref);
1266 if (!p_ptr)
1268 *isconnected = p_ptr->publ.connected;
1269 tipc_port_unlock(p_ptr);
1275 struct port *p_ptr;
1278 p_ptr = tipc_port_lock(ref);
1279 if (!p_ptr)
1281 if (p_ptr->publ.connected) {
1282 peer->ref = port_peerport(p_ptr);
1283 peer->node = port_peernode(p_ptr);
1287 tipc_port_unlock(p_ptr);
1322 struct port *p_ptr;
1326 p_ptr = tipc_port_deref(ref);
1327 if (!p_ptr || !p_ptr->publ.connected)
1330 p_ptr->publ.congested = 1;
1331 if (!tipc_port_congested(p_ptr)) {
1332 destnode = port_peernode(p_ptr);
1334 res = tipc_link_send_sections_fast(p_ptr, msg_sect, num_sect,
1337 res = tipc_port_recv_sections(p_ptr, num_sect, msg_sect);
1340 port_incr_out_seqno(p_ptr);
1341 p_ptr->publ.congested = 0;
1342 p_ptr->sent++;
1346 if (port_unreliable(p_ptr)) {
1347 p_ptr->publ.congested = 0;
1360 struct port *p_ptr;
1367 p_ptr = tipc_port_deref(ref);
1368 if (!p_ptr || !p_ptr->publ.connected)
1371 msg = &p_ptr->publ.phdr;
1381 p_ptr->publ.congested = 1;
1382 if (!tipc_port_congested(p_ptr)) {
1390 port_incr_out_seqno(p_ptr);
1391 p_ptr->sent++;
1392 p_ptr->publ.congested = 0;
1396 if (port_unreliable(p_ptr)) {
1397 p_ptr->publ.congested = 0;
1415 struct port *p_ptr;
1421 p_ptr = tipc_port_deref(ref);
1422 if (!p_ptr || p_ptr->publ.connected)
1425 msg = &p_ptr->publ.phdr;
1440 p_ptr->sent++;
1442 return tipc_port_recv_sections(p_ptr, num_sect, msg_sect);
1443 res = tipc_link_send_sections_fast(p_ptr, msg_sect, num_sect,
1447 if (port_unreliable(p_ptr)) {
1453 return tipc_port_reject_sections(p_ptr, msg, msg_sect, num_sect,
1487 struct port *p_ptr;
1493 p_ptr = (struct port *)tipc_ref_deref(ref);
1494 if (!p_ptr || p_ptr->publ.connected)
1497 msg = &p_ptr->publ.phdr;
1518 p_ptr->sent++;
1524 if (port_unreliable(p_ptr))
1560 struct port *p_ptr;
1564 p_ptr = tipc_port_deref(ref);
1565 if (!p_ptr || p_ptr->publ.connected)
1568 msg = &p_ptr->publ.phdr;
1577 p_ptr->sent++;
1579 return tipc_port_recv_sections(p_ptr, num_sect, msg_sect);
1580 res = tipc_link_send_sections_fast(p_ptr, msg_sect, num_sect, dest->node);
1583 if (port_unreliable(p_ptr)) {
1617 struct port *p_ptr;
1621 p_ptr = (struct port *)tipc_ref_deref(ref);
1622 if (!p_ptr || p_ptr->publ.connected)
1625 msg = &p_ptr->publ.phdr;
1641 p_ptr->sent++;
1647 if (port_unreliable(p_ptr))