mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
asio: updated ASIO port to use latest asio and esp-idf features
closes https://github.com/espressif/esp-idf/issues/4296
This commit is contained in:
parent
1fd7f21d8c
commit
13d603e486
@ -1 +1 @@
|
|||||||
Subproject commit 55efc179b76139c8f9b44bf22a4aba4803f7a7bd
|
Subproject commit 3b66e5b051381fb70de9c2791df70a06181c64e3
|
@ -22,8 +22,12 @@
|
|||||||
# define ASIO_NO_EXCEPTIONS
|
# define ASIO_NO_EXCEPTIONS
|
||||||
# endif // CONFIG_COMPILER_CXX_EXCEPTIONS
|
# endif // CONFIG_COMPILER_CXX_EXCEPTIONS
|
||||||
|
|
||||||
|
# ifndef CONFIG_COMPILER_RTTI
|
||||||
|
# define ASIO_NO_TYPEID
|
||||||
|
# endif // CONFIG_COMPILER_RTTI
|
||||||
|
|
||||||
//
|
//
|
||||||
// LWIP compatifility inet and address macros/functions
|
// LWIP compatibility inet and address macros/functions
|
||||||
//
|
//
|
||||||
# define LWIP_COMPAT_SOCKET_INET 1
|
# define LWIP_COMPAT_SOCKET_INET 1
|
||||||
# define LWIP_COMPAT_SOCKET_ADDR 1
|
# define LWIP_COMPAT_SOCKET_ADDR 1
|
||||||
@ -34,12 +38,6 @@
|
|||||||
# define ASIO_DISABLE_SERIAL_PORT
|
# define ASIO_DISABLE_SERIAL_PORT
|
||||||
# define ASIO_SEPARATE_COMPILATION
|
# define ASIO_SEPARATE_COMPILATION
|
||||||
# define ASIO_STANDALONE
|
# define ASIO_STANDALONE
|
||||||
# define ASIO_NO_TYPEID
|
|
||||||
# define ASIO_DISABLE_SIGNAL
|
|
||||||
# define ASIO_HAS_PTHREADS
|
# define ASIO_HAS_PTHREADS
|
||||||
# define ASIO_DISABLE_EPOLL
|
|
||||||
# define ASIO_DISABLE_EVENTFD
|
|
||||||
# define ASIO_DISABLE_SIGNAL
|
|
||||||
# define ASIO_DISABLE_SIGACTION
|
|
||||||
|
|
||||||
#endif // _ESP_ASIO_CONFIG_H_
|
#endif // _ESP_ASIO_CONFIG_H_
|
||||||
|
@ -5,7 +5,7 @@ const static char *TAG = "esp32_asio_pthread";
|
|||||||
|
|
||||||
int pthread_condattr_setclock(pthread_condattr_t *attr, clockid_t clock_id)
|
int pthread_condattr_setclock(pthread_condattr_t *attr, clockid_t clock_id)
|
||||||
{
|
{
|
||||||
ESP_LOGW(TAG, "%s: not yet supported!", __FUNCTION__);
|
ESP_LOGW(TAG, "%s: not yet supported!", __func__);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -14,6 +14,24 @@ int pthread_setcancelstate(int state, int *oldstate)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This functions (pthread_sigmask(), sigfillset) are called from ASIO::signal_blocker to temporarily silence signals
|
||||||
|
// Since signals are not yet supported in ESP pthread these functions serve as no-ops
|
||||||
|
//
|
||||||
|
int pthread_sigmask(int how, const sigset_t *restrict set, sigset_t *restrict oset)
|
||||||
|
{
|
||||||
|
ESP_LOGD(TAG, "%s: Signals not supported in ESP pthread", __func__);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int sigfillset(sigset_t *what)
|
||||||
|
{
|
||||||
|
ESP_LOGD(TAG, "%s: Signals not supported in ESP pthread", __func__);
|
||||||
|
if (what != NULL) {
|
||||||
|
*what = ~0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void newlib_include_pthread_impl(void)
|
void newlib_include_pthread_impl(void)
|
||||||
{
|
{
|
||||||
// Linker hook, exists for no other purpose
|
// Linker hook, exists for no other purpose
|
||||||
|
@ -15,18 +15,17 @@ Supported features
|
|||||||
^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^
|
||||||
ESP platform port currently supports only network asynchronous socket operations; does not support serial port and ssl.
|
ESP platform port currently supports only network asynchronous socket operations; does not support serial port and ssl.
|
||||||
Internal asio settings for ESP include
|
Internal asio settings for ESP include
|
||||||
- EXCEPTIONS: Supported, choice in menuconfig
|
|
||||||
- SIGNAL, SIGACTION: Not supported
|
- EXCEPTIONS are enabled in ASIO if enabled in menuconfig
|
||||||
- EPOLL, EVENTFD: Not supported
|
- TYPEID is enabled in ASIO if enabled in menuconfig
|
||||||
- TYPEID: Disabled by default, but supported in toolchain and asio (provided stdlib recompiled with -frtti)
|
|
||||||
|
|
||||||
Application Example
|
Application Example
|
||||||
-------------------
|
-------------------
|
||||||
ESP examples are based on standard asio examples `examples/protocols/asio`:
|
ESP examples are based on standard asio :example:`examples/protocols/asio`:
|
||||||
- udp_echo_server
|
|
||||||
- tcp_echo_server
|
- :example:`examples/protocols/asio/udp_echo_server`
|
||||||
- chat_client
|
- :example:`examples/protocols/asio/tcp_echo_server`
|
||||||
- chat_server
|
- :example:`examples/protocols/asio/chat_client`
|
||||||
|
- :example:`examples/protocols/asio/chat_server`
|
||||||
|
|
||||||
Please refer to the specific example README.md for details
|
Please refer to the specific example README.md for details
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user