Merge branch 'bugfix/disable_vfs_select' into 'master'
VFS: Optionally disable the VFS implementation of select() See merge request idf/esp-idf!2434
This commit is contained in:
commit
5bb238dd17
3 changed files with 23 additions and 0 deletions
|
@ -37,6 +37,16 @@ config LWIP_MAX_SOCKETS
|
|||
the maximum amount of sockets here. The valid value is from 1
|
||||
to 16.
|
||||
|
||||
config USE_ONLY_LWIP_SELECT
|
||||
bool "Support LWIP socket select() only"
|
||||
default n
|
||||
help
|
||||
The virtual filesystem layer of select() redirects sockets to
|
||||
lwip_select() and non-socket file descriptors to their respective driver
|
||||
implementations. If this option is enabled then all calls of select()
|
||||
will be redirected to lwip_select(), therefore, select can be used
|
||||
for sockets only.
|
||||
|
||||
config LWIP_SO_REUSE
|
||||
bool "Enable SO_REUSEADDR option"
|
||||
default y
|
||||
|
|
|
@ -14,8 +14,17 @@
|
|||
|
||||
#include <sys/select.h>
|
||||
#include "esp_vfs.h"
|
||||
#include "sdkconfig.h"
|
||||
|
||||
#ifdef CONFIG_USE_ONLY_LWIP_SELECT
|
||||
#include "lwip/sockets.h"
|
||||
#endif
|
||||
|
||||
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout)
|
||||
{
|
||||
#ifdef CONFIG_USE_ONLY_LWIP_SELECT
|
||||
return lwip_select(nfds, readfds, writefds, errorfds, timeout);
|
||||
#else
|
||||
return esp_vfs_select(nfds, readfds, writefds, errorfds, timeout);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -93,6 +93,10 @@ Examples demonstrating the use of :cpp:func:`select` with VFS file descriptors
|
|||
are the :example:`peripherals/uart_select` and the :example:`system/select`
|
||||
examples.
|
||||
|
||||
If :cpp:func:`select` is used for socket file descriptors only then one can
|
||||
enable the :ref:`CONFIG_USE_ONLY_LWIP_SELECT` option which can reduce the code
|
||||
size and improve performance.
|
||||
|
||||
Paths
|
||||
-----
|
||||
|
||||
|
|
Loading…
Reference in a new issue