39 #ifndef _SOCKET_NDK_H_ 40 #define _SOCKET_NDK_H_ 46 #ifndef NDK_NOUSERAPIS 57 #define NDK_htons(a) (a) 58 #define NDK_htonl(a) (a) 59 #define NDK_ntohl(a) (a) 60 #define NDK_ntohs(a) (a) 62 #define NDK_htons(a) ( (((a)>>8)&0xffU) + (((a)<<8)&0xff00U) ) 77 #define NDK_htonl(a) ((((a) & 0xff000000) >> 24) | (((a) & 0x00ff0000) >> 8) | \ 78 (((a) & 0x0000ff00) << 8) | (((a) & 0x000000ff) << 24) ) 79 #define NDK_ntohl(a) NDK_htonl(a) 80 #define NDK_ntohs(a) NDK_htons(a) 92 #define NDK_FD_SETSIZE 16 94 #define _SYS_SELECT_H 1 // TODO: still needed for struct timeval conflict 102 extern void mmCopy(
void* pDst,
void* pSrc, uint32_t Size );
104 #define NDK_FD_SET(n, p) {if((p)->count<NDK_FD_SETSIZE){(p)->fd[(p)->count++]=(n);}} 106 #define NDK_FD_CLR(n, p) fdsetRemoveEntry( (p), (n) ) 108 #define NDK_FD_ISSET(n, p) fdsetTestEntry( (p), (n) ) 110 #define NDK_FD_COPY(f, t) mmCopy((t), (f), sizeof(NDK_fd_set)) 112 #define NDK_FD_ZERO(p) ((p)->count=0) 122 #define SOCK_STREAM 1 125 #define SOCK_STREAMNC 4 126 #define SOCK_RAWETH 5 130 #define IPPROTO_ICMP 1 131 #define IPPROTO_IGMP 2 132 #define IPPROTO_TCP 6 133 #define IPPROTO_UDP 17 134 #define IPPROTO_IPV6 41 135 #define IPPROTO_ICMPV6 58 138 #define SO_DEBUG 0x0001 139 #define SO_ACCEPTCONN 0x0002 140 #define SO_REUSEADDR 0x0004 141 #define SO_KEEPALIVE 0x0008 142 #define SO_DONTROUTE 0x0010 143 #define SO_BROADCAST 0x0020 144 #define SO_USELOOPBACK 0x0040 145 #define SO_LINGER 0x0080 146 #define SO_OOBINLINE 0x0100 147 #define SO_REUSEPORT 0x0200 148 #define SO_TIMESTAMP 0x0400 151 #define SO_SNDBUF 0x1001 152 #define SO_RCVBUF 0x1002 153 #define SO_SNDLOWAT 0x1003 154 #define SO_RCVLOWAT 0x1004 155 #define SO_SNDTIMEO 0x1005 156 #define SO_RCVTIMEO 0x1006 157 #define SO_ERROR 0x1007 158 #define SO_TYPE 0x1008 159 #define SO_PRIVSTATE 0x1009 160 #define SO_IFDEVICE 0x100a 161 #define SO_BLOCKING 0x100b 162 #define SO_TXTIMESTAMP 0x100c 165 #define SO_PRIORITY 0x100d 167 #define SOL_SOCKET 0xFFFF 182 #define IP_ADD_MEMBERSHIP 5 183 #define IP_DROP_MEMBERSHIP 6 186 #define NDK_TCP_NODELAY 0x01 187 #define NDK_TCP_MAXSEG 0x02 188 #define NDK_TCP_NOPUSH 0x04 189 #define NDK_TCP_NOOPT 0x08 190 #define NDK_TCP_SACKPERMITTED 0x10 191 #define NDK_TCP_MAXRTT 0x20 194 #define MSG_OOB 0x0001 195 #define MSG_PEEK 0x0002 196 #define MSG_WAITALL 0x0004 197 #define MSG_DONTWAIT 0x0008 198 #define MSG_DONTROUTE 0x0010 199 #define MSG_NOSIGNAL 0x0020 229 #define IPV6_UCAST_DEF_HOP_LIMIT 64 230 #define IPV6_MCAST_DEF_HOP_LIMIT 1 233 #define IPV6_UNICAST_HOPS 1 234 #define IPV6_MULTICAST_IF 2 235 #define IPV6_MULTICAST_HOPS 3 236 #define IPV6_MULTICAST_LOOP 4 237 #define IPV6_JOIN_GROUP 5 238 #define IPV6_LEAVE_GROUP 6 239 #define IPV6_V6ONLY 7 246 unsigned char u6_addr8[16];
247 uint16_t u6_addr16[8];
248 uint32_t u6_addr32[4];
250 #define s6_addr in6_u.u6_addr8 251 #define s6_addr16 in6_u.u6_addr16 252 #define s6_addr32 in6_u.u6_addr32 288 #define INVALID_SOCKET (void *)(-1L) 289 #define SOCKET_ERROR -1 293 #ifndef NDK_NOUSERAPIS 303 NDK_fd_set *exceptfds,
struct timeval *timeout );
306 extern int fdStatus( SOCKET s,
int request,
int *results );
307 #define FDSTATUS_TYPE 0 308 #define FDSTATUS_TYPE_SOCKET 1 309 #define FDSTATUS_TYPE_PIPE 2 310 #define FDSTATUS_RECV 1 311 #define FDSTATUS_SEND 2 314 #define POLLINFTIM -1 318 #define POLLNVAL 0x08 326 extern int NDK_getsockopt( SOCKET s,
int level,
int op,
void *pbuf,
int *pbufsize );
327 extern int NDK_listen( SOCKET s,
int maxcon );
328 extern int NDK_recv( SOCKET s,
void *pbuf,
int size,
int flags );
329 extern int NDK_recvfrom( SOCKET s,
void *pbuf,
int size,
int flags,
struct sockaddr *pName,
int *plen );
330 extern int NDK_recvnc( SOCKET s,
void **ppbuf,
int flags,
void **pHandle );
332 struct sockaddr *pName,
int *plen,
void **pHandle );
334 extern int NDK_send( SOCKET s,
void *pbuf,
int size,
int flags );
335 extern int NDK_sendto( SOCKET s,
void *pbuf,
int size,
int flags,
struct sockaddr *pName,
int len );
336 extern int NDK_setsockopt( SOCKET s,
int level,
int op,
void *pbuf,
int bufsize );
338 extern SOCKET
NDK_socket(
int domain,
int type,
int protocol );
340 extern int NDK_getsendncbuff(SOCKET s, uint32_t bufSize,
void** phBuf,
void **phPkt);
341 extern int NDK_sendnc( SOCKET s,
void *pbuf,
int size,
void *hPkt,
int flags );
346 extern int NDK_pipe(
void **pfd1,
void **pfd2 );
349 #define CREATE_SKT_CTX_HOOK 0 350 #define CLOSE_SKT_CTX_HOOK 1 351 #define NETSTART_ERROR_HOOK 2 361 #define NDK_NO_CTX -1 int error
Definition: socketndk.h:354
int NDK_recv(SOCKET s, void *pbuf, int size, int flags)
int NDK_sendto(SOCKET s, void *pbuf, int size, int flags, struct sockaddr *pName, int len)
void NDK_recvncfree(SOCKET Handle)
int NDK_getsendncbuff(SOCKET s, uint32_t bufSize, void **phBuf, void **phPkt)
int fdStatus(SOCKET s, int request, int *results)
int NDK_setsockopt(SOCKET s, int level, int op, void *pbuf, int bufsize)
int l_onoff
Definition: socketndk.h:171
void * fd
Definition: socketndk.h:282
SOCKET NDK_accept(SOCKET s, struct sockaddr *pName, int *plen)
uint32_t sin6_flowinfo
Definition: socketndk.h:267
void fdCloseSession(void *hTask)
int NDK_shutdown(SOCKET s, int how)
struct _NetStartError NetStartError_Obj
Definition: socketndk.h:222
void fdSelectAbort(void *hTask)
int fdSelect(int width, NDK_fd_set *readfds, NDK_fd_set *writefds, NDK_fd_set *exceptfds, struct timeval *timeout)
Definition: socketndk.h:215
int NDK_listen(SOCKET s, int maxcon)
int NDK_getsockname(SOCKET s, struct sockaddr *pName, int *plen)
int NDK_pipe(void **pfd1, void **pfd2)
uint32_t ipv6mr_interface
Definition: socketndk.h:260
uint32_t count
Definition: socketndk.h:96
uint16_t sa_family
Definition: socketndk.h:203
SOCKET NDK_socket(int domain, int type, int protocol)
int NDK_sendnc(SOCKET s, void *pbuf, int size, void *hPkt, int flags)
int NDK_getsockopt(SOCKET s, int level, int op, void *pbuf, int *pbufsize)
uint16_t eventsRequested
Definition: socketndk.h:283
uint32_t sin6_scope_id
Definition: socketndk.h:269
uint32_t fdsetTestEntry(NDK_fd_set *pSet, void *hEntry)
int fdPoll(FDPOLLITEM items[], uint32_t itemcnt, int32_t timeout)
void NDK_sendncfree(SOCKET Handle)
uint16_t eventsDetected
Definition: socketndk.h:284
struct _fdpollitem FDPOLLITEM
int NDK_getpeername(SOCKET s, struct sockaddr *pName, int *plen)
struct NDK_fd_set NDK_fd_set
Definition: socketndk.h:243
void * SOCKET
Definition: socketndk.h:84
int NDK_connect(SOCKET s, struct sockaddr *pName, int len)
Definition: socketndk.h:202
uint16_t sin_family
Definition: socketndk.h:223
int fdOpenSession(void *hTask)
Definition: socketndk.h:209
uint16_t sin_port
Definition: socketndk.h:224
void mmCopy(void *pDst, void *pSrc, uint32_t Size)
Definition: socketndk.h:170
Definition: socketndk.h:95
void * fd[16]
Definition: socketndk.h:97
Definition: socketndk.h:353
uint32_t s_addr
Definition: socketndk.h:210
void(* TimestampFxn)(unsigned char *pIpHdr)
Definition: socketndk.h:366
int(* NDK_HookFxn)(uintptr_t)
Definition: socketndk.h:357
Definition: socketndk.h:257
int NDK_recvnc(SOCKET s, void **ppbuf, int flags, void **pHandle)
uint16_t sin6_family
Definition: socketndk.h:265
int NDK_send(SOCKET s, void *pbuf, int size, int flags)
void fdsetRemoveEntry(NDK_fd_set *pSet, void *hEntry)
int l_linger
Definition: socketndk.h:172
Definition: socketndk.h:264
#define NDK_FD_SETSIZE
Definition: socketndk.h:92
int NDK_recvfrom(SOCKET s, void *pbuf, int size, int flags, struct sockaddr *pName, int *plen)
uint16_t sin6_port
Definition: socketndk.h:266
int NDK_bind(SOCKET s, struct sockaddr *pName, int len)
void NDK_registerHook(int type, NDK_HookFxn fxn)
int NDK_getSockCtx(SOCKET s)
int NDK_recvncfrom(SOCKET s, void **ppbuf, int flags, struct sockaddr *pName, int *plen, void **pHandle)
Definition: socketndk.h:281