Lines Matching refs:optval

58 static int mptcp_get_int_option(struct mptcp_sock *msk, sockptr_t optval,
64 if (copy_from_sockptr(val, optval, sizeof(*val)))
125 sockptr_t optval = KERNEL_SOCKPTR(&val);
130 optval, sizeof(val));
149 sockptr_t optval = KERNEL_SOCKPTR(&val);
155 optval, sizeof(val));
173 sockptr_t optval,
178 ret = mptcp_get_int_option(msk, optval, optlen, &val);
209 sockptr_t optval,
218 if (copy_from_sockptr(&timestamping, optval,
224 if (copy_from_sockptr(&timestamping.flags, optval, sizeof(int)))
251 static int mptcp_setsockopt_sol_socket_linger(struct mptcp_sock *msk, sockptr_t optval,
263 if (copy_from_sockptr(&ling, optval, sizeof(ling)))
293 sockptr_t optval, unsigned int optlen)
311 ret = sk_setsockopt(ssk, SOL_SOCKET, optname, optval, optlen);
337 return mptcp_setsockopt_sol_socket_int(msk, optname, optval,
342 optval, optlen);
344 return mptcp_setsockopt_sol_socket_linger(msk, optval, optlen);
354 return sock_setsockopt(sk->sk_socket, SOL_SOCKET, optname, optval, optlen);
390 sockptr_t optval, unsigned int optlen)
407 ret = tcp_setsockopt(ssk, SOL_IPV6, optname, optval, optlen);
583 static int mptcp_setsockopt_sol_tcp_congestion(struct mptcp_sock *msk, sockptr_t optval,
595 ret = strncpy_from_sockptr(name, optval,
626 static int mptcp_setsockopt_sol_tcp_cork(struct mptcp_sock *msk, sockptr_t optval,
636 if (copy_from_sockptr(&val, optval, sizeof(val)))
656 static int mptcp_setsockopt_sol_tcp_nodelay(struct mptcp_sock *msk, sockptr_t optval,
666 if (copy_from_sockptr(&val, optval, sizeof(val)))
687 sockptr_t optval, unsigned int optlen)
693 err = ip_setsockopt(sk, SOL_IP, optname, optval, optlen);
725 sockptr_t optval, unsigned int optlen)
731 err = ip_setsockopt(sk, SOL_IP, optname, optval, optlen);
753 sockptr_t optval, unsigned int optlen)
758 return mptcp_setsockopt_sol_ip_set_transparent(msk, optname, optval, optlen);
760 return mptcp_setsockopt_v4_set_tos(msk, optname, optval, optlen);
767 sockptr_t optval, unsigned int optlen)
781 ret = tcp_setsockopt(ssk, level, optname, optval, optlen);
789 sockptr_t optval, unsigned int optlen)
796 ret = mptcp_get_int_option(msk, optval, optlen, &val);
809 return mptcp_setsockopt_sol_tcp_congestion(msk, optval, optlen);
811 return mptcp_setsockopt_sol_tcp_cork(msk, optval, optlen);
813 return mptcp_setsockopt_sol_tcp_nodelay(msk, optval, optlen);
816 mptcp_setsockopt_first_sf_only(msk, SOL_TCP, optname, optval, optlen);
823 optval, optlen);
830 sockptr_t optval, unsigned int optlen)
838 return mptcp_setsockopt_sol_socket(msk, optname, optval, optlen);
853 return tcp_setsockopt(ssk, level, optname, optval, optlen);
856 return mptcp_setsockopt_v4(msk, optname, optval, optlen);
859 return mptcp_setsockopt_v6(msk, optname, optval, optlen);
862 return mptcp_setsockopt_sol_tcp(msk, optname, optval, optlen);
868 char __user *optval, int __user *optlen)
877 ret = tcp_getsockopt(ssk, level, optname, optval, optlen);
887 ret = tcp_getsockopt(ssk, level, optname, optval, optlen);
945 static int mptcp_getsockopt_info(struct mptcp_sock *msk, char __user *optval, int __user *optlen)
960 if (copy_to_user(optval, &m_info, len))
967 char __user *optval,
981 if (copy_to_user(optval, sfd, copylen))
988 char __user *optval,
1007 if (copy_from_user(sfd, optval, copylen))
1025 static int mptcp_getsockopt_tcpinfo(struct mptcp_sock *msk, char __user *optval,
1035 len = mptcp_get_subflow_data(&sfd, optval, optlen);
1043 infoptr = optval + sfd.size_subflow_data;
1072 if (mptcp_put_subflow_data(&sfd, optval, copied, optlen))
1117 static int mptcp_getsockopt_subflow_addrs(struct mptcp_sock *msk, char __user *optval,
1127 len = mptcp_get_subflow_data(&sfd, optval, optlen);
1135 addrptr = optval + sfd.size_subflow_data;
1164 if (mptcp_put_subflow_data(&sfd, optval, copied, optlen))
1171 char __user *optval,
1186 if (copy_from_user(mfi, optval, MIN_FULL_INFO_OPTLEN_SIZE))
1202 char __user *optval,
1210 if (copy_to_user(optval, mfi, copylen))
1215 static int mptcp_getsockopt_full_info(struct mptcp_sock *msk, char __user *optval,
1225 len = mptcp_get_full_info(&mfi, optval, optlen);
1279 if (mptcp_put_full_info(&mfi, optval, copylen, optlen))
1289 static int mptcp_put_int_option(struct mptcp_sock *msk, char __user *optval,
1305 if (copy_to_user(optval, &ucval, 1))
1311 if (copy_to_user(optval, &val, len))
1319 char __user *optval, int __user *optlen)
1332 optval, optlen);
1334 return mptcp_put_int_option(msk, optval, optlen, msk->recvmsg_inq);
1336 return mptcp_put_int_option(msk, optval, optlen, msk->cork);
1338 return mptcp_put_int_option(msk, optval, optlen, msk->nodelay);
1344 char __user *optval, int __user *optlen)
1350 return mptcp_put_int_option(msk, optval, optlen, inet_sk(sk)->tos);
1357 char __user *optval, int __user *optlen)
1361 return mptcp_getsockopt_info(msk, optval, optlen);
1363 return mptcp_getsockopt_full_info(msk, optval, optlen);
1365 return mptcp_getsockopt_tcpinfo(msk, optval, optlen);
1367 return mptcp_getsockopt_subflow_addrs(msk, optval, optlen);
1374 char __user *optval, int __user *option)
1391 return tcp_getsockopt(ssk, level, optname, optval, option);
1394 return mptcp_getsockopt_v4(msk, optname, optval, option);
1396 return mptcp_getsockopt_sol_tcp(msk, optname, optval, option);
1398 return mptcp_getsockopt_sol_mptcp(msk, optname, optval, option);