Lines Matching full:pa

450 	struct inet_array *pa = (struct inet_array *)_data;  in add_prefix()  local
455 pa->rnh_prefixes++; in add_prefix()
457 if (pa->num_items + 5 >= pa->alloc_items) { in add_prefix()
458 if (pa->error == 0) in add_prefix()
459 pa->error = ENOSPC; in add_prefix()
465 pa->arr[pa->num_items++] = addr; in add_prefix()
468 pa->arr[pa->num_items++].s_addr = htonl(haddr - 1); in add_prefix()
469 pa->arr[pa->num_items++].s_addr = htonl(haddr + 1); in add_prefix()
472 pa->arr[pa->num_items++].s_addr = htonl(haddr + mlen); in add_prefix()
474 pa->arr[pa->num_items++].s_addr = htonl(haddr + mlen + 1); in add_prefix()
481 prepare_list(uint32_t fibnum, struct inet_array *pa) in prepare_list() argument
488 bzero(pa, sizeof(struct inet_array)); in prepare_list()
489 pa->alloc_items = (num_prefixes + 10) * 5; in prepare_list()
490 pa->arr = mallocarray(pa->alloc_items, sizeof(struct in_addr), in prepare_list()
493 rib_walk(fibnum, AF_INET, false, add_prefix, pa); in prepare_list()
495 if (pa->error != 0) { in prepare_list()
497 num_prefixes, rh->rnh_prefixes, pa->rnh_prefixes, pa->alloc_items); in prepare_list()
500 return (pa->error == 0); in prepare_list()
516 struct inet_array pa = {}; in run_test_inet_scan() local
519 if (!prepare_list(fibnum, &pa)) in run_test_inet_scan()
520 return (pa.error); in run_test_inet_scan()
529 for (int i = 0; i < pa.num_items; i++) { in run_test_inet_scan()
530 if (!cmp_dst(fibnum, pa.arr[i])) { in run_test_inet_scan()
538 if (pa.arr != NULL) in run_test_inet_scan()
539 free(pa.arr, M_TEMP); in run_test_inet_scan()
634 struct inet6_array *pa = (struct inet6_array *)_data; in add_prefix6() local
639 pa->rnh_prefixes++; in add_prefix6()
641 if (pa->num_items + 5 >= pa->alloc_items) { in add_prefix6()
642 if (pa->error == 0) in add_prefix6()
643 pa->error = ENOSPC; in add_prefix6()
649 pa->arr[pa->num_items++] = addr; in add_prefix6()
653 pa->arr[pa->num_items++] = naddr; in add_prefix6()
656 pa->arr[pa->num_items++] = naddr; in add_prefix6()
665 pa->arr[pa->num_items++] = naddr; in add_prefix6()
667 pa->arr[pa->num_items++] = naddr; in add_prefix6()
674 prepare_list6(uint32_t fibnum, struct inet6_array *pa) in prepare_list6() argument
681 bzero(pa, sizeof(struct inet6_array)); in prepare_list6()
682 pa->alloc_items = (num_prefixes + 10) * 5; in prepare_list6()
683 pa->arr = mallocarray(pa->alloc_items, sizeof(struct in6_addr), in prepare_list6()
686 rib_walk(fibnum, AF_INET6, false, add_prefix6, pa); in prepare_list6()
688 if (pa->error != 0) { in prepare_list6()
690 num_prefixes, rh->rnh_prefixes, pa->rnh_prefixes, pa->alloc_items); in prepare_list6()
693 return (pa->error == 0); in prepare_list6()
709 struct inet6_array pa = {}; in run_test_inet6_scan() local
712 if (!prepare_list6(fibnum, &pa)) in run_test_inet6_scan()
713 return (pa.error); in run_test_inet6_scan()
722 for (int i = 0; i < pa.num_items; i++) { in run_test_inet6_scan()
723 if (!cmp_dst6(fibnum, &pa.arr[i])) { in run_test_inet6_scan()
731 if (pa.arr != NULL) in run_test_inet6_scan()
732 free(pa.arr, M_TEMP); in run_test_inet6_scan()