Lines Matching refs:sopt

2951 sooptcopyin(struct sockopt *sopt, void *buf, size_t len, size_t minlen)  argument
2961 if ((valsize = sopt->sopt_valsize) < minlen)
2964 sopt->sopt_valsize = valsize = len;
2966 if (sopt->sopt_td != NULL)
2967 return (copyin(sopt->sopt_val, buf, valsize));
2969 bcopy(sopt->sopt_val, buf, valsize);
2982 struct sockopt sopt; local
2984 sopt.sopt_level = level;
2985 sopt.sopt_name = optname;
2986 sopt.sopt_dir = SOPT_SET;
2987 sopt.sopt_val = optval;
2988 sopt.sopt_valsize = optlen;
2989 sopt.sopt_td = NULL;
2990 return (sosetopt(so, &sopt));
2994 sosetopt(struct socket *so, struct sockopt *sopt) argument
3007 if (sopt->sopt_level != SOL_SOCKET) {
3009 error = (*so->so_proto->pr_ctloutput)(so, sopt);
3013 switch (sopt->sopt_name) {
3015 error = accept_filt_setopt(so, sopt);
3021 error = sooptcopyin(sopt, &l, sizeof l, sizeof l);
3054 error = sooptcopyin(sopt, &optval, sizeof optval,
3060 so->so_options |= sopt->sopt_name;
3062 so->so_options &= ~sopt->sopt_name;
3067 error = sooptcopyin(sopt, &optval, sizeof optval,
3085 error = sooptcopyin(sopt, &val32, sizeof val32,
3096 error = sooptcopyin(sopt, &optval, sizeof optval,
3110 error = sbsetopt(so, sopt->sopt_name, optval);
3119 error = sooptcopyin(sopt, &tv32, sizeof tv32,
3125 error = sooptcopyin(sopt, &tv, sizeof tv,
3138 switch (sopt->sopt_name) {
3150 error = sooptcopyin(sopt, &extmac, sizeof extmac,
3154 error = mac_setsockopt_label(sopt->sopt_td->td_ucred,
3162 error = sooptcopyin(sopt, &optval, sizeof optval,
3174 error = sooptcopyin(sopt, &val32, sizeof(val32),
3183 error = hhook_run_socket(so, sopt,
3190 (void)(*so->so_proto->pr_ctloutput)(so, sopt);
3201 sooptcopyout(struct sockopt *sopt, const void *buf, size_t len) argument
3216 valsize = min(len, sopt->sopt_valsize);
3217 sopt->sopt_valsize = valsize;
3218 if (sopt->sopt_val != NULL) {
3219 if (sopt->sopt_td != NULL)
3220 error = copyout(buf, sopt->sopt_val, valsize);
3222 bcopy(buf, sopt->sopt_val, valsize);
3228 sogetopt(struct socket *so, struct sockopt *sopt) argument
3239 if (sopt->sopt_level != SOL_SOCKET) {
3241 error = (*so->so_proto->pr_ctloutput)(so, sopt);
3247 switch (sopt->sopt_name) {
3249 error = accept_filt_getopt(so, sopt);
3257 error = sooptcopyout(sopt, &l, sizeof l);
3276 optval = so->so_options & sopt->sopt_name;
3278 error = sooptcopyout(sopt, &optval, sizeof optval);
3327 tv = sbttotv(sopt->sopt_name == SO_SNDTIMEO ?
3335 error = sooptcopyout(sopt, &tv32, sizeof tv32);
3338 error = sooptcopyout(sopt, &tv, sizeof tv);
3343 error = sooptcopyin(sopt, &extmac, sizeof(extmac),
3347 error = mac_getsockopt_label(sopt->sopt_td->td_ucred,
3351 error = sooptcopyout(sopt, &extmac, sizeof extmac);
3359 error = sooptcopyin(sopt, &extmac, sizeof(extmac),
3364 sopt->sopt_td->td_ucred, so, &extmac);
3367 error = sooptcopyout(sopt, &extmac, sizeof extmac);
3395 error = hhook_run_socket(so, sopt,
3410 soopt_getm(struct sockopt *sopt, struct mbuf **mp) argument
3413 int sopt_size = sopt->sopt_valsize;
3415 MGET(m, sopt->sopt_td ? M_WAITOK : M_NOWAIT, MT_DATA);
3419 MCLGET(m, sopt->sopt_td ? M_WAITOK : M_NOWAIT);
3433 MGET(m, sopt->sopt_td ? M_WAITOK : M_NOWAIT, MT_DATA);
3439 MCLGET(m, sopt->sopt_td != NULL ? M_WAITOK :
3458 soopt_mcopyin(struct sockopt *sopt, struct mbuf *m) argument
3462 if (sopt->sopt_val == NULL)
3464 while (m != NULL && sopt->sopt_valsize >= m->m_len) {
3465 if (sopt->sopt_td != NULL) {
3468 error = copyin(sopt->sopt_val, mtod(m, char *),
3475 bcopy(sopt->sopt_val, mtod(m, char *), m->m_len);
3476 sopt->sopt_valsize -= m->m_len;
3477 sopt->sopt_val = (char *)sopt->sopt_val + m->m_len;
3486 soopt_mcopyout(struct sockopt *sopt, struct mbuf *m) argument
3491 if (sopt->sopt_val == NULL)
3493 while (m != NULL && sopt->sopt_valsize >= m->m_len) {
3494 if (sopt->sopt_td != NULL) {
3497 error = copyout(mtod(m, char *), sopt->sopt_val,
3504 bcopy(mtod(m, char *), sopt->sopt_val, m->m_len);
3505 sopt->sopt_valsize -= m->m_len;
3506 sopt->sopt_val = (char *)sopt->sopt_val + m->m_len;
3515 sopt->sopt_valsize = valsize;