/* ****************************************************************************** * HEADER FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: socket.h,v $ $Revision: 1.13.10.1 $ * $Source: /home/interpeak/CVSRoot/ipxinc/include/sys/socket.h,v $ * $Author: svc-cmnet $ $Date: 2013-03-13 07:45:47 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Lennart Bang ****************************************************************************** */ #ifndef IP_SYS_SOCKET_H #define IP_SYS_SOCKET_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ #include "ipcom_config.h" /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #include "ipcom_sock.h" #include "ipcom_sysctl.h" #include "sys/types.h" #include "limits.h" #include "errno.h" #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 4 DEFINES **************************************************************************** */ /* *=========================================================================== * domain *=========================================================================== */ #define AF_UNSPEC IP_AF_UNSPEC #define AF_INET IP_AF_INET #define AF_NETLINK IP_AF_NETLINK #define AF_ROUTE IP_AF_ROUTE #define AF_LINK IP_AF_LINK #define AF_PACKET IP_AF_PACKET #define AF_INET6 IP_AF_INET6 #define AF_KEY IP_AF_KEY #define AF_IPX IP_AF_IPX #define AF_MAX IP_AF_MAX #define PF_INET IP_PF_INET #define PF_NETLINK IP_PF_NETLINK #define PF_ROUTE IP_PF_ROUTE #define PF_LINK IP_PF_LINK #define PF_PACKET IP_PF_PACKET #define PF_INET6 IP_PF_INET6 #define PF_KEY IP_PF_KEY #define PF_IPX IP_PF_IPX /* *=========================================================================== * Socket types *=========================================================================== */ #define SOCK_STREAM IP_SOCK_STREAM #define SOCK_DGRAM IP_SOCK_DGRAM #define SOCK_RAW IP_SOCK_RAW #define SOCK_PACKET IP_SOCK_PACKET /* *=========================================================================== * setsockopt/getsockopt *=========================================================================== */ #define SOL_SOCKET IP_SOL_SOCKET /***** IP_SOL_SOCKET socket options: *****/ #define SO_REUSEADDR IP_SO_REUSEADDR #define SO_KEEPALIVE IP_SO_KEEPALIVE #define SO_DONTROUTE IP_SO_DONTROUTE #define SO_BROADCAST IP_SO_BROADCAST #define SO_USELOOPBACK IP_SO_USELOOPBACK #define SO_REUSEPORT IP_SO_REUSEPORT #define SO_SNDBUF IP_SO_SNDBUF #define SO_RCVBUF IP_SO_RCVBUF #define SO_RCVTIMEO IP_SO_RCVTIMEO #define SO_ERROR IP_SO_ERROR #define SO_TYPE IP_SO_TYPE #define SO_BINDTODEVICE IP_SO_BINDTODEVICE #define SO_PASSCRED 16 /* UNSUPPORTED */ #define SO_BSDCOMPAT 0xffffffff /* UNSUPPORTED */ #define SO_VR IP_SO_X_VR /* *=========================================================================== * sysctl *=========================================================================== * Networking sysctl's */ #define NET_RT_DUMP IP_NET_RT_DUMP #define NET_RT_FLAGS IP_NET_RT_FLAGS #define NET_RT_IFLIST IP_NET_RT_IFLIST /* *=========================================================================== * msghdr *=========================================================================== */ #define msghdr Ip_msghdr /* msg_flags values */ #define MSG_TRUNC IP_MSG_TRUNC #define MSG_CTRUNC IP_MSG_CTRUNC #define MSG_DONTWAIT IP_MSG_DONTWAIT #define MSG_WAITALL IP_MSG_WAITALL #define MSG_OOB 0x80 /* unsupported */ /* *=========================================================================== * cmsghdr *=========================================================================== */ #define cmsghdr Ip_cmsghdr #define CMSG_ALIGN(len) IP_CMSG_ALIGN(len) #define CMSG_FIRSTHDR(mhdrptr) IP_CMSG_FIRSTHDR(mhdrptr) #define CMSG_NXTHDR(mhdr,cmsg) IP_CMSG_NXTHDR(mhdr,cmsg) #define CMSG_DATA(cmsgptr) IP_CMSG_DATA(cmsgptr) #define CMSG_SPACE(len) IP_CMSG_SPACE(len) #define CMSG_LEN(len) IP_CMSG_LEN(len) /* *=========================================================================== * recvxx() argument flags *=========================================================================== */ #define MSG_DONTWAIT IP_MSG_DONTWAIT #define MSG_PEEK IP_MSG_PEEK #define MSG_DONTROUTE IP_MSG_DONTROUTE #define MSG_NOTIFICATION IP_MSG_NOTIFICATION /* *=========================================================================== * shutdown() argument flags *=========================================================================== */ #define SHUT_RD IP_SHUT_RD #define SHUT_WR IP_SHUT_WR #define SHUT_RDWR IP_SHUT_RDWR /* *=========================================================================== * UNSUPPORTED *=========================================================================== */ #define SCM_CREDENTIALS 0x02 /* **************************************************************************** * 5 TYPES **************************************************************************** */ /* *=========================================================================== * sockaddr *=========================================================================== */ #define sockaddr Ip_sockaddr #define sockaddr_storage Ip_sockaddr_storage /* *=========================================================================== * if_nameindex *=========================================================================== */ typedef struct if_nameindex Ip_if_nameindex; /* *=========================================================================== * _T TYPES *=========================================================================== */ #define sa_family_t Ip_sa_family_t #define socklen_t Ip_socklen_t /* *=========================================================================== * in_pktinfo *=========================================================================== */ #define in_pktinfo Ip_in_pktinfo /* *=========================================================================== * UNSUPPORTED *=========================================================================== */ struct ucred { Ip_u32 pid; Ip_u32 uid; Ip_u32 gid; }; /* **************************************************************************** * 6 FUNCTIONS **************************************************************************** */ #ifdef IPCOM_USE_NATIVE_SOCK_API #define socket(domain,type,protocol) ipcom_socket_usr(domain,type,protocol) #define shutdown(fd,how) ipcom_shutdown_usr((Ip_fd)fd,how) #define bind(fd,addr,addrlen) ipcom_bind_usr((Ip_fd)fd,(IP_CONST struct Ip_sockaddr *)addr,(Ip_socklen_t)addrlen) #define connect(fd,addr,addrlen) ipcom_connect_usr((Ip_fd)fd,(IP_CONST struct Ip_sockaddr *)addr,(Ip_socklen_t)addrlen) #define accept(fd,addr,addrlenp) ipcom_accept_usr((Ip_fd)fd,(struct Ip_sockaddr *)addr,(Ip_socklen_t *)addrlenp) #define listen(fd,backlog) ipcom_listen_usr((Ip_fd)fd,backlog) #define send(fd,msg,len,flags) ipcom_send_usr((Ip_fd)fd,(IP_CONST void *)(msg),(Ip_size_t)len,flags) #define sendto(fd,msg,len,flags,to,tolen) ipcom_sendto_usr((Ip_fd)fd,(IP_CONST void *)(msg),(Ip_size_t)len,flags,(IP_CONST struct Ip_sockaddr *)to,(Ip_socklen_t)tolen) #define sendmsg(fd,msg,flags) ipcom_sendmsg_usr((Ip_fd)fd,(IP_CONST struct Ip_msghdr *)msg,flags) #define recv(fd,buf,len,flags) ipcom_recv_usr((Ip_fd)fd,(void *)(buf),(Ip_size_t)len,flags) #define recvfrom(fd,buf,len,flags,from,fp) ipcom_recvfrom_usr((Ip_fd)fd,(void *)(buf),(Ip_size_t)len,flags,(struct Ip_sockaddr *)from,(Ip_socklen_t *)fp) #define recvmsg(fd,msg,flags) ipcom_recvmsg_usr((Ip_fd)fd,(struct Ip_msghdr *)msg,flags) #define getsockopt(fd,level,optname,optval,optlenp) ipcom_getsockopt_usr((Ip_fd)fd,level,optname,optval,(Ip_socklen_t *)optlenp) #define setsockopt(fd,level,optname,optval,optlen) ipcom_setsockopt_usr((Ip_fd)fd,level,optname,(IP_CONST void *)optval,(Ip_socklen_t)optlen) #define getsockname(fd,name,namelenp) ipcom_getsockname_usr((Ip_fd)fd,(struct Ip_sockaddr *)name,(Ip_socklen_t *)namelenp) #define getpeername(fd,name,namelenp) ipcom_getpeername_usr((Ip_fd)fd,(struct Ip_sockaddr *)name,(Ip_socklen_t *)namelenp) #define if_nametoindex(ifname) ipcom_if_nametoindex((IP_CONST char *)ifname) #define ifNameToIfIndex(ifname) ipcom_if_nametoindex((IP_CONST char *)ifname) #define if_indextoname(ifindex,ifname) ipcom_if_indextoname((Ip_u32)ifindex, (char *)ifname) #define if_nameindex() ipcom_if_nameindex() #define if_freenameindex(pif) ipcom_if_freenameindex(pif) #else /* IPCOM_USE_NATIVE_SOCK_API */ #define socket(domain,type,protocol) ipcom_socket(domain,type,protocol) #define shutdown(fd,how) ipcom_shutdown((Ip_fd)fd,how) #define bind(fd,addr,addrlen) ipcom_bind((Ip_fd)fd,(IP_CONST struct Ip_sockaddr *)addr,(Ip_socklen_t)addrlen) #define connect(fd,addr,addrlen) ipcom_connect((Ip_fd)fd,(IP_CONST struct Ip_sockaddr *)addr,(Ip_socklen_t)addrlen) #define accept(fd,addr,addrlenp) ipcom_accept((Ip_fd)fd,(struct Ip_sockaddr *)addr,(Ip_socklen_t *)addrlenp) #define listen(fd,backlog) ipcom_listen((Ip_fd)fd,backlog) #define send(fd,msg,len,flags) ipcom_send((Ip_fd)fd,(IP_CONST void *)(msg),(Ip_size_t)len,flags) #define sendto(fd,msg,len,flags,to,tolen) ipcom_sendto((Ip_fd)fd,(IP_CONST void *)(msg),(Ip_size_t)len,flags,(IP_CONST struct Ip_sockaddr *)to,(Ip_socklen_t)tolen) #define sendmsg(fd,msg,flags) ipcom_sendmsg((Ip_fd)fd,(IP_CONST struct Ip_msghdr *)msg,flags) #define recv(fd,buf,len,flags) ipcom_recv((Ip_fd)fd,(void *)(buf),(Ip_size_t)len,flags) #define recvfrom(fd,buf,len,flags,from,fp) ipcom_recvfrom((Ip_fd)fd,(void *)(buf),(Ip_size_t)len,flags,(struct Ip_sockaddr *)from,(Ip_socklen_t *)fp) #define recvmsg(fd,msg,flags) ipcom_recvmsg((Ip_fd)fd,(struct Ip_msghdr *)msg,flags) #define getsockopt(fd,level,optname,optval,optlenp) ipcom_getsockopt((Ip_fd)fd,level,optname,optval,(Ip_socklen_t *)optlenp) #define setsockopt(fd,level,optname,optval,optlen) ipcom_setsockopt((Ip_fd)fd,level,optname,(IP_CONST void *)optval,(Ip_socklen_t)optlen) #define getsockname(fd,name,namelenp) ipcom_getsockname((Ip_fd)fd,(struct Ip_sockaddr *)name,(Ip_socklen_t *)namelenp) #define getpeername ipcom_getpeername #define if_nametoindex(ifname) ipcom_if_nametoindex((IP_CONST char *)ifname) #define ifNameToIfIndex(ifname) ipcom_if_nametoindex((IP_CONST char *)ifname) #define if_indextoname(ifindex,ifname) ipcom_if_indextoname((Ip_u32)ifindex, (char *)ifname) #define if_nameindex() ipcom_if_nameindex() #define if_freenameindex(pif) ipcom_if_freenameindex(pif) #endif /* IPCOM_USE_NATIVE_SOCK_API */ #ifdef NETSNMP_INTERPEAK #ifdef socket #undef socket #endif #define socket(domain,type,protocol) ipnetsnmp_socket(domain,type,protocol) IP_PUBLIC Ip_fd ipnetsnmp_socket(int domain, int type, int protocol); #endif /* #ifdef NETSNMP_INTERPEAK */ #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */