Lines Matching refs:msg

37 			struct compat_msghdr *msg,  in __get_compat_msghdr()  argument
42 kmsg->msg_flags = msg->msg_flags; in __get_compat_msghdr()
43 kmsg->msg_namelen = msg->msg_namelen; in __get_compat_msghdr()
45 if (!msg->msg_name) in __get_compat_msghdr()
56 kmsg->msg_control_user = compat_ptr(msg->msg_control); in __get_compat_msghdr()
57 kmsg->msg_controllen = msg->msg_controllen; in __get_compat_msghdr()
60 *save_addr = compat_ptr(msg->msg_name); in __get_compat_msghdr()
62 if (msg->msg_name && kmsg->msg_namelen) { in __get_compat_msghdr()
64 err = move_addr_to_kernel(compat_ptr(msg->msg_name), in __get_compat_msghdr()
75 if (msg->msg_iovlen > UIO_MAXIOV) in __get_compat_msghdr()
88 struct compat_msghdr msg; in get_compat_msghdr() local
91 if (copy_from_user(&msg, umsg, sizeof(*umsg))) in get_compat_msghdr()
94 err = __get_compat_msghdr(kmsg, &msg, save_addr); in get_compat_msghdr()
99 compat_ptr(msg.msg_iov), msg.msg_iovlen, in get_compat_msghdr()
114 #define CMSG_COMPAT_FIRSTHDR(msg) \ argument
115 (((msg)->msg_controllen) >= sizeof(struct compat_cmsghdr) ? \
116 (struct compat_cmsghdr __user *)((msg)->msg_control_user) : \
125 static inline struct compat_cmsghdr __user *cmsg_compat_nxthdr(struct msghdr *msg, in cmsg_compat_nxthdr() argument
129 if ((unsigned long)(ptr + 1 - (char __user *)msg->msg_control_user) > in cmsg_compat_nxthdr()
130 msg->msg_controllen) in cmsg_compat_nxthdr()
283 static int scm_max_fds_compat(struct msghdr *msg) in scm_max_fds_compat() argument
285 if (msg->msg_controllen <= sizeof(struct compat_cmsghdr)) in scm_max_fds_compat()
287 return (msg->msg_controllen - sizeof(struct compat_cmsghdr)) / sizeof(int); in scm_max_fds_compat()
290 void scm_detach_fds_compat(struct msghdr *msg, struct scm_cookie *scm) in scm_detach_fds_compat() argument
293 (struct compat_cmsghdr __user *)msg->msg_control_user; in scm_detach_fds_compat()
294 unsigned int o_flags = (msg->msg_flags & MSG_CMSG_CLOEXEC) ? O_CLOEXEC : 0; in scm_detach_fds_compat()
295 int fdmax = min_t(int, scm_max_fds_compat(msg), scm->fp->count); in scm_detach_fds_compat()
315 if (msg->msg_controllen < cmlen) in scm_detach_fds_compat()
316 cmlen = msg->msg_controllen; in scm_detach_fds_compat()
317 msg->msg_control_user += cmlen; in scm_detach_fds_compat()
318 msg->msg_controllen -= cmlen; in scm_detach_fds_compat()
323 msg->msg_flags |= MSG_CTRUNC; in scm_detach_fds_compat()
343 struct compat_msghdr __user *msg, in __compat_sys_sendmsg() argument
346 return __sys_sendmsg(fd, (struct user_msghdr __user *)msg, in __compat_sys_sendmsg()
350 COMPAT_SYSCALL_DEFINE3(sendmsg, int, fd, struct compat_msghdr __user *, msg, in COMPAT_SYSCALL_DEFINE3() argument
353 return __compat_sys_sendmsg(fd, msg, flags); in COMPAT_SYSCALL_DEFINE3()
371 struct compat_msghdr __user *msg, in __compat_sys_recvmsg() argument
374 return __sys_recvmsg(fd, (struct user_msghdr __user *)msg, in __compat_sys_recvmsg()
378 COMPAT_SYSCALL_DEFINE3(recvmsg, int, fd, struct compat_msghdr __user *, msg, in COMPAT_SYSCALL_DEFINE3() argument
381 return __compat_sys_recvmsg(fd, msg, flags); in COMPAT_SYSCALL_DEFINE3()