Lines Matching defs:kmsg

36 int __get_compat_msghdr(struct msghdr *kmsg,
47 kmsg->msg_flags = msg.msg_flags;
48 kmsg->msg_namelen = msg.msg_namelen;
51 kmsg->msg_namelen = 0;
53 if (kmsg->msg_namelen < 0)
56 if (kmsg->msg_namelen > sizeof(struct sockaddr_storage))
57 kmsg->msg_namelen = sizeof(struct sockaddr_storage);
59 kmsg->msg_control_is_user = true;
60 kmsg->msg_control_user = compat_ptr(msg.msg_control);
61 kmsg->msg_controllen = msg.msg_controllen;
66 if (msg.msg_name && kmsg->msg_namelen) {
69 kmsg->msg_namelen,
70 kmsg->msg_name);
75 kmsg->msg_name = NULL;
76 kmsg->msg_namelen = 0;
82 kmsg->msg_iocb = NULL;
88 int get_compat_msghdr(struct msghdr *kmsg,
97 err = __get_compat_msghdr(kmsg, umsg, save_addr, &ptr, &len);
102 UIO_FASTIOV, iov, &kmsg->msg_iter);
141 int cmsghdr_from_user_compat_to_kern(struct msghdr *kmsg, struct sock *sk,
155 ucmsg = CMSG_COMPAT_FIRSTHDR(kmsg);
161 if (!CMSG_COMPAT_OK(ucmlen, ucmsg, kmsg))
167 ucmsg = cmsg_compat_nxthdr(kmsg, ucmsg, ucmlen);
173 * It may not be modified as we do not stick it into the kmsg
184 ucmsg = CMSG_COMPAT_FIRSTHDR(kmsg);
189 if (!CMSG_COMPAT_OK(cmsg.cmsg_len, ucmsg, kmsg))
205 ucmsg = cmsg_compat_nxthdr(kmsg, ucmsg, cmsg.cmsg_len);
216 kmsg->msg_control = kcmsg_base;
217 kmsg->msg_controllen = kcmlen;
228 int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *data)
230 struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control;
236 if (cm == NULL || kmsg->msg_controllen < sizeof(*cm)) {
237 kmsg->msg_flags |= MSG_CTRUNC;
264 if (kmsg->msg_controllen < cmlen) {
265 kmsg->msg_flags |= MSG_CTRUNC;
266 cmlen = kmsg->msg_controllen;
277 if (kmsg->msg_controllen < cmlen)
278 cmlen = kmsg->msg_controllen;
279 kmsg->msg_control += cmlen;
280 kmsg->msg_controllen -= cmlen;