Lines Matching defs:kmsg
36 int __get_compat_msghdr(struct msghdr *kmsg,
42 kmsg->msg_flags = msg->msg_flags;
43 kmsg->msg_namelen = msg->msg_namelen;
46 kmsg->msg_namelen = 0;
48 if (kmsg->msg_namelen < 0)
51 if (kmsg->msg_namelen > sizeof(struct sockaddr_storage))
52 kmsg->msg_namelen = sizeof(struct sockaddr_storage);
54 kmsg->msg_control_is_user = true;
55 kmsg->msg_get_inq = 0;
56 kmsg->msg_control_user = compat_ptr(msg->msg_control);
57 kmsg->msg_controllen = msg->msg_controllen;
62 if (msg->msg_name && kmsg->msg_namelen) {
65 kmsg->msg_namelen,
66 kmsg->msg_name);
71 kmsg->msg_name = NULL;
72 kmsg->msg_namelen = 0;
78 kmsg->msg_iocb = NULL;
79 kmsg->msg_ubuf = NULL;
83 int get_compat_msghdr(struct msghdr *kmsg,
94 err = __get_compat_msghdr(kmsg, &msg, save_addr);
100 UIO_FASTIOV, iov, &kmsg->msg_iter);
139 int cmsghdr_from_user_compat_to_kern(struct msghdr *kmsg, struct sock *sk,
153 ucmsg = CMSG_COMPAT_FIRSTHDR(kmsg);
159 if (!CMSG_COMPAT_OK(ucmlen, ucmsg, kmsg))
165 ucmsg = cmsg_compat_nxthdr(kmsg, ucmsg, ucmlen);
171 * It may not be modified as we do not stick it into the kmsg
182 ucmsg = CMSG_COMPAT_FIRSTHDR(kmsg);
187 if (!CMSG_COMPAT_OK(cmsg.cmsg_len, ucmsg, kmsg))
203 ucmsg = cmsg_compat_nxthdr(kmsg, ucmsg, cmsg.cmsg_len);
214 kmsg->msg_control_is_user = false;
215 kmsg->msg_control = kcmsg_base;
216 kmsg->msg_controllen = kcmlen;
227 int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *data)
229 struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control_user;
235 if (cm == NULL || kmsg->msg_controllen < sizeof(*cm)) {
236 kmsg->msg_flags |= MSG_CTRUNC;
263 if (kmsg->msg_controllen < cmlen) {
264 kmsg->msg_flags |= MSG_CTRUNC;
265 cmlen = kmsg->msg_controllen;
276 if (kmsg->msg_controllen < cmlen)
277 cmlen = kmsg->msg_controllen;
278 kmsg->msg_control_user += cmlen;
279 kmsg->msg_controllen -= cmlen;