diff options
| author | Man, Jianting (Meco) <[email protected]> | 2022-02-19 11:07:45 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-02-20 00:07:45 +0800 |
| commit | 6895da53071358cdd4da8f15f32c977dfedfbe89 (patch) | |
| tree | c65401f29a630222c0928487415b1d0346b0488b /components/net/sal/include | |
| parent | 5a61304a09bb2341565407d8fdc0a14f03c50aa3 (diff) | |
[net] adjust folder structure (#5587)
* [net] adjust folder structure
- 将lwip相关的文件夹,移入lwip文件夹
- Kconfig 分散到at netdev lwip sal文件夹中,使用menuconfig代替menu
Diffstat (limited to 'components/net/sal/include')
| -rw-r--r-- | components/net/sal/include/dfs_net/dfs_net.h | 29 | ||||
| -rw-r--r-- | components/net/sal/include/sal.h | 114 | ||||
| -rw-r--r-- | components/net/sal/include/sal_netdb.h | 86 | ||||
| -rw-r--r-- | components/net/sal/include/sal_socket.h | 218 | ||||
| -rw-r--r-- | components/net/sal/include/sal_tls.h | 68 | ||||
| -rw-r--r-- | components/net/sal/include/socket/netdb.h | 36 | ||||
| -rw-r--r-- | components/net/sal/include/socket/netinet/in.h | 20 | ||||
| -rw-r--r-- | components/net/sal/include/socket/netinet/tcp.h | 16 | ||||
| -rw-r--r-- | components/net/sal/include/socket/netinet/udp.h | 16 | ||||
| -rw-r--r-- | components/net/sal/include/socket/sys_socket/sys/socket.h | 67 |
10 files changed, 670 insertions, 0 deletions
diff --git a/components/net/sal/include/dfs_net/dfs_net.h b/components/net/sal/include/dfs_net/dfs_net.h new file mode 100644 index 0000000000..82b7526603 --- /dev/null +++ b/components/net/sal/include/dfs_net/dfs_net.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2015-02-17 Bernard First version + * 2016-05-05 Bernard rename dfs_lwip to dfs_net. + */ + +#ifndef DFS_NET_H__ +#define DFS_NET_H__ + +#include <dfs_file.h> + +#ifdef __cplusplus +extern "C" { +#endif + +const struct dfs_file_ops* dfs_net_get_fops(void); +int dfs_net_getsocket(int fd); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/components/net/sal/include/sal.h b/components/net/sal/include/sal.h new file mode 100644 index 0000000000..dd250e37b6 --- /dev/null +++ b/components/net/sal/include/sal.h @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-05-17 ChenYong First version + */ + +#ifndef SAL_H__ +#define SAL_H__ + +#include <rtdevice.h> + +#ifdef SAL_USING_POSIX +#include <dfs_file.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(socklen_t) && !defined(SOCKLEN_T_DEFINED) +typedef uint32_t socklen_t; +#endif + +/* SAL socket magic word */ +#define SAL_SOCKET_MAGIC 0x5A10 + +/* The maximum number of sockets structure */ +#ifndef SAL_SOCKETS_NUM +#define SAL_SOCKETS_NUM DFS_FD_MAX +#endif + +/* The maximum number of protocol families */ +#ifndef SAL_PROTO_FAMILIES_NUM +#define SAL_PROTO_FAMILIES_NUM 4 +#endif + +/* SAL socket offset */ +#ifndef SAL_SOCKET_OFFSET +#define SAL_SOCKET_OFFSET 0 +#endif + +struct sal_socket +{ + uint32_t magic; /* SAL socket magic word */ + + int socket; /* SAL socket descriptor */ + int domain; + int type; + int protocol; + + struct netdev *netdev; /* SAL network interface device */ + + void *user_data; /* user-specific data */ +#ifdef SAL_USING_TLS + void *user_data_tls; /* user-specific TLS data */ +#endif +}; + +/* network interface socket opreations */ +struct sal_socket_ops +{ + int (*socket) (int domain, int type, int protocol); + int (*closesocket)(int s); + int (*bind) (int s, const struct sockaddr *name, socklen_t namelen); + int (*listen) (int s, int backlog); + int (*connect) (int s, const struct sockaddr *name, socklen_t namelen); + int (*accept) (int s, struct sockaddr *addr, socklen_t *addrlen); + int (*sendto) (int s, const void *data, size_t size, int flags, const struct sockaddr *to, socklen_t tolen); + int (*recvfrom) (int s, void *mem, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); + int (*getsockopt) (int s, int level, int optname, void *optval, socklen_t *optlen); + int (*setsockopt) (int s, int level, int optname, const void *optval, socklen_t optlen); + int (*shutdown) (int s, int how); + int (*getpeername)(int s, struct sockaddr *name, socklen_t *namelen); + int (*getsockname)(int s, struct sockaddr *name, socklen_t *namelen); + int (*ioctlsocket)(int s, long cmd, void *arg); +#ifdef SAL_USING_POSIX + int (*poll) (struct dfs_fd *file, struct rt_pollreq *req); +#endif +}; + +/* sal network database name resolving */ +struct sal_netdb_ops +{ + struct hostent* (*gethostbyname) (const char *name); + int (*gethostbyname_r)(const char *name, struct hostent *ret, char *buf, size_t buflen, struct hostent **result, int *h_errnop); + int (*getaddrinfo) (const char *nodename, const char *servname, const struct addrinfo *hints, struct addrinfo **res); + void (*freeaddrinfo) (struct addrinfo *ai); +}; + +struct sal_proto_family +{ + int family; /* primary protocol families type */ + int sec_family; /* secondary protocol families type */ + const struct sal_socket_ops *skt_ops; /* socket opreations */ + const struct sal_netdb_ops *netdb_ops; /* network database opreations */ +}; + +/* SAL(Socket Abstraction Layer) initialize */ +int sal_init(void); +/* Get SAL socket object by socket descriptor */ +struct sal_socket *sal_get_socket(int sock); + +/* check SAL socket netweork interface device internet status */ +int sal_check_netdev_internet_up(struct netdev *netdev); + +#ifdef __cplusplus +} +#endif + +#endif /* SAL_H__ */ diff --git a/components/net/sal/include/sal_netdb.h b/components/net/sal/include/sal_netdb.h new file mode 100644 index 0000000000..9b1421270f --- /dev/null +++ b/components/net/sal/include/sal_netdb.h @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-05-24 ChenYong First version + */ +#ifndef SAL_NETDB_H__ +#define SAL_NETDB_H__ + +#include <stddef.h> +#include "sal_socket.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define EAI_NONAME 200 +#define EAI_SERVICE 201 +#define EAI_FAIL 202 +#define EAI_MEMORY 203 +#define EAI_FAMILY 204 + +#define HOST_NOT_FOUND 210 +#define NO_DATA 211 +#define NO_RECOVERY 212 +#define TRY_AGAIN 213 + +#define AI_PASSIVE 0x01 +#define AI_CANONNAME 0x02 +#define AI_NUMERICHOST 0x04 +#define AI_NUMERICSERV 0x08 +#define AI_V4MAPPED 0x10 +#define AI_ALL 0x20 +#define AI_ADDRCONFIG 0x40 + +/* input flags for structure addrinfo */ +#define AI_PASSIVE 0x01 +#define AI_CANONNAME 0x02 +#define AI_NUMERICHOST 0x04 +#define AI_NUMERICSERV 0x08 +#define AI_V4MAPPED 0x10 +#define AI_ALL 0x20 +#define AI_ADDRCONFIG 0x40 + +#define DNS_MAX_NAME_LENGTH 256 + +struct hostent { + char *h_name; /* Official name of the host. */ + char **h_aliases; /* A pointer to an array of pointers to alternative host names, + terminated by a null pointer. */ + int h_addrtype; /* Address type. */ + int h_length; /* The length, in bytes, of the address. */ + char **h_addr_list; /* A pointer to an array of pointers to network addresses (in + network byte order) for the host, terminated by a null pointer. */ +#define h_addr h_addr_list[0] /* for backward compatibility */ +}; + +struct addrinfo { + int ai_flags; /* Input flags. */ + int ai_family; /* Address family of socket. */ + int ai_socktype; /* Socket type. */ + int ai_protocol; /* Protocol of socket. */ + socklen_t ai_addrlen; /* Length of socket address. */ + struct sockaddr *ai_addr; /* Socket address of socket. */ + char *ai_canonname; /* Canonical name of service location. */ + struct addrinfo *ai_next; /* Pointer to next in list. */ +}; + +struct hostent *sal_gethostbyname(const char *name); + +int sal_gethostbyname_r(const char *name, struct hostent *ret, char *buf, + size_t buflen, struct hostent **result, int *h_errnop); +void sal_freeaddrinfo(struct addrinfo *ai); +int sal_getaddrinfo(const char *nodename, + const char *servname, + const struct addrinfo *hints, + struct addrinfo **res); + +#ifdef __cplusplus +} +#endif + +#endif /* SAL_NETDB_H__ */ diff --git a/components/net/sal/include/sal_socket.h b/components/net/sal/include/sal_socket.h new file mode 100644 index 0000000000..c479d21c62 --- /dev/null +++ b/components/net/sal/include/sal_socket.h @@ -0,0 +1,218 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-05-24 ChenYong First version + */ + +#ifndef SAL_SOCKET_H__ +#define SAL_SOCKET_H__ + +#include <stddef.h> +#include <arpa/inet.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(socklen_t) && !defined(SOCKLEN_T_DEFINED) +typedef uint32_t socklen_t; +#endif + +#if !defined(sa_family_t) && !defined(SA_FAMILY_T_DEFINED) +typedef uint8_t sa_family_t; +#endif + +/* If your port already typedef's in_port_t, define IN_PORT_T_DEFINED + to prevent this code from redefining it. */ +#if !defined(in_port_t) && !defined(IN_PORT_T_DEFINED) +typedef uint16_t in_port_t; +#endif + +/* Socket protocol types (TCP/UDP/RAW) */ +#define SOCK_STREAM 1 +#define SOCK_DGRAM 2 +#define SOCK_RAW 3 + +#define SOCK_MAX (SOCK_RAW + 1) + +/* Option flags per-socket. These must match the SOF_ flags in ip.h (checked in init.c) */ +#define SO_REUSEADDR 0x0004 /* Allow local address reuse */ +#define SO_KEEPALIVE 0x0008 /* keep connections alive */ +#define SO_BROADCAST 0x0020 /* permit to send and to receive broadcast messages (see IP_SOF_BROADCAST option) */ + +/* Additional options, not kept in so_options */ +#define SO_DEBUG 0x0001 /* Unimplemented: turn on debugging info recording */ +#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */ +#define SO_DONTROUTE 0x0010 /* Unimplemented: just use interface addresses */ +#define SO_USELOOPBACK 0x0040 /* Unimplemented: bypass hardware when possible */ +#define SO_LINGER 0x0080 /* linger on close if data present */ +#define SO_DONTLINGER ((int)(~SO_LINGER)) +#define SO_OOBINLINE 0x0100 /* Unimplemented: leave received OOB data in line */ +#define SO_REUSEPORT 0x0200 /* Unimplemented: allow local address & port reuse */ +#define SO_SNDBUF 0x1001 /* Unimplemented: send buffer size */ +#define SO_RCVBUF 0x1002 /* receive buffer size */ +#define SO_SNDLOWAT 0x1003 /* Unimplemented: send low-water mark */ +#define SO_RCVLOWAT 0x1004 /* Unimplemented: receive low-water mark */ +#define SO_SNDTIMEO 0x1005 /* send timeout */ +#define SO_RCVTIMEO 0x1006 /* receive timeout */ +#define SO_ERROR 0x1007 /* get error status and clear */ +#define SO_TYPE 0x1008 /* get socket type */ +#define SO_CONTIMEO 0x1009 /* Unimplemented: connect timeout */ +#define SO_NO_CHECK 0x100a /* don't create UDP checksum */ + +/* Level number for (get/set)sockopt() to apply to socket itself */ +#define SOL_SOCKET 0xfff /* options for socket level */ + +#define AF_UNSPEC 0 +#define AF_INET 2 +#define AF_INET6 10 +#define AF_CAN 29 /* Controller Area Network */ +#define AF_AT 45 /* AT socket */ +#define AF_WIZ 46 /* WIZnet socket */ +#define PF_INET AF_INET +#define PF_INET6 AF_INET6 +#define PF_UNSPEC AF_UNSPEC +#define PF_CAN AF_CAN +#define PF_AT AF_AT +#define PF_WIZ AF_WIZ + +#define AF_MAX (AF_WIZ + 1) /* For now.. */ + +#define IPPROTO_IP 0 +#define IPPROTO_ICMP 1 +#define IPPROTO_TCP 6 +#define IPPROTO_UDP 17 +#define IPPROTO_IPV6 41 +#define IPPROTO_ICMPV6 58 +#define IPPROTO_UDPLITE 136 +#define IPPROTO_RAW 255 + +/* Flags we can use with send and recv */ +#define MSG_PEEK 0x01 /* Peeks at an incoming message */ +#define MSG_WAITALL 0x02 /* Unimplemented: Requests that the function block until the full amount of data requested can be returned */ +#define MSG_OOB 0x04 /* Unimplemented: Requests out-of-band data. The significance and semantics of out-of-band data are protocol-specific */ +#define MSG_DONTWAIT 0x08 /* Nonblocking i/o for this operation only */ +#define MSG_MORE 0x10 /* Sender will send more */ + +/* Options for level IPPROTO_IP */ +#define IP_TOS 1 +#define IP_TTL 2 + +/* Options for level IPPROTO_TCP */ +#define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */ +#define TCP_KEEPALIVE 0x02 /* send KEEPALIVE probes when idle for pcb->keep_idle milliseconds */ +#define TCP_KEEPIDLE 0x03 /* set pcb->keep_idle - Same as TCP_KEEPALIVE, but use seconds for get/setsockopt */ +#define TCP_KEEPINTVL 0x04 /* set pcb->keep_intvl - Use seconds for get/setsockopt */ +#define TCP_KEEPCNT 0x05 /* set pcb->keep_cnt - Use number of probes sent for get/setsockopt */ + +/* Options and types related to multicast membership */ +#define IP_ADD_MEMBERSHIP 3 +#define IP_DROP_MEMBERSHIP 4 +/* Options and types for UDP multicast traffic handling */ +#define IP_MULTICAST_TTL 5 +#define IP_MULTICAST_IF 6 +#define IP_MULTICAST_LOOP 7 + +typedef struct ip_mreq +{ + struct in_addr imr_multiaddr; /* IP multicast address of group */ + struct in_addr imr_interface; /* local IP address of interface */ +} ip_mreq; + +/* The Type of Service provides an indication of the abstract parameters of the quality of service desired */ +#define IPTOS_TOS_MASK 0x1E +#define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK) +#define IPTOS_LOWDELAY 0x10 +#define IPTOS_THROUGHPUT 0x08 +#define IPTOS_RELIABILITY 0x04 +#define IPTOS_LOWCOST 0x02 +#define IPTOS_MINCOST IPTOS_LOWCOST + +/* The Network Control precedence designation is intended to be used within a network only */ +#define IPTOS_PREC_MASK 0xe0 +#define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK) +#define IPTOS_PREC_NETCONTROL 0xe0 +#define IPTOS_PREC_INTERNETCONTROL 0xc0 +#define IPTOS_PREC_CRITIC_ECP 0xa0 +#define IPTOS_PREC_FLASHOVERRIDE 0x80 +#define IPTOS_PREC_FLASH 0x60 +#define IPTOS_PREC_IMMEDIATE 0x40 +#define IPTOS_PREC_PRIORITY 0x20 +#define IPTOS_PREC_ROUTINE 0x00 + +/* Options for shatdown type */ +#ifndef SHUT_RD + #define SHUT_RD 0 + #define SHUT_WR 1 + #define SHUT_RDWR 2 +#endif + +struct sockaddr +{ + uint8_t sa_len; + sa_family_t sa_family; + char sa_data[14]; +}; + +#if NETDEV_IPV4 +/* members are in network byte order */ +struct sockaddr_in +{ + uint8_t sin_len; + sa_family_t sin_family; + in_port_t sin_port; + struct in_addr sin_addr; +#define SIN_ZERO_LEN 8 + char sin_zero[SIN_ZERO_LEN]; +}; +#endif /* NETDEV_IPV4 */ + +#if NETDEV_IPV6 +struct sockaddr_in6 +{ + uint8_t sin6_len; /* length of this structure */ + sa_family_t sin6_family; /* AF_INET6 */ + in_port_t sin6_port; /* Transport layer port # */ + uint32_t sin6_flowinfo; /* IPv6 flow information */ + struct in6_addr sin6_addr; /* IPv6 address */ + uint32_t sin6_scope_id; /* Set of interfaces for scope */ +}; +#endif /* NETDEV_IPV6 */ + +struct sockaddr_storage +{ + uint8_t s2_len; + sa_family_t ss_family; + char s2_data1[2]; + uint32_t s2_data2[3]; +#if NETDEV_IPV6 + uint32_t s2_data3[3]; +#endif /* NETDEV_IPV6 */ +}; + +int sal_accept(int socket, struct sockaddr *addr, socklen_t *addrlen); +int sal_bind(int socket, const struct sockaddr *name, socklen_t namelen); +int sal_shutdown(int socket, int how); +int sal_getpeername (int socket, struct sockaddr *name, socklen_t *namelen); +int sal_getsockname (int socket, struct sockaddr *name, socklen_t *namelen); +int sal_getsockopt (int socket, int level, int optname, void *optval, socklen_t *optlen); +int sal_setsockopt (int socket, int level, int optname, const void *optval, socklen_t optlen); +int sal_connect(int socket, const struct sockaddr *name, socklen_t namelen); +int sal_listen(int socket, int backlog); +int sal_recvfrom(int socket, void *mem, size_t len, int flags, + struct sockaddr *from, socklen_t *fromlen); +int sal_sendto(int socket, const void *dataptr, size_t size, int flags, + const struct sockaddr *to, socklen_t tolen); +int sal_socket(int domain, int type, int protocol); +int sal_closesocket(int socket); +int sal_ioctlsocket(int socket, long cmd, void *arg); + +#ifdef __cplusplus +} +#endif + +#endif /* SAL_SOCKET_H__ */ diff --git a/components/net/sal/include/sal_tls.h b/components/net/sal/include/sal_tls.h new file mode 100644 index 0000000000..f211a3c1f8 --- /dev/null +++ b/components/net/sal/include/sal_tls.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-10 ChenYong First version + */ +#ifndef __SAL_TLS_H__ +#define __SAL_TLS_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <rtthread.h> + +/* Protocol level for TLS. + * Here, the same socket protocol level for TLS as in Linux was used. + */ +#define SOL_TLS 282 + +/* Socket options for TLS */ + +/* Socket option to select TLS credentials to use. */ +#define TLS_CRET_LIST 1 +/* Socket option to set select ciphersuites to use. */ +#define TLS_CIPHERSUITE_LIST 2 +/* Socket option to set peer verification level for TLS connection. */ +#define TLS_PEER_VERIFY 3 +/* Socket option to set role for DTLS connection. */ +#define TLS_DTLS_ROLE 4 + +/* Protocol numbers for TLS protocols */ +#define PROTOCOL_TLS 256 +#define PROTOCOL_DTLS 257 + + +struct sal_proto_tls_ops +{ + int (*init)(void); + void* (*socket)(int socket); + int (*connect)(void *sock); + int (*send)(void *sock, const void *data, size_t size); + int (*recv)(void *sock, void *mem, size_t len); + int (*closesocket)(void *sock); + + int (*set_cret_list)(void *sock, const void *cert, size_t size); /* Set TLS credentials */ + int (*set_ciphersurite)(void *sock, const void* ciphersurite, size_t size); /* Set select ciphersuites */ + int (*set_peer_verify)(void *sock, const void* peer_verify, size_t size); /* Set peer verification */ + int (*set_dtls_role)(void *sock, const void *dtls_role, size_t size); /* Set role for DTLS */ +}; + +struct sal_proto_tls +{ + char name[RT_NAME_MAX]; /* TLS protocol name */ + const struct sal_proto_tls_ops *ops; /* SAL TLS protocol options */ +}; + +/* SAL TLS protocol register */ +int sal_proto_tls_register(const struct sal_proto_tls *pt); + +#ifdef __cplusplus +} +#endif + +#endif /* __SAL_TLS_H__ */ diff --git a/components/net/sal/include/socket/netdb.h b/components/net/sal/include/socket/netdb.h new file mode 100644 index 0000000000..8394fddea5 --- /dev/null +++ b/components/net/sal/include/socket/netdb.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2015-02-17 Bernard First version + * 2018-05-24 ChenYong Add socket abstraction layer + */ + +#ifndef NETDB_H__ +#define NETDB_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stddef.h> +#include <sal_netdb.h> + +struct hostent *gethostbyname(const char *name); + +int gethostbyname_r(const char *name, struct hostent *ret, char *buf, + size_t buflen, struct hostent **result, int *h_errnop); +void freeaddrinfo(struct addrinfo *ai); +int getaddrinfo(const char *nodename, + const char *servname, + const struct addrinfo *hints, + struct addrinfo **res); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/components/net/sal/include/socket/netinet/in.h b/components/net/sal/include/socket/netinet/in.h new file mode 100644 index 0000000000..37240547b4 --- /dev/null +++ b/components/net/sal/include/socket/netinet/in.h @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2015-02-17 Bernard First version + */ + +#ifndef IN_H__ +#define IN_H__ + +#include <sys/socket.h> + +#ifndef IN6_IS_ADDR_MULTICAST +#define IN6_IS_ADDR_MULTICAST(a) (((uint8_t *) (a))[0] == 0xff) +#endif + +#endif diff --git a/components/net/sal/include/socket/netinet/tcp.h b/components/net/sal/include/socket/netinet/tcp.h new file mode 100644 index 0000000000..a3b530186a --- /dev/null +++ b/components/net/sal/include/socket/netinet/tcp.h @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2015-02-17 Bernard First version + */ + +#ifndef TCP_H__ +#define TCP_H__ + +#include <sys/socket.h> + +#endif diff --git a/components/net/sal/include/socket/netinet/udp.h b/components/net/sal/include/socket/netinet/udp.h new file mode 100644 index 0000000000..21f50d55e5 --- /dev/null +++ b/components/net/sal/include/socket/netinet/udp.h @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2015-02-17 Bernard First version + */ + +#ifndef UDP_H__ +#define UDP_H__ + +#include <sys/socket.h> + +#endif diff --git a/components/net/sal/include/socket/sys_socket/sys/socket.h b/components/net/sal/include/socket/sys_socket/sys/socket.h new file mode 100644 index 0000000000..a86240e2ff --- /dev/null +++ b/components/net/sal/include/socket/sys_socket/sys/socket.h @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2015-02-17 Bernard First version + * 2018-05-17 ChenYong Add socket abstraction layer + */ + +#ifndef SYS_SOCKET_H_ +#define SYS_SOCKET_H_ + +#include <rtthread.h> +#include <sal_socket.h> +#ifdef SAL_USING_TLS +#include <sal_tls.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef SAL_USING_POSIX +int accept(int s, struct sockaddr *addr, socklen_t *addrlen); +int bind(int s, const struct sockaddr *name, socklen_t namelen); +int shutdown(int s, int how); +int getpeername(int s, struct sockaddr *name, socklen_t *namelen); +int getsockname(int s, struct sockaddr *name, socklen_t *namelen); +int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen); +int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen); +int connect(int s, const struct sockaddr *name, socklen_t namelen); +int listen(int s, int backlog); +int recv(int s, void *mem, size_t len, int flags); +int recvfrom(int s, void *mem, size_t len, int flags, + struct sockaddr *from, socklen_t *fromlen); +int send(int s, const void *dataptr, size_t size, int flags); +int sendto(int s, const void *dataptr, size_t size, int flags, + const struct sockaddr *to, socklen_t tolen); +int socket(int domain, int type, int protocol); +int closesocket(int s); +int ioctlsocket(int s, long cmd, void *arg); +#else +#define accept(s, addr, addrlen) sal_accept(s, addr, addrlen) +#define bind(s, name, namelen) sal_bind(s, name, namelen) +#define shutdown(s, how) sal_shutdown(s, how) +#define getpeername(s, name, namelen) sal_getpeername(s, name, namelen) +#define getsockname(s, name, namelen) sal_getsockname(s, name, namelen) +#define getsockopt(s, level, optname, optval, optlen) sal_getsockopt(s, level, optname, optval, optlen) +#define setsockopt(s, level, optname, optval, optlen) sal_setsockopt(s, level, optname, optval, optlen) +#define connect(s, name, namelen) sal_connect(s, name, namelen) +#define listen(s, backlog) sal_listen(s, backlog) +#define recv(s, mem, len, flags) sal_recvfrom(s, mem, len, flags, NULL, NULL) +#define recvfrom(s, mem, len, flags, from, fromlen) sal_recvfrom(s, mem, len, flags, from, fromlen) +#define send(s, dataptr, size, flags) sal_sendto(s, dataptr, size, flags, NULL, NULL) +#define sendto(s, dataptr, size, flags, to, tolen) sal_sendto(s, dataptr, size, flags, to, tolen) +#define socket(domain, type, protocol) sal_socket(domain, type, protocol) +#define closesocket(s) sal_closesocket(s) +#define ioctlsocket(s, cmd, arg) sal_ioctlsocket(s, cmd, arg) +#endif /* SAL_USING_POSIX */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_SOCKET_H_ */ |
