Lines Matching refs:ndopts
202 nd6_option_init(void *opt, int icmp6len, union nd_opts *ndopts)
205 memset(ndopts, 0, sizeof(*ndopts));
206 ndopts->nd_opts_search = (struct nd_opt_hdr *)opt;
207 ndopts->nd_opts_last
211 ndopts->nd_opts_done = 1;
212 ndopts->nd_opts_search = NULL;
220 nd6_option(union nd_opts *ndopts)
225 KASSERT(ndopts != NULL);
226 KASSERT(ndopts->nd_opts_last != NULL);
228 if (ndopts->nd_opts_search == NULL)
230 if (ndopts->nd_opts_done)
233 nd_opt = ndopts->nd_opts_search;
236 if ((void *)&nd_opt->nd_opt_len >= (void *)ndopts->nd_opts_last) {
237 memset(ndopts, 0, sizeof(*ndopts));
247 memset(ndopts, 0, sizeof(*ndopts));
251 ndopts->nd_opts_search = (struct nd_opt_hdr *)((char *)nd_opt + olen);
252 if (ndopts->nd_opts_search > ndopts->nd_opts_last) {
254 memset(ndopts, 0, sizeof(*ndopts));
256 } else if (ndopts->nd_opts_search == ndopts->nd_opts_last) {
258 ndopts->nd_opts_done = 1;
259 ndopts->nd_opts_search = NULL;
270 nd6_options(union nd_opts *ndopts)
275 KASSERT(ndopts != NULL);
276 KASSERT(ndopts->nd_opts_last != NULL);
278 if (ndopts->nd_opts_search == NULL)
282 nd_opt = nd6_option(ndopts);
283 if (nd_opt == NULL && ndopts->nd_opts_last == NULL) {
289 memset(ndopts, 0, sizeof(*ndopts));
302 if (ndopts->nd_opt_array[nd_opt->nd_opt_type]) {
308 ndopts->nd_opt_array[nd_opt->nd_opt_type]
313 if (ndopts->nd_opt_array[nd_opt->nd_opt_type] == 0) {
314 ndopts->nd_opt_array[nd_opt->nd_opt_type]
317 ndopts->nd_opts_pi_end =
338 if (ndopts->nd_opts_done)