VSF Documented
inet.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_ARPA_INET_H__
2#define __VSF_LINUX_ARPA_INET_H__
3
5
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
7# include "../netinet/in.h"
8#else
9# include <netinet/in.h>
10#endif
11
12// for endian APIs
13#include "hal/arch/vsf_arch.h"
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#if VSF_LINUX_SOCKET_CFG_WRAPPER == ENABLED
20#define inet_addr VSF_LINUX_SOCKET_WRAPPER(inet_addr)
21#define inet_lnaof VSF_LINUX_SOCKET_WRAPPER(inet_lnaof)
22#define inet_makeaddr VSF_LINUX_SOCKET_WRAPPER(inet_makeaddr)
23#define inet_netof VSF_LINUX_SOCKET_WRAPPER(inet_netof)
24#define inet_network VSF_LINUX_SOCKET_WRAPPER(inet_network)
25#define inet_aton VSF_LINUX_SOCKET_WRAPPER(inet_aton)
26#define inet_ntoa VSF_LINUX_SOCKET_WRAPPER(inet_ntoa)
27#define inet_pton VSF_LINUX_SOCKET_WRAPPER(inet_pton)
28#define inet_ntop VSF_LINUX_SOCKET_WRAPPER(inet_ntop)
29#endif
30
31#define htonl cpu_to_be32
32#define htons cpu_to_be16
33#define ntohl be32_to_cpu
34#define ntohs be16_to_cpu
35
36#if VSF_LINUX_APPLET_USE_ARPA_INET == ENABLED
39
50# ifndef __VSF_APPLET__
52# endif
53#endif
54
55#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_ARPA_INET_LIB__))\
56 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_ARPA_INET == ENABLED
57
58#ifndef VSF_LINUX_APPLET_ARPA_INET_VPLT
59# if VSF_LINUX_USE_APPLET == ENABLED
60# define VSF_LINUX_APPLET_ARPA_INET_VPLT \
61 ((vsf_linux_arpa_inet_vplt_t *)(VSF_LINUX_APPLET_VPLT->arpa_inet_vplt))
62# else
63# define VSF_LINUX_APPLET_ARPA_INET_VPLT \
64 ((vsf_linux_arpa_inet_vplt_t *)vsf_vplt((void *)0))
65# endif
66#endif
67
68#define VSF_LINUX_APPLET_ARPA_INET_ENTRY(__NAME) \
69 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_ARPA_INET_VPLT, __NAME)
70#define VSF_LINUX_APPLET_ARPA_INET_IMP(...) \
71 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_ARPA_INET_VPLT, __VA_ARGS__)
72
73VSF_LINUX_APPLET_ARPA_INET_IMP(inet_addr, in_addr_t, const char *cp) {
75 return VSF_LINUX_APPLET_ARPA_INET_ENTRY(inet_addr)(cp);
76}
77VSF_LINUX_APPLET_ARPA_INET_IMP(inet_lnaof, in_addr_t, struct in_addr in) {
79 return VSF_LINUX_APPLET_ARPA_INET_ENTRY(inet_lnaof)(in);
80}
81VSF_LINUX_APPLET_ARPA_INET_IMP(inet_makeaddr, struct in_addr, in_addr_t net, in_addr_t lna) {
83 return VSF_LINUX_APPLET_ARPA_INET_ENTRY(inet_makeaddr)(net, lna);
84}
85VSF_LINUX_APPLET_ARPA_INET_IMP(inet_netof, in_addr_t, struct in_addr in) {
87 return VSF_LINUX_APPLET_ARPA_INET_ENTRY(inet_netof)(in);
88}
89VSF_LINUX_APPLET_ARPA_INET_IMP(inet_network, in_addr_t, const char *cp) {
91 return VSF_LINUX_APPLET_ARPA_INET_ENTRY(inet_network)(cp);
92}
93VSF_LINUX_APPLET_ARPA_INET_IMP(inet_aton, int, const char *cp, struct in_addr *addr) {
95 return VSF_LINUX_APPLET_ARPA_INET_ENTRY(inet_aton)(cp, addr);
96}
97VSF_LINUX_APPLET_ARPA_INET_IMP(inet_ntoa, char *, struct in_addr in) {
99 return VSF_LINUX_APPLET_ARPA_INET_ENTRY(inet_ntoa)(in);
100}
101VSF_LINUX_APPLET_ARPA_INET_IMP(inet_pton, int, int af, const char *src, void *dst) {
103 return VSF_LINUX_APPLET_ARPA_INET_ENTRY(inet_pton)(af, src, dst);
104}
105VSF_LINUX_APPLET_ARPA_INET_IMP(inet_ntop, const char *, int af, const void *src, char *dst, socklen_t size) {
107 return VSF_LINUX_APPLET_ARPA_INET_ENTRY(inet_ntop)(af, src, dst, size);
108}
109
110#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_ARPA_INET
111
112in_addr_t inet_addr(const char *cp);
113in_addr_t inet_lnaof(struct in_addr in);
115in_addr_t inet_netof(struct in_addr in);
116in_addr_t inet_network(const char *cp);
117int inet_aton(const char *cp, struct in_addr *addr);
118char * inet_ntoa(struct in_addr in);
119int inet_pton(int af, const char *src, void *dst);
120const char * inet_ntop(int af, const void *src, char *dst, socklen_t size);
121
122#endif // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_ARPA_INET
123
124#ifdef __cplusplus
125}
126#endif
127
128#endif
uint32_t in_addr_t
Definition in.h:20
#define inet_ntop
Definition inet.h:28
#define inet_netof
Definition inet.h:23
#define inet_lnaof
Definition inet.h:21
__VSF_VPLT_DECORATOR__ vsf_linux_arpa_inet_vplt_t vsf_linux_arpa_inet_vplt
Definition vsf_linux_socket.c:822
#define inet_makeaddr
Definition inet.h:22
#define inet_pton
Definition inet.h:27
#define inet_aton
Definition inet.h:25
#define inet_addr
Definition inet.h:20
#define inet_ntoa
Definition inet.h:26
#define inet_network
Definition inet.h:24
uint32_t socklen_t
Definition socket.h:68
Definition in.h:115
Definition inet.h:37
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(inet_aton)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(inet_pton)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(inet_addr)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(inet_ntoa)
vsf_vplt_info_t info
Definition inet.h:38
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(inet_ntop)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(inet_lnaof)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(inet_network)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(inet_netof)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(inet_makeaddr)
Definition vsf_cfg.h:95
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165
uint32_t size
Definition vsf_memfs.h:50