38#ifndef LWIP_HDR_API_MSG_H
39#define LWIP_HDR_API_MSG_H
55#if LWIP_NETCONN || LWIP_SOCKET
59#if LWIP_MPU_COMPATIBLE
60#if LWIP_NETCONN_SEM_PER_THREAD
61#define API_MSG_M_DEF_SEM(m) *m
63#define API_MSG_M_DEF_SEM(m) API_MSG_M_DEF(m)
66#define API_MSG_M_DEF_SEM(m) API_MSG_M_DEF(m)
70#define NETCONN_SHUT_RD 1
71#define NETCONN_SHUT_WR 2
72#define NETCONN_SHUT_RDWR (NETCONN_SHUT_RD | NETCONN_SHUT_WR)
96 API_MSG_M_DEF_C(ip_addr_t, ipaddr);
102 ip_addr_t API_MSG_M_DEF(ipaddr);
103 u16_t API_MSG_M_DEF(port);
109 const struct netvector *vector;
131#if LWIP_SO_SNDTIMEO || LWIP_SO_LINGER
138#if LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD)
141 API_MSG_M_DEF_C(ip_addr_t, multiaddr);
142 API_MSG_M_DEF_C(ip_addr_t, netif_addr);
144 enum netconn_igmp join_or_leave;
147#if TCP_LISTEN_BACKLOG
153#if LWIP_NETCONN_SEM_PER_THREAD
154 sys_sem_t* op_completed_sem;
158#if LWIP_NETCONN_SEM_PER_THREAD
159#define LWIP_API_MSG_SEM(msg) ((msg)->op_completed_sem)
161#define LWIP_API_MSG_SEM(msg) (&(msg)->conn->op_completed)
172#if LWIP_MPU_COMPATIBLE
178 ip_addr_t API_MSG_M_DEF(addr);
179#if LWIP_IPV4 && LWIP_IPV6
185 sys_sem_t API_MSG_M_DEF_SEM(sem);
187 err_t API_MSG_M_DEF(err);
191#if LWIP_NETCONN_FULLDUPLEX
192int lwip_netconn_is_deallocated_msg(
void *msg);
194int lwip_netconn_is_err_msg(
void *msg, err_t *err);
195void lwip_netconn_do_newconn (
void *m);
196void lwip_netconn_do_delconn (
void *m);
197void lwip_netconn_do_bind (
void *m);
198void lwip_netconn_do_bind_if (
void *m);
199void lwip_netconn_do_connect (
void *m);
200void lwip_netconn_do_disconnect (
void *m);
201void lwip_netconn_do_listen (
void *m);
202void lwip_netconn_do_send (
void *m);
203void lwip_netconn_do_recv (
void *m);
204#if TCP_LISTEN_BACKLOG
205void lwip_netconn_do_accepted (
void *m);
207void lwip_netconn_do_write (
void *m);
208void lwip_netconn_do_getaddr (
void *m);
209void lwip_netconn_do_close (
void *m);
210void lwip_netconn_do_shutdown (
void *m);
211#if LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD)
212void lwip_netconn_do_join_leave_group(
void *m);
213void lwip_netconn_do_join_leave_group_netif(
void *m);
217void lwip_netconn_do_gethostbyname(
void *arg);
220struct netconn* netconn_alloc(
enum netconn_type t, netconn_callback callback);
221void netconn_free(
struct netconn *conn);
229#if LWIP_MPU_COMPATIBLE
230#define NETIFAPI_IPADDR_DEF(type, m) type m
232#define NETIFAPI_IPADDR_DEF(type, m) const type * m
235typedef void (*netifapi_void_fn)(
struct netif *
netif);
236typedef err_t (*netifapi_errt_fn)(
struct netif *
netif);
239 struct tcpip_api_call_data call;
253 netifapi_void_fn voidfunc;
254 netifapi_errt_fn errtfunc;
257#if LWIP_MPU_COMPATIBLE
err_t(*) netif_input_fn(struct pbuf *p, struct netif *inp)
err_t(*) netif_init_fn(struct netif *netif)
#define DNS_MAX_NAME_LENGTH
struct ip4_addr ip4_addr_t