SimpleLink CC3120/CC3220 Host Driver  Version 2.0.1.15
Simplifies the implementation of Internet connectivity
socket.h
1 /*
2  * Copyright (C) 2016 Texas Instruments Incorporated
3  *
4  * All rights reserved. Property of Texas Instruments Incorporated.
5  * Restricted rights to use, duplicate or disclose this code are
6  * granted through contract.
7  *
8  * The program may not be used without the written permission of
9  * Texas Instruments Incorporated or against the terms and conditions
10  * stipulated in the agreement under which this program has been supplied,
11  * and under no circumstances can it be used with non-TI connectivity device.
12  *
13  */
14 
15 
16 /*****************************************************************************/
17 /* Include files */
18 /*****************************************************************************/
19 #include <ti/drivers/net/wifi/simplelink.h>
20 #include <ti/drivers/net/wifi/source/driver.h>
21 
22 #ifndef __SOCKET_H__
23 #define __SOCKET_H__
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #if defined(ti_sysbios_posix_sys_types__include) || defined(os_freertos_posix_sys_types__include) || defined(__GNUC__)
30 /* This condition is temporary until a single header guard would be applied to core SDK */
31 #else
32 typedef long int ssize_t;
33 #endif
34 
46 /* BSD API */
47 #undef FD_SETSIZE
48 #define FD_SETSIZE SL_FD_SETSIZE
49 #define SOCK_STREAM SL_SOCK_STREAM
50 #define SOCK_DGRAM SL_SOCK_DGRAM
51 #define SOCK_RAW SL_SOCK_RAW
52 #define IPPROTO_TCP SL_IPPROTO_TCP
53 #define IPPROTO_UDP SL_IPPROTO_UDP
54 #define IPPROTO_RAW SL_IPPROTO_RAW
55 #define AF_INET SL_AF_INET
56 #define AF_INET6 SL_AF_INET6
57 #define AF_RF SL_AF_RF
58 #define AF_PACKET SL_AF_PACKET
59 #define PF_INET SL_PF_INET
60 #define PF_INET6 SL_PF_INET6
61 #define INADDR_ANY SL_INADDR_ANY
62 #define IN6ADDR_ANY SL_IN6ADDR_ANY
63 #define SOL_SOCKET SL_SOL_SOCKET
64 #define IPPROTO_IP SL_IPPROTO_IP
65 #define SO_KEEPALIVE SL_SO_KEEPALIVE
66 #define SO_KEEPALIVETIME SL_SO_KEEPALIVETIME
67 #define SO_RX_NO_IP_BOUNDARY SL_SO_RX_NO_IP_BOUNDARY
68 #define SO_RCVTIMEO SL_SO_RCVTIMEO
69 #define SO_RCVBUF SL_SO_RCVBUF
70 #define SO_NONBLOCKING SL_SO_NONBLOCKING
71 #define IP_MULTICAST_IF SL_IP_MULTICAST_IF
72 #define IP_MULTICAST_TTL SL_IP_MULTICAST_TTL
73 #define IP_ADD_MEMBERSHIP SL_IP_ADD_MEMBERSHIP
74 #define IP_DROP_MEMBERSHIP SL_IP_DROP_MEMBERSHIP
75 #define IPV6_ADD_MEMBERSHIP SL_IPV6_ADD_MEMBERSHIP
76 #define IPV6_DROP_MEMBERSHIP SL_IPV6_DROP_MEMBERSHIP
77 #define IPV6_MULTICAST_HOPS SL_IPV6_MULTICAST_HOPS
78 #define socklen_t SlSocklen_t
79 #define timeval SlTimeval_t
80 #define sockaddr SlSockAddr_t
81 #define in6_addr SlIn6Addr_t
82 #define sockaddr_in6 SlSockAddrIn6_t
83 #define in_addr SlInAddr_t
84 #define sockaddr_in SlSockAddrIn_t
85 #define MSG_DONTWAIT SL_MSG_DONTWAIT
86 #undef FD_SET
87 #define FD_SET SL_SOCKET_FD_SET
88 #undef FD_CLR
89 #define FD_CLR SL_SOCKET_FD_CLR
90 #undef FD_ISSET
91 #define FD_ISSET SL_SOCKET_FD_ISSET
92 #undef FD_ZERO
93 #define FD_ZERO SL_SOCKET_FD_ZERO
94 #undef fd_set
95 #define fd_set SlFdSet_t
96 #define write sl_Write
97 #define htonl sl_Htonl
98 #define ntohl sl_Ntohl
99 #define htons sl_Htons
100 #define ntohs sl_Ntohs
101 
102 /*****************************************************************************/
103 /* Function prototypes */
104 /*****************************************************************************/
147 #if _SL_INCLUDE_FUNC(sl_Socket)
148 int socket(int Domain, int Type, int Protocol);
149 #endif
150 
165 #if _SL_INCLUDE_FUNC(sl_Close)
166 static inline int close(int sd)
167 {
168  int RetVal = (int)sl_Close((_i16)sd);
169  return _SlDrvSetErrno(RetVal);
170 }
171 #endif
172 
223 #if _SL_INCLUDE_FUNC(sl_Accept)
224 int accept(int sd, sockaddr *addr, socklen_t *addrlen);
225 #endif
226 
253 #if _SL_INCLUDE_FUNC(sl_Bind)
254 int bind(int sd, const sockaddr *addr, socklen_t addrlen);
255 #endif
256 
277 #if _SL_INCLUDE_FUNC(sl_Listen)
278 int listen(int sd, int backlog);
279 #endif
280 
319 #if _SL_INCLUDE_FUNC(sl_Connect)
320 int connect(int sd, const sockaddr *addr, socklen_t addrlen);
321 #endif
322 
376 #if _SL_INCLUDE_FUNC(sl_Select)
377 int select(int nfds, fd_set *readsds, fd_set *writesds, fd_set *exceptsds, struct timeval *timeout);
378 #endif
379 
464 #if _SL_INCLUDE_FUNC(sl_SetSockOpt)
465 int setsockopt(int sd, int level, int optname, const void *optval, socklen_t optlen);
466 #endif
467 
468 
507 #if _SL_INCLUDE_FUNC(sl_GetSockOpt)
508 int getsockopt(int sd, int level, int optname, void *optval, socklen_t *optlen);
509 #endif
510 
564 #if _SL_INCLUDE_FUNC(sl_Recv)
565 ssize_t recv(int sd, void *pBuf, size_t Len, int flags);
566 #endif
567 
625 #if _SL_INCLUDE_FUNC(sl_RecvFrom)
626 ssize_t recvfrom(int sd, void *buf, _i16 Len, _i16 flags, sockaddr *from, socklen_t *fromlen);
627 #endif
628 
670 #if _SL_INCLUDE_FUNC(sl_Send )
671 ssize_t send(int sd, const void *pBuf, _i16 Len, _i16 flags);
672 #endif
673 
723 #if _SL_INCLUDE_FUNC(sl_SendTo)
724 ssize_t sendto(int sd, const void *pBuf, size_t Len, int flags, const sockaddr *to, socklen_t tolen);
725 #endif
726 
727 
757 #ifdef SL_INC_INTERNAL_ERRNO
758 #ifdef errno
759 #undef errno
760 #endif
761 #define errno *(__errno())
762 #endif
763 
771 #ifdef __cplusplus
772 }
773 #endif /* __cplusplus */
774 #endif /* __SOCKET_H__ */
ssize_t send(int sd, const void *pBuf, _i16 Len, _i16 flags)
Write data to TCP socket.
Definition: socket.c:68
int select(int nfds, fd_set *readsds, fd_set *writesds, fd_set *exceptsds, struct timeval *timeout)
Monitor socket activity.
Definition: socket.c:134
int accept(int sd, sockaddr *addr, socklen_t *addrlen)
Accept a connection on a socket.
Definition: socket.c:90
int bind(int sd, const sockaddr *addr, socklen_t addrlen)
Assign a name to a socket.
Definition: socket.c:23
ssize_t sendto(int sd, const void *pBuf, size_t Len, int flags, const sockaddr *to, socklen_t tolen)
Write data to socket.
Definition: socket.c:35
int socket(int Domain, int Type, int Protocol)
Create an endpoint for communication.
Definition: socket.c:11
_i16 sl_Close(_i16 sd)
Gracefully close socket.
Definition: sl_socket.c:162
ssize_t recvfrom(int sd, void *buf, _i16 Len, _i16 flags, sockaddr *from, socklen_t *fromlen)
Read data from socket.
Definition: socket.c:46
int getsockopt(int sd, int level, int optname, void *optval, socklen_t *optlen)
Get socket options.
Definition: socket.c:123
int connect(int sd, const sockaddr *addr, socklen_t addrlen)
Initiate a connection on a socket.
Definition: socket.c:57
int listen(int sd, int backlog)
Listen for connections on a socket.
Definition: socket.c:79
ssize_t recv(int sd, void *pBuf, size_t Len, int flags)
Read data from TCP socket.
Definition: socket.c:101
int setsockopt(int sd, int level, int optname, const void *optval, socklen_t optlen)
Set socket options-.
Definition: socket.c:112