diff options
author | 2017-10-24 04:12:18 -0400 | |
---|---|---|
committer | 2017-10-24 18:25:31 +0000 | |
commit | 5c7cf1cc5358d137160be1619981e7eea9a7402f (patch) | |
tree | e981f6fc831e9c4e240e765d506ac8d58be43123 /extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.h | |
parent | 4c151b5fa13312639b0a5ef0d0efb1866bf4ed5e (diff) |
VCL-LDPRELOAD: statically link vppcom into libvcl-ldpreload.so
- Move VCL & VCL-LDPRELOAD source into src/vcl
- Statically link vppcom into libvcl-ldpreload.so
Change-Id: I778300b37e8b06640d9dbc01caf297edf7a6edb7
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Diffstat (limited to 'extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.h')
-rw-r--r-- | extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.h | 235 |
1 files changed, 0 insertions, 235 deletions
diff --git a/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.h b/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.h deleted file mode 100644 index 9e85ecf2b6c..00000000000 --- a/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.h +++ /dev/null @@ -1,235 +0,0 @@ -/* - * Copyright (c) 2017 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Copyright (c) 2005-2008 Jelmer Vernooij <jelmer@samba.org> - * Copyright (C) 2006-2014 Stefan Metzmacher <metze@samba.org> - * Copyright (C) 2013-2014 Andreas Schneider <asn@samba.org> - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * 3. Neither the name of the author nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ - -/* - Socket wrapper library. Passes all socket communication over - unix domain sockets if the environment variable SOCKET_WRAPPER_DIR - is set. -*/ - -#ifndef included_vcom_socket_wrapper_h -#define included_vcom_socket_wrapper_h - -#include <sys/types.h> -#include <sys/socket.h> -#include <sys/ioctl.h> -#include <sys/select.h> -#include <sys/epoll.h> -#include <poll.h> -#include <sys/uio.h> -#include <stdlib.h> - - -/* GCC have printf type attribute check. */ -#ifdef HAVE_FUNCTION_ATTRIBUTE_FORMAT -#define PRINTF_ATTRIBUTE(a,b) __attribute__ ((__format__ (__printf__, a, b))) -#else -#define PRINTF_ATTRIBUTE(a,b) -#endif /* HAVE_FUNCTION_ATTRIBUTE_FORMAT */ - -#define HAVE_CONSTRUCTOR_ATTRIBUTE -#ifdef HAVE_CONSTRUCTOR_ATTRIBUTE -#define CONSTRUCTOR_ATTRIBUTE __attribute__ ((constructor)) -#else -#define CONSTRUCTOR_ATTRIBUTE -#endif /* HAVE_CONSTRUCTOR_ATTRIBUTE */ - -#define HAVE_DESTRUCTOR_ATTRIBUTE -#ifdef HAVE_DESTRUCTOR_ATTRIBUTE -#define DESTRUCTOR_ATTRIBUTE __attribute__ ((destructor)) -#else -#define DESTRUCTOR_ATTRIBUTE -#endif - -#define HAVE_ADDRESS_SANITIZER_ATTRIBUTE -#ifdef HAVE_ADDRESS_SANITIZER_ATTRIBUTE -#define DO_NOT_SANITIZE_ADDRESS_ATTRIBUTE __attribute__((no_sanitize_address)) -#else -#define DO_NOT_SANITIZE_ADDRESS_ATTRIBUTE -#endif - -/* - * IMPORTANT - * - * Functions especially from libc need to be loaded individually, you can't load - * all at once or gdb will segfault at startup. The same applies to valgrind and - * has probably something todo with with the linker. - * So we need load each function at the point it is called the first time. - */ -#ifdef HAVE_ACCEPT4 -int -libc_accept4 (int sockfd, - struct sockaddr *addr, socklen_t * addrlen, int flags); -#else /* HAVE_ACCEPT4 */ -int libc_accept (int sockfd, struct sockaddr *addr, socklen_t * addrlen); -#endif /* HAVE_ACCEPT4 */ - -int libc_bind (int sockfd, const struct sockaddr *addr, socklen_t addrlen); - -int libc_close (int fd); - -int libc_connect (int sockfd, const struct sockaddr *addr, socklen_t addrlen); - -#if 0 -/* TBD: dup and dup2 to be implemented later */ -int libc_dup (int fd); - -int libc_dup2 (int oldfd, int newfd); -#endif - -#ifdef HAVE_EVENTFD -int libc_eventfd (int count, int flags); -#endif - -DO_NOT_SANITIZE_ADDRESS_ATTRIBUTE int -libc_vfcntl (int fd, int cmd, va_list ap); - -DO_NOT_SANITIZE_ADDRESS_ATTRIBUTE int -libc_vioctl (int fd, int cmd, va_list ap); - -int libc_getpeername (int sockfd, struct sockaddr *addr, socklen_t * addrlen); - -int libc_getsockname (int sockfd, struct sockaddr *addr, socklen_t * addrlen); - -int -libc_getsockopt (int sockfd, - int level, int optname, void *optval, socklen_t * optlen); - -int libc_listen (int sockfd, int backlog); - -int libc_read (int fd, void *buf, size_t count); - -ssize_t libc_readv (int fd, const struct iovec *iov, int iovcnt); - -int libc_recv (int sockfd, void *buf, size_t len, int flags); - -int -libc_recvfrom (int sockfd, - void *buf, - size_t len, - int flags, struct sockaddr *src_addr, socklen_t * addrlen); - -int libc_recvmsg (int sockfd, struct msghdr *msg, int flags); - -int libc_send (int sockfd, const void *buf, size_t len, int flags); - -int libc_sendmsg (int sockfd, const struct msghdr *msg, int flags); - -int -libc_sendto (int sockfd, - const void *buf, - size_t len, - int flags, const struct sockaddr *dst_addr, socklen_t addrlen); - -int -libc_setsockopt (int sockfd, - int level, int optname, const void *optval, - socklen_t optlen); - -int libc_socket (int domain, int type, int protocol); - -int libc_socketpair (int domain, int type, int protocol, int sv[2]); - -ssize_t libc_write (int fd, const void *buf, size_t count); - -ssize_t libc_writev (int fd, const struct iovec *iov, int iovcnt); - -int libc_shutdown (int fd, int how); - -int -libc_select (int __nfds, fd_set * __restrict __readfds, - fd_set * __restrict __writefds, - fd_set * __restrict __exceptfds, - struct timeval *__restrict __timeout); - -#ifdef __USE_XOPEN2K -int -libc_pselect (int __nfds, fd_set * __restrict __readfds, - fd_set * __restrict __writefds, - fd_set * __restrict __exceptfds, - const struct timespec *__restrict __timeout, - const __sigset_t * __restrict __sigmask); -#endif - -int libc_epoll_create (int __size); - -int libc_epoll_create1 (int __flags); - -int libc_epoll_ctl (int __epfd, int __op, int __fd, - struct epoll_event *__event); - -int libc_epoll_wait (int __epfd, struct epoll_event *__events, - int __maxevents, int __timeout); - -int libc_epoll_pwait (int __epfd, struct epoll_event *__events, - int __maxevents, int __timeout, - const __sigset_t * __ss); - -int libc_poll (struct pollfd *__fds, nfds_t __nfds, int __timeout); - -#ifdef __USE_GNU -int libc_ppoll (struct pollfd *__fds, nfds_t __nfds, - const struct timespec *__timeout, const __sigset_t * __ss); -#endif - -void swrap_constructor (void); - -void swrap_destructor (void); - -#endif /* included_vcom_socket_wrapper_h */ - -/* - * fd.io coding-style-patch-verification: ON - * - * Local Variables: - * eval: (c-set-style "gnu") - * End: - */ |