Lines Matching +full:step +full:- +full:size

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
60 /* Linux: arbitrary size, but must be lower than SCM_MAX_FD. */
61 #define PKG_MAX_SIZE ((64U - 1) * CMSG_SPACE(sizeof(int)))
64 * To work around limitations in 32-bit emulation on 64-bit kernels, use a
65 * machine-independent limit on the number of FDs per message. Each control
78 cmsg->cmsg_level = SOL_SOCKET; in msghdr_add_fd()
79 cmsg->cmsg_type = SCM_RIGHTS; in msghdr_add_fd()
80 cmsg->cmsg_len = CMSG_LEN(sizeof(fd)); in msghdr_add_fd()
114 if (recvmsg(sock, msg, flags) == -1) { in msg_recv()
117 return (-1); in msg_recv()
133 if (sendmsg(sock, msg, 0) == -1) { in msg_send()
136 return (-1); in msg_send()
175 cmsg->cmsg_len = CMSG_LEN(sizeof(struct cmsgcred)); in cred_send()
176 cmsg->cmsg_level = SOL_SOCKET; in cred_send()
177 cmsg->cmsg_type = SCM_CREDS; in cred_send()
179 if (msg_send(sock, &msg) == -1) in cred_send()
180 return (-1); in cred_send()
206 if (msg_recv(sock, &msg) == -1) in cred_recv()
207 return (-1); in cred_recv()
211 cmsg->cmsg_len != CMSG_LEN(sizeof(struct cmsgcred)) || in cred_recv()
212 cmsg->cmsg_level != SOL_SOCKET || cmsg->cmsg_type != SCM_CREDS) { in cred_recv()
214 return (-1); in cred_recv()
250 return (-1); in fd_package_send()
252 ret = -1; in fd_package_send()
256 if (msghdr_add_fd(cmsg, fds[i]) == -1) in fd_package_send()
260 if (msg_send(sock, &msg) == -1) in fd_package_send()
299 return (-1); in fd_package_recv()
301 ret = -1; in fd_package_recv()
303 if (msg_recv(sock, &msg) == -1) in fd_package_recv()
311 if (cmsg->cmsg_level != SOL_SOCKET || in fd_package_recv()
312 cmsg->cmsg_type != SCM_RIGHTS) { in fd_package_recv()
316 n = (cmsg->cmsg_len - CMSG_LEN(0)) / sizeof(int); in fd_package_recv()
346 * close-on-exec flag atomically, but we still want to set it for in fd_package_recv()
365 unsigned int i, step, j; in fd_recv() local
370 return (-1); in fd_recv()
373 ret = i = step = 0; in fd_recv()
375 if (PKG_MAX_SIZE < nfds - i) in fd_recv()
376 step = PKG_MAX_SIZE; in fd_recv()
378 step = nfds - i; in fd_recv()
379 ret = fd_package_recv(sock, fds + i, step); in fd_recv()
388 i += step; in fd_recv()
397 unsigned int i, step; in fd_send() local
402 return (-1); in fd_send()
405 ret = i = step = 0; in fd_send()
407 if (PKG_MAX_SIZE < nfds - i) in fd_send()
408 step = PKG_MAX_SIZE; in fd_send()
410 step = nfds - i; in fd_send()
411 ret = fd_package_send(sock, fds + i, step); in fd_send()
414 i += step; in fd_send()
421 buf_send(int sock, void *buf, size_t size) in buf_send() argument
427 PJDLOG_ASSERT(size > 0); in buf_send()
433 done = send(sock, ptr, size, 0); in buf_send()
434 if (done == -1) { in buf_send()
437 return (-1); in buf_send()
440 return (-1); in buf_send()
442 size -= done; in buf_send()
444 } while (size > 0); in buf_send()
450 buf_recv(int sock, void *buf, size_t size, int flags) in buf_recv() argument
459 while (size > 0) { in buf_recv()
461 done = recv(sock, ptr, size, flags); in buf_recv()
462 if (done == -1) { in buf_recv()
465 return (-1); in buf_recv()
468 return (-1); in buf_recv()
470 size -= done; in buf_recv()