Lines Matching defs:ndopts
389 nd6_option_init(void *opt, int icmp6len, union nd_opts *ndopts)
392 bzero(ndopts, sizeof(*ndopts));
393 ndopts->nd_opts_search = (struct nd_opt_hdr *)opt;
394 ndopts->nd_opts_last
398 ndopts->nd_opts_done = 1;
399 ndopts->nd_opts_search = NULL;
407 nd6_option(union nd_opts *ndopts)
412 KASSERT(ndopts != NULL, ("%s: ndopts == NULL", __func__));
413 KASSERT(ndopts->nd_opts_last != NULL, ("%s: uninitialized ndopts",
415 if (ndopts->nd_opts_search == NULL)
417 if (ndopts->nd_opts_done)
420 nd_opt = ndopts->nd_opts_search;
423 if ((caddr_t)&nd_opt->nd_opt_len >= (caddr_t)ndopts->nd_opts_last) {
424 bzero(ndopts, sizeof(*ndopts));
434 bzero(ndopts, sizeof(*ndopts));
438 ndopts->nd_opts_search = (struct nd_opt_hdr *)((caddr_t)nd_opt + olen);
439 if (ndopts->nd_opts_search > ndopts->nd_opts_last) {
441 bzero(ndopts, sizeof(*ndopts));
443 } else if (ndopts->nd_opts_search == ndopts->nd_opts_last) {
445 ndopts->nd_opts_done = 1;
446 ndopts->nd_opts_search = NULL;
457 nd6_options(union nd_opts *ndopts)
462 KASSERT(ndopts != NULL, ("%s: ndopts == NULL", __func__));
463 KASSERT(ndopts->nd_opts_last != NULL, ("%s: uninitialized ndopts",
465 if (ndopts->nd_opts_search == NULL)
469 nd_opt = nd6_option(ndopts);
470 if (nd_opt == NULL && ndopts->nd_opts_last == NULL) {
476 bzero(ndopts, sizeof(*ndopts));
489 if (ndopts->nd_opt_array[nd_opt->nd_opt_type]) {
495 ndopts->nd_opt_array[nd_opt->nd_opt_type]
500 if (ndopts->nd_opt_array[nd_opt->nd_opt_type] == 0) {
501 ndopts->nd_opt_array[nd_opt->nd_opt_type]
504 ndopts->nd_opts_pi_end =
533 if (ndopts->nd_opts_done)