#include <vppinfra/hash.h>
#include <vppinfra/pool.h>
-#include <libvcl-ldpreload/vcom_socket.h>
-#include <libvcl-ldpreload/vcom_socket_wrapper.h>
-#include <libvcl-ldpreload/vcom.h>
+#include <vcl/vcom_socket.h>
+#include <vcl/vcom_socket_wrapper.h>
+#include <vcl/vcom.h>
-#include <uri/vppcom.h>
+#include <vcl/vppcom.h>
/*
if (vsock->type != SOCKET_TYPE_VPPCOM_BOUND)
return -EINVAL;
- if (!__buf || __nbytes < 0)
+ if (!__buf)
{
return -EINVAL;
}
uword *p;
vcom_socket_t *vsock;
ssize_t total = 0, len = 0;
+ int i;
p = hash_get (vsm->sockidx_by_fd, __fd);
if (!p)
return -EINVAL;
/* Sanity check */
- for (int i = 0; i < __iovcnt; ++i)
+ for (i = 0; i < __iovcnt; ++i)
{
if (SSIZE_MAX - len < __iov[i].iov_len)
return -EINVAL;
{
do
{
- for (int i = 0; i < __iovcnt; ++i)
+ for (i = 0; i < __iovcnt; ++i)
{
rv = vppcom_session_read (vsock->sid, __iov[i].iov_base,
__iov[i].iov_len);
}
/* is non blocking */
- for (int i = 0; i < __iovcnt; ++i)
+ for (i = 0; i < __iovcnt; ++i)
{
rv = vppcom_session_read (vsock->sid, __iov[i].iov_base,
__iov[i].iov_len);
uword *p;
vcom_socket_t *vsock;
+ if (!__buf)
+ {
+ return -EINVAL;
+ }
+
p = hash_get (vsm->sockidx_by_fd, __fd);
if (!p)
return -EBADF;
if (vsock->type != SOCKET_TYPE_VPPCOM_BOUND)
return -EINVAL;
- if (!__buf || __n < 0)
- {
- return -EINVAL;
- }
-
rv = vppcom_session_write (vsock->sid, (void *) __buf, __n);
return rv;
}
vcom_socket_main_t *vsm = &vcom_socket_main;
uword *p;
vcom_socket_t *vsock;
+ int i;
p = hash_get (vsm->sockidx_by_fd, __fd);
if (!p)
if (__iov == 0 || __iovcnt == 0 || __iovcnt > IOV_MAX)
return -EINVAL;
- for (int i = 0; i < __iovcnt; ++i)
+ for (i = 0; i < __iovcnt; ++i)
{
rv = vppcom_session_write (vsock->sid, __iov[i].iov_base,
__iov[i].iov_len);
{
return vcom_nsid;
}
- if (vcom_nsid_fds < 0)
- {
- return -EINVAL;
- }
rv = vppcom_select (vcom_nsid_fds,
vcom_readfds ? (unsigned long *) &vcom_rd_sid_fds :
if (!__addr || !__len)
return -EFAULT;
- if (*__len < 0)
- {
- return -EINVAL;
- }
-
vppcom_endpt_t ep;
ep.ip = (u8 *) & ((const struct sockaddr_in *) __addr)->sin_addr;
rv = vcom_session_getsockname (vsock->sid, &ep);
if (!__addr || !__len)
return -EFAULT;
- if (*__len < 0)
- {
- return -EINVAL;
- }
-
vppcom_endpt_t ep;
ep.ip = (u8 *) & ((const struct sockaddr_in *) __addr)->sin_addr;
rv = vcom_session_getpeername (vsock->sid, &ep);
uword *p;
vcom_socket_t *vsock;
+ if (!__buf)
+ {
+ return -EINVAL;
+ }
+
p = hash_get (vsm->sockidx_by_fd, __fd);
if (!p)
return -EBADF;
if (!vsock)
return -ENOTSOCK;
- if ((vsock->type != SOCKET_TYPE_VPPCOM_BOUND) || !__buf || __n < 0)
+ if (vsock->type != SOCKET_TYPE_VPPCOM_BOUND)
{
return -EINVAL;
}
}
else
{
- if (!__addr || __addr_len < 0)
+ if (!__addr)
{
return -EDESTADDRREQ;
}
uword *p;
vcom_socket_t *vsock;
+ if (!__buf || !__addr || !__addr_len)
+ {
+ return -EINVAL;
+ }
+
p = hash_get (vsm->sockidx_by_fd, __fd);
if (!p)
return -EBADF;
if (!vsock)
return -ENOTSOCK;
- if ((vsock->type != SOCKET_TYPE_VPPCOM_BOUND) ||
- !__buf || __n < 0 || !__addr || !__addr_len || (__addr_len < 0))
+ if (vsock->type != SOCKET_TYPE_VPPCOM_BOUND)
{
return -EINVAL;
}
if (!__optval && !__optlen)
return -EFAULT;
- if (*__optlen < 0)
- {
- return -EINVAL;
- }
-
switch (__level)
{
/* handle options at socket level */
case SO_BUSY_POLL:
#endif
case SO_MAX_PACING_RATE:
+#ifdef SO_INCOMING_CPU
case SO_INCOMING_CPU:
+#endif
rv = libc_getsockopt (__fd, __level, __optname, __optval, __optlen);
if (rv != 0)
{
if (!__optval)
return -EFAULT;
- if ((__optlen < 0) || (__optlen < sizeof (int)))
+ if (__optlen < sizeof (int))
return -EINVAL;
switch (__level)
case SO_BUSY_POLL:
#endif
case SO_MAX_PACING_RATE:
+#ifdef SO_INCOMING_CPU
case SO_INCOMING_CPU:
+#endif
rv = libc_setsockopt (__fd, __level, __optname, __optval, __optlen);
if (rv != 0)
{
struct timeval tv = {.tv_sec = 0,.tv_usec = 0 };
/* validate __nfds from select perspective */
- if (__nfds < 0 || __nfds > FD_SETSIZE)
+ if (__nfds > FD_SETSIZE)
{
rv = -EINVAL;
goto poll_done;