Skip to content

Commit d859e3e

Browse files
committed
[DFS] export more symbols for dfs_lwip.
1 parent f4248a9 commit d859e3e

File tree

4 files changed

+91
-72
lines changed

4 files changed

+91
-72
lines changed

components/dfs/filesystems/lwip/lwip_netdb.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ struct hostent *gethostbyname(const char *name)
2929
{
3030
return lwip_gethostbyname(name);
3131
}
32+
RTM_EXPORT(gethostbyname);
3233

3334
int gethostbyname_r(const char *name, struct hostent *ret, char *buf,
3435
size_t buflen, struct hostent **result, int *h_errnop)
@@ -40,6 +41,7 @@ void freeaddrinfo(struct addrinfo *ai)
4041
{
4142
lwip_freeaddrinfo(ai);
4243
}
44+
RTM_EXPORT(freeaddrinfo);
4345

4446
int getaddrinfo(const char *nodename,
4547
const char *servname,
@@ -48,3 +50,4 @@ int getaddrinfo(const char *nodename,
4850
{
4951
return lwip_getaddrinfo(nodename, servname, hints, res);
5052
}
53+
RTM_EXPORT(getaddrinfo);

components/dfs/filesystems/lwip/lwip_select.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,5 +118,6 @@ select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
118118

119119
return result;
120120
}
121+
RTM_EXPORT(select);
121122

122123
#endif

components/dfs/filesystems/lwip/lwip_sockets.c

Lines changed: 85 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -32,154 +32,167 @@
3232

3333
int accept(int s, struct sockaddr *addr, socklen_t *addrlen)
3434
{
35-
int new_client = -1;
35+
int new_client = -1;
3636
int sock = dfs_lwip_getsocket(s);
3737

3838
new_client = lwip_accept(sock, addr, addrlen);
39-
if (new_client != -1)
40-
{
41-
/* this is a new socket, create it in file system fd */
42-
int fd;
43-
struct dfs_fd *d;
44-
45-
/* allocate a fd */
46-
fd = fd_new();
47-
if (fd < 0)
48-
{
49-
rt_set_errno(-DFS_STATUS_ENOMEM);
50-
lwip_close(sock);
51-
52-
printf("no fd yet!\n");
53-
return -1;
54-
}
55-
d = fd_get(fd);
56-
57-
/* this is a socket fd */
58-
d->type = FT_SOCKET;
59-
d->path = RT_NULL;
60-
61-
d->fs = dfs_lwip_get_fs();
62-
63-
d->flags = DFS_O_RDWR; /* set flags as read and write */
64-
d->size = 0;
65-
d->pos = 0;
66-
67-
/* set socket to the data of dfs_fd */
68-
d->data = (void*) new_client;
69-
70-
/* release the ref-count of fd */
71-
fd_put(d);
72-
39+
if (new_client != -1)
40+
{
41+
/* this is a new socket, create it in file system fd */
42+
int fd;
43+
struct dfs_fd *d;
44+
45+
/* allocate a fd */
46+
fd = fd_new();
47+
if (fd < 0)
48+
{
49+
rt_set_errno(-DFS_STATUS_ENOMEM);
50+
lwip_close(sock);
51+
52+
rt_kprintf("no fd yet!\n");
53+
return -1;
54+
}
55+
d = fd_get(fd);
56+
57+
/* this is a socket fd */
58+
d->type = FT_SOCKET;
59+
d->path = RT_NULL;
60+
61+
d->fs = dfs_lwip_get_fs();
62+
63+
d->flags = DFS_O_RDWR; /* set flags as read and write */
64+
d->size = 0;
65+
d->pos = 0;
66+
67+
/* set socket to the data of dfs_fd */
68+
d->data = (void *) new_client;
69+
70+
/* release the ref-count of fd */
71+
fd_put(d);
72+
7373
return fd;
74-
}
74+
}
7575

76-
return new_client;
76+
return new_client;
7777
}
78+
RTM_EXPORT(accept);
7879

7980
int bind(int s, const struct sockaddr *name, socklen_t namelen)
8081
{
8182
int sock = dfs_lwip_getsocket(s);
82-
83+
8384
return lwip_bind(sock, name, namelen);
8485
}
86+
RTM_EXPORT(bind);
8587

8688
int shutdown(int s, int how)
8789
{
8890
int sock;
89-
struct dfs_fd *d;
91+
struct dfs_fd *d;
9092

91-
d = fd_get(s);
92-
if (d == RT_NULL)
93-
{
94-
rt_set_errno(-DFS_STATUS_EBADF);
95-
96-
return -1;
97-
}
93+
d = fd_get(s);
94+
if (d == RT_NULL)
95+
{
96+
rt_set_errno(-DFS_STATUS_EBADF);
9897

99-
sock = dfs_lwip_getsocket(s);
98+
return -1;
99+
}
100+
101+
sock = dfs_lwip_getsocket(s);
100102
if (lwip_shutdown(sock, how) == 0)
101103
{
102-
/* socket has been closed, delete it from file system fd */
103-
fd_put(d);
104-
fd_put(d);
105-
106-
return 0;
104+
/* socket has been closed, delete it from file system fd */
105+
fd_put(d);
106+
fd_put(d);
107+
108+
return 0;
107109
}
108110

109-
return -1;
111+
return -1;
110112
}
113+
RTM_EXPORT(shutdown);
111114

112-
int getpeername (int s, struct sockaddr *name, socklen_t *namelen)
115+
int getpeername(int s, struct sockaddr *name, socklen_t *namelen)
113116
{
114117
int sock = dfs_lwip_getsocket(s);
115118

116119
return lwip_getpeername(sock, name, namelen);
117120
}
121+
RTM_EXPORT(getpeername);
118122

119-
int getsockname (int s, struct sockaddr *name, socklen_t *namelen)
123+
int getsockname(int s, struct sockaddr *name, socklen_t *namelen)
120124
{
121125
int sock = dfs_lwip_getsocket(s);
122-
126+
123127
return lwip_getsockname(sock, name, namelen);
124128
}
129+
RTM_EXPORT(getsockname);
125130

126-
int getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen)
131+
int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen)
127132
{
128133
int sock = dfs_lwip_getsocket(s);
129-
134+
130135
return lwip_getsockopt(sock, level, optname, optval, optlen);
131136
}
137+
RTM_EXPORT(getsockopt);
132138

