Lines Matching refs:message

147 prepare_userland_msghdr(const msghdr* userMessage, msghdr& message,
154 // copy message from userland
156 || user_memcpy(&message, userMessage, sizeof(msghdr)) != B_OK) {
160 userVecs = message.msg_iov;
161 userAddress = message.msg_name;
164 if (message.msg_iovlen < 0 || message.msg_iovlen > IOV_MAX)
166 if (userVecs != NULL && message.msg_iovlen > 0) {
168 status_t error = get_iovecs_from_user(message.msg_iov, message.msg_iovlen, vecs);
172 message.msg_iov = vecs;
174 message.msg_iov = NULL;
175 message.msg_iovlen = 0;
179 userAddress = message.msg_name;
181 if (!IS_USER_ADDRESS(message.msg_name))
183 if (message.msg_namelen > MAX_SOCKET_ADDRESS_LENGTH)
184 message.msg_namelen = MAX_SOCKET_ADDRESS_LENGTH;
186 message.msg_name = address;
494 common_recvmsg(int fd, struct msghdr *message, int flags, bool kernel)
500 return sStackInterface->recvmsg(descriptor->u.socket, message, flags);
529 common_sendmsg(int fd, const struct msghdr *message, int flags, bool kernel)
535 return sStackInterface->sendmsg(descriptor->u.socket, message, flags);
717 recvmsg(int socket, struct msghdr *message, int flags)
720 RETURN_AND_SET_ERRNO(common_recvmsg(socket, message, flags, true));
743 sendmsg(int socket, const struct msghdr *message, int flags)
746 RETURN_AND_SET_ERRNO(common_sendmsg(socket, message, flags, true));
958 // copy message from userland
959 msghdr message;
965 status_t error = prepare_userland_msghdr(userMessage, message, userVecs,
973 void* userAncillary = message.msg_control;
977 if (message.msg_controllen < 0)
979 if (message.msg_controllen > MAX_ANCILLARY_DATA_LENGTH)
980 message.msg_controllen = MAX_ANCILLARY_DATA_LENGTH;
982 message.msg_control = ancillary = malloc(message.msg_controllen);
983 if (message.msg_control == NULL)
992 result = common_recvmsg(socket, &message, flags, false);
996 // copy the address, the ancillary data, and the message header back to
998 message.msg_name = userAddress;
999 message.msg_iov = userVecs;
1000 message.msg_control = userAncillary;
1002 message.msg_namelen) != B_OK)
1004 message.msg_controllen) != B_OK)
1005 || user_memcpy(userMessage, &message, sizeof(msghdr)) != B_OK) {
1058 // copy message from userland
1059 msghdr message;
1065 status_t error = prepare_userland_msghdr(userMessage, message, userVecs,
1072 && user_memcpy(address, userAddress, message.msg_namelen) != B_OK) {
1078 void* userAncillary = message.msg_control;
1082 if (message.msg_controllen < 0
1083 || message.msg_controllen > MAX_ANCILLARY_DATA_LENGTH) {
1087 message.msg_control = malloc(message.msg_controllen);
1088 if (message.msg_control == NULL)
1090 ancillaryDeleter.SetTo(message.msg_control);
1092 if (user_memcpy(message.msg_control, userAncillary,
1093 message.msg_controllen) != B_OK) {
1101 return result = common_sendmsg(socket, &message, flags, false);