Lines Matching refs:sopt
576 ctl_ctloutput(struct socket *so, struct sockopt *sopt)
584 if (sopt->sopt_level != SYSPROTO_CONTROL) {
594 switch (sopt->sopt_dir) {
598 if (sopt->sopt_valsize == 0) {
601 MALLOC(data, void *, sopt->sopt_valsize, M_TEMP, M_WAITOK);
604 error = sooptcopyin(sopt, data, sopt->sopt_valsize, sopt->sopt_valsize);
608 error = (*kctl->setopt)(kcb->kctl, kcb->unit, kcb->userdata, sopt->sopt_name,
609 data, sopt->sopt_valsize);
619 if (sopt->sopt_valsize && sopt->sopt_val) {
620 MALLOC(data, void *, sopt->sopt_valsize, M_TEMP, M_WAITOK);
624 error = sooptcopyin(sopt, data, sopt->sopt_valsize, sopt->sopt_valsize);
626 len = sopt->sopt_valsize;
628 error = (*kctl->getopt)(kcb->kctl, kcb->unit, kcb->userdata, sopt->sopt_name,
630 if (data != NULL && len > sopt->sopt_valsize)
632 kcb->kctl->name, len, sopt->sopt_valsize);
636 error = sooptcopyout(sopt, data, len);
638 sopt->sopt_valsize = len;