Lines Matching refs:sr

90 #define service_range_upper(sr) ((sr)->upper)  argument
98 #define service_range_overlap(sr, start, end) \ in RB_DECLARE_CALLBACKS_MAX() argument
99 ((sr)->lower <= (end) && (sr)->upper >= (start)) in RB_DECLARE_CALLBACKS_MAX()
108 #define service_range_foreach_match(sr, sc, start, end) \ in RB_DECLARE_CALLBACKS_MAX() argument
109 for (sr = service_range_match_first((sc)->ranges.rb_node, \ in RB_DECLARE_CALLBACKS_MAX()
112 sr; \
113 sr = service_range_match_next(&(sr)->tree_node, \
128 struct service_range *sr; local
149 sr = service_range_entry(n);
150 if (service_range_overlap(sr, start, end))
151 return sr;
155 if (sr->lower <= end &&
177 struct service_range *sr; in service_range_match_next() local
199 sr = service_range_entry(p); in service_range_match_next()
200 if (service_range_overlap(sr, start, end)) in service_range_match_next()
201 return sr; in service_range_match_next()
204 if (sr->lower <= end) { in service_range_match_next()
274 struct service_range *sr; in tipc_service_find_range() local
276 service_range_foreach_match(sr, sc, lower, upper) { in tipc_service_find_range()
278 if (sr->lower == lower && sr->upper == upper) in tipc_service_find_range()
279 return sr; in tipc_service_find_range()
289 struct service_range *sr; in tipc_service_create_range() local
294 sr = service_range_entry(parent); in tipc_service_create_range()
295 if (lower == sr->lower && upper == sr->upper) in tipc_service_create_range()
296 return sr; in tipc_service_create_range()
297 if (sr->max < upper) in tipc_service_create_range()
298 sr->max = upper; in tipc_service_create_range()
299 if (lower <= sr->lower) in tipc_service_create_range()
304 sr = kzalloc(sizeof(*sr), GFP_ATOMIC); in tipc_service_create_range()
305 if (!sr) in tipc_service_create_range()
307 sr->lower = lower; in tipc_service_create_range()
308 sr->upper = upper; in tipc_service_create_range()
309 sr->max = upper; in tipc_service_create_range()
310 INIT_LIST_HEAD(&sr->local_publ); in tipc_service_create_range()
311 INIT_LIST_HEAD(&sr->all_publ); in tipc_service_create_range()
312 rb_link_node(&sr->tree_node, parent, n); in tipc_service_create_range()
313 rb_insert_augmented(&sr->tree_node, &sc->ranges, &sr_callbacks); in tipc_service_create_range()
314 return sr; in tipc_service_create_range()
325 struct service_range *sr; in tipc_service_insert_publ() local
329 sr = tipc_service_create_range(sc, lower, upper); in tipc_service_insert_publ()
330 if (!sr) in tipc_service_insert_publ()
333 first = list_empty(&sr->all_publ); in tipc_service_insert_publ()
336 list_for_each_entry(p, &sr->all_publ, all_publ) { in tipc_service_insert_publ()
348 list_add(&p->local_publ, &sr->local_publ); in tipc_service_insert_publ()
349 list_add(&p->all_publ, &sr->all_publ); in tipc_service_insert_publ()
365 static struct publication *tipc_service_remove_publ(struct service_range *sr, in tipc_service_remove_publ() argument
370 list_for_each_entry(p, &sr->all_publ, all_publ) { in tipc_service_remove_publ()
405 struct service_range *sr; in tipc_service_subscribe() local
421 service_range_foreach_match(sr, service, ns.lower, ns.upper) { in tipc_service_subscribe()
423 list_for_each_entry(p, &sr->all_publ, all_publ) { in tipc_service_subscribe()
491 struct service_range *sr = NULL; in tipc_nametbl_remove_publ() local
499 sr = tipc_service_find_range(sc, lower, upper); in tipc_nametbl_remove_publ()
500 if (!sr) in tipc_nametbl_remove_publ()
502 p = tipc_service_remove_publ(sr, node, key); in tipc_nametbl_remove_publ()
507 last = list_empty(&sr->all_publ); in tipc_nametbl_remove_publ()
514 if (list_empty(&sr->all_publ)) { in tipc_nametbl_remove_publ()
515 rb_erase_augmented(&sr->tree_node, &sc->ranges, &sr_callbacks); in tipc_nametbl_remove_publ()
516 kfree(sr); in tipc_nametbl_remove_publ()
550 struct service_range *sr; in tipc_nametbl_translate() local
566 service_range_foreach_match(sr, sc, instance, instance) { in tipc_nametbl_translate()
569 list = &sr->local_publ; in tipc_nametbl_translate()
574 list_move_tail(&p->local_publ, &sr->local_publ); in tipc_nametbl_translate()
575 } else if (legacy && !*dnode && !list_empty(&sr->local_publ)) { in tipc_nametbl_translate()
576 list = &sr->local_publ; in tipc_nametbl_translate()
579 list_move_tail(&p->local_publ, &sr->local_publ); in tipc_nametbl_translate()
581 list = &sr->all_publ; in tipc_nametbl_translate()
584 list_move_tail(&p->all_publ, &sr->all_publ); in tipc_nametbl_translate()
606 struct service_range *sr; in tipc_nametbl_lookup() local
619 sr = service_range_match_first(sc->ranges.rb_node, instance, instance); in tipc_nametbl_lookup()
620 if (!sr) in tipc_nametbl_lookup()
623 list_for_each_entry(p, &sr->all_publ, all_publ) { in tipc_nametbl_lookup()
632 list_move_tail(&p->all_publ, &sr->all_publ); in tipc_nametbl_lookup()
645 struct service_range *sr; in tipc_nametbl_mc_lookup() local
655 service_range_foreach_match(sr, sc, lower, upper) { in tipc_nametbl_mc_lookup()
656 list_for_each_entry(p, &sr->local_publ, local_publ) { in tipc_nametbl_mc_lookup()
673 struct service_range *sr; in tipc_nametbl_lookup_dst_nodes() local
683 service_range_foreach_match(sr, sc, lower, upper) { in tipc_nametbl_lookup_dst_nodes()
684 list_for_each_entry(p, &sr->all_publ, all_publ) { in tipc_nametbl_lookup_dst_nodes()
698 struct service_range *sr; in tipc_nametbl_build_group() local
710 sr = container_of(n, struct service_range, tree_node); in tipc_nametbl_build_group()
711 list_for_each_entry(p, &sr->all_publ, all_publ) { in tipc_nametbl_build_group()
877 struct service_range *sr, *tmpr; in tipc_service_delete() local
881 rbtree_postorder_for_each_entry_safe(sr, tmpr, &sc->ranges, tree_node) { in tipc_service_delete()
882 list_for_each_entry_safe(p, tmp, &sr->all_publ, all_publ) { in tipc_service_delete()
883 tipc_service_remove_publ(sr, p->node, p->key); in tipc_service_delete()
886 rb_erase_augmented(&sr->tree_node, &sc->ranges, &sr_callbacks); in tipc_service_delete()
887 kfree(sr); in tipc_service_delete()
922 struct service_range *sr, in __tipc_nl_add_nametable_publ() argument
931 list_for_each_entry(p, &sr->all_publ, all_publ) in __tipc_nl_add_nametable_publ()
934 if (list_entry_is_head(p, &sr->all_publ, all_publ)) in __tipc_nl_add_nametable_publ()
937 p = list_first_entry(&sr->all_publ, in __tipc_nl_add_nametable_publ()
942 list_for_each_entry_from(p, &sr->all_publ, all_publ) { in __tipc_nl_add_nametable_publ()
961 if (nla_put_u32(msg->skb, TIPC_NLA_PUBL_LOWER, sr->lower)) in __tipc_nl_add_nametable_publ()
963 if (nla_put_u32(msg->skb, TIPC_NLA_PUBL_UPPER, sr->upper)) in __tipc_nl_add_nametable_publ()
996 struct service_range *sr; in __tipc_nl_service_range_list() local
1001 sr = container_of(n, struct service_range, tree_node); in __tipc_nl_service_range_list()
1002 if (sr->lower < *last_lower) in __tipc_nl_service_range_list()
1004 err = __tipc_nl_add_nametable_publ(msg, sc, sr, last_key); in __tipc_nl_service_range_list()
1006 *last_lower = sr->lower; in __tipc_nl_service_range_list()