133-
int setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen)
139+
int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen)
134140
{
135141
int sock = dfs_lwip_getsocket(s);
136-
142+
137143
return lwip_setsockopt(sock, level, optname, optval, optlen);
138144
}
145+
RTM_EXPORT(setsockopt);
139146

140147
int connect(int s, const struct sockaddr *name, socklen_t namelen)
141148
{
142149
int sock = dfs_lwip_getsocket(s);
143-
150+
144151
return lwip_connect(sock, name, namelen);
145152
}
153+
RTM_EXPORT(connect);
146154

147155
int listen(int s, int backlog)
148156
{
149157
int sock = dfs_lwip_getsocket(s);
150-
158+
151159
return lwip_listen(sock, backlog);
152160
}
161+
RTM_EXPORT(listen);
153162

154163
int recv(int s, void *mem, size_t len, int flags)
155164
{
156165
int sock = dfs_lwip_getsocket(s);
157-
166+
158167
return lwip_recv(sock, mem, len, flags);
159168
}
169+
RTM_EXPORT(recv);
160170

161171
int recvfrom(int s, void *mem, size_t len, int flags,
162-
struct sockaddr *from, socklen_t *fromlen)
172+
struct sockaddr *from, socklen_t *fromlen)
163173
{
164174
int sock = dfs_lwip_getsocket(s);
165-
175+
166176
return lwip_recvfrom(sock, mem, len, flags, from, fromlen);
167177
}
178+
RTM_EXPORT(recvfrom);
168179

169180
int send(int s, const void *dataptr, size_t size, int flags)
170181
{
171182
int sock = dfs_lwip_getsocket(s);
172-
183+
173184
return lwip_send(sock, dataptr, size, flags);
174185
}
186+
RTM_EXPORT(send);
175187

176188
int sendto(int s, const void *dataptr, size_t size, int flags,
177-
const struct sockaddr *to, socklen_t tolen)
189+
const struct sockaddr *to, socklen_t tolen)
178190
{
179191
int sock = dfs_lwip_getsocket(s);
180-
192+
181193
return lwip_sendto(sock, dataptr, size, flags, to, tolen);
182194
}
195+
RTM_EXPORT(sendto);
183196

184197
int socket(int domain, int type, int protocol)
185198
{
@@ -207,18 +220,18 @@ int socket(int domain, int type, int protocol)
207220
d->path = RT_NULL;
208221

209222
d->fs = dfs_lwip_get_fs();
210-
223+
211224
d->flags = DFS_O_RDWR; /* set flags as read and write */
212225
d->size = 0;
213226
d->pos = 0;
214-
227+
215228
/* set socket to the data of dfs_fd */
216-
d->data = (void*) sock;
229+
d->data = (void *) sock;
217230
}
218231

219232
/* release the ref-count of fd */
220233
fd_put(d);
221234

222235
return fd;
223236
}
224-
237+
RTM_EXPORT(socket);

components/dfs/filesystems/lwip/sys/socket.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@
2929
extern "C" {
3030
#endif
3131

32+
#include <inttypes.h>
3233
#include <lwip/sockets.h>
3334

3435
typedef uint16_t sa_family_t;
36+
typedef uint16_t in_port_t;
3537

3638
struct sockaddr_storage
3739
{

0 commit comments

Comments
 (0)