socket.h 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2015-02-17 Bernard First version
  9. * 2018-05-17 ChenYong Add socket abstraction layer
  10. */
  11. #ifndef SYS_SOCKET_H_
  12. #define SYS_SOCKET_H_
  13. #include <rtthread.h>
  14. #include <sal_socket.h>
  15. #ifdef SAL_USING_TLS
  16. #include <sal_tls.h>
  17. #endif
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. #ifdef SAL_USING_POSIX
  22. int accept(int s, struct sockaddr *addr, socklen_t *addrlen);
  23. int bind(int s, const struct sockaddr *name, socklen_t namelen);
  24. int shutdown(int s, int how);
  25. int getpeername(int s, struct sockaddr *name, socklen_t *namelen);
  26. int getsockname(int s, struct sockaddr *name, socklen_t *namelen);
  27. int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen);
  28. int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen);
  29. int connect(int s, const struct sockaddr *name, socklen_t namelen);
  30. int listen(int s, int backlog);
  31. int recv(int s, void *mem, size_t len, int flags);
  32. int recvfrom(int s, void *mem, size_t len, int flags,
  33. struct sockaddr *from, socklen_t *fromlen);
  34. int send(int s, const void *dataptr, size_t size, int flags);
  35. int sendto(int s, const void *dataptr, size_t size, int flags,
  36. const struct sockaddr *to, socklen_t tolen);
  37. int socket(int domain, int type, int protocol);
  38. int closesocket(int s);
  39. int ioctlsocket(int s, long cmd, void *arg);
  40. #else
  41. #define accept(s, addr, addrlen) sal_accept(s, addr, addrlen)
  42. #define bind(s, name, namelen) sal_bind(s, name, namelen)
  43. #define shutdown(s, how) sal_shutdown(s, how)
  44. #define getpeername(s, name, namelen) sal_getpeername(s, name, namelen)
  45. #define getsockname(s, name, namelen) sal_getsockname(s, name, namelen)
  46. #define getsockopt(s, level, optname, optval, optlen) sal_getsockopt(s, level, optname, optval, optlen)
  47. #define setsockopt(s, level, optname, optval, optlen) sal_setsockopt(s, level, optname, optval, optlen)
  48. #define connect(s, name, namelen) sal_connect(s, name, namelen)
  49. #define listen(s, backlog) sal_listen(s, backlog)
  50. #define recv(s, mem, len, flags) sal_recvfrom(s, mem, len, flags, NULL, NULL)
  51. #define recvfrom(s, mem, len, flags, from, fromlen) sal_recvfrom(s, mem, len, flags, from, fromlen)
  52. #define send(s, dataptr, size, flags) sal_sendto(s, dataptr, size, flags, NULL, NULL)
  53. #define sendto(s, dataptr, size, flags, to, tolen) sal_sendto(s, dataptr, size, flags, to, tolen)
  54. #define socket(domain, type, protocol) sal_socket(domain, type, protocol)
  55. #define closesocket(s) sal_closesocket(s)
  56. #define ioctlsocket(s, cmd, arg) sal_ioctlsocket(s, cmd, arg)
  57. #endif /* SAL_USING_POSIX */
  58. #ifdef __cplusplus
  59. }
  60. #endif
  61. #endif /* _SYS_SOCKET_H_ */