mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'feature/asio_update' into 'master'
asio: updated ASIO port to use latest asio and esp-idf features See merge request espressif/esp-idf!6623
This commit is contained in:
commit
a39e8e5de9
@ -1 +1 @@
|
||||
Subproject commit 55efc179b76139c8f9b44bf22a4aba4803f7a7bd
|
||||
Subproject commit 3b66e5b051381fb70de9c2791df70a06181c64e3
|
@ -22,8 +22,12 @@
|
||||
# define ASIO_NO_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_ADDR 1
|
||||
@ -34,12 +38,6 @@
|
||||
# define ASIO_DISABLE_SERIAL_PORT
|
||||
# define ASIO_SEPARATE_COMPILATION
|
||||
# define ASIO_STANDALONE
|
||||
# define ASIO_NO_TYPEID
|
||||
# define ASIO_DISABLE_SIGNAL
|
||||
# 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_
|
||||
|
@ -15,6 +15,7 @@
|
||||
#define _ESP_PLATFORM_NET_IF_H_
|
||||
|
||||
#include "lwip/sockets.h"
|
||||
#include "lwip/if_api.h"
|
||||
|
||||
#define MSG_DONTROUTE 0x4 /* send without using routing tables */
|
||||
#define SOCK_SEQPACKET 5 /* sequenced packet stream */
|
||||
@ -22,8 +23,6 @@
|
||||
#define SOCK_SEQPACKET 5 /* sequenced packet stream */
|
||||
#define SOMAXCONN 128
|
||||
|
||||
#define IF_NAMESIZE 16
|
||||
|
||||
#define IPV6_UNICAST_HOPS 4 /* int; IP6 hops */
|
||||
|
||||
#define NI_MAXHOST 1025
|
||||
|
@ -5,7 +5,7 @@ const static char *TAG = "esp32_asio_pthread";
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@ -14,6 +14,24 @@ int pthread_setcancelstate(int state, int *oldstate)
|
||||
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)
|
||||
{
|
||||
// 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.
|
||||
Internal asio settings for ESP include
|
||||
- EXCEPTIONS: Supported, choice in menuconfig
|
||||
- SIGNAL, SIGACTION: Not supported
|
||||
- EPOLL, EVENTFD: Not supported
|
||||
- TYPEID: Disabled by default, but supported in toolchain and asio (provided stdlib recompiled with -frtti)
|
||||
|
||||
- EXCEPTIONS are enabled in ASIO if enabled in menuconfig
|
||||
- TYPEID is enabled in ASIO if enabled in menuconfig
|
||||
|
||||
Application Example
|
||||
-------------------
|
||||
ESP examples are based on standard asio examples `examples/protocols/asio`:
|
||||
- udp_echo_server
|
||||
- tcp_echo_server
|
||||
- chat_client
|
||||
- chat_server
|
||||
ESP examples are based on standard asio :example:`examples/protocols/asio`:
|
||||
|
||||
- :example:`examples/protocols/asio/udp_echo_server`
|
||||
- :example:`examples/protocols/asio/tcp_echo_server`
|
||||
- :example:`examples/protocols/asio/chat_client`
|
||||
- :example:`examples/protocols/asio/chat_server`
|
||||
|
||||
Please refer to the specific example README.md for details
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user