Go to the documentation of this file.
47 #define TCPIP_MSG_VAR_REF(name) API_VAR_REF(name)
48 #define TCPIP_MSG_VAR_DECLARE(name) API_VAR_DECLARE(struct tcpip_msg, name)
49 #define TCPIP_MSG_VAR_ALLOC(name) API_VAR_ALLOC(struct tcpip_msg, MEMP_TCPIP_MSG_API, name, ERR_MEM)
50 #define TCPIP_MSG_VAR_FREE(name) API_VAR_FREE(MEMP_TCPIP_MSG_API, name)
54 static void *tcpip_init_done_arg;
57 #if LWIP_TCPIP_CORE_LOCKING
64 #define TCPIP_MBOX_FETCH(mbox, msg) sys_timeouts_mbox_fetch(mbox, msg)
67 #define TCPIP_MBOX_FETCH(mbox, msg) sys_mbox_fetch(mbox, msg)
80 static void tcpip_thread(
void *arg) {
84 if (tcpip_init_done !=
NULL) {
85 tcpip_init_done(tcpip_init_done_arg);
102 #if !LWIP_TCPIP_CORE_LOCKING
105 msg->msg.api_msg.function(
msg->msg.api_msg.msg);
109 msg->msg.api_call.arg->err =
msg->msg.api_call.function(
msg->msg.api_call.arg);
114 #if !LWIP_TCPIP_CORE_LOCKING_INPUT
117 msg->msg.inp.input_fn(
msg->msg.inp.p,
msg->msg.inp.netif);
122 #if LWIP_TCPIP_TIMEOUT && LWIP_TIMERS
123 case TCPIP_MSG_TIMEOUT:
125 sys_timeout(
msg->msg.tmo.msecs,
msg->msg.tmo.h,
msg->msg.tmo.arg);
128 case TCPIP_MSG_UNTIMEOUT:
130 sys_untimeout(
msg->msg.tmo.h,
msg->msg.tmo.arg);
137 msg->msg.cb.function(
msg->msg.cb.ctx);
143 msg->msg.cb.function(
msg->msg.cb.ctx);
162 #if LWIP_TCPIP_CORE_LOCKING_INPUT
184 kprintf(
"INPKT %i\n", __LINE__);
186 kprintf(
"INPKT %i\n", __LINE__);
240 msg->msg.cb.function =
function;
254 #if LWIP_TCPIP_TIMEOUT && LWIP_TIMERS
264 tcpip_timeout(
u32_t msecs, sys_timeout_handler h,
void *
arg)
275 msg->type = TCPIP_MSG_TIMEOUT;
276 msg->msg.tmo.msecs = msecs;
291 tcpip_untimeout(sys_timeout_handler h,
void *
arg)
302 msg->type = TCPIP_MSG_UNTIMEOUT;
323 #if LWIP_TCPIP_CORE_LOCKING
357 #if LWIP_TCPIP_CORE_LOCKING
366 #if !LWIP_NETCONN_SEM_PER_THREAD
379 #if LWIP_NETCONN_SEM_PER_THREAD
388 #if !LWIP_NETCONN_SEM_PER_THREAD
404 struct tcpip_callback_msg*
411 msg->msg.cb.function =
function;
413 return (
struct tcpip_callback_msg*)
msg;
449 tcpip_init_done = initfunc;
450 tcpip_init_done_arg =
arg;
452 LWIP_ASSERT(
"failed to create tcpip_thread mbox", 0);
454 #if LWIP_TCPIP_CORE_LOCKING
456 LWIP_ASSERT(
"failed to create lock_tcpip_core", 0);
469 static void pbuf_free_int(
void *
p) {
err_t tcpip_callback_with_block(tcpip_callback_fn function, void *ctx, u8_t block)
#define TCPIP_MSG_VAR_DECLARE(name)
#define LWIP_ASSERT(message, assertion)
err_t sys_sem_new(sys_sem_t **sem, u8_t count)
void sys_sem_free(sys_sem_t **sem)
int sys_sem_valid(struct sys_sem **s)
uint32_t sys_arch_sem_wait(struct sys_sem **s, uint32_t timeout)
void tcpip_init(tcpip_init_done_fn initfunc, void *arg)
#define NETIF_FLAG_ETHARP
#define UNLOCK_TCPIP_CORE()
err_t mem_free_callback(void *m)
u8_t pbuf_free(struct pbuf *p)
sys_thread_t sys_thread_new(const char *name, lwip_thread_fn thread, void *arg, int stacksize, int prio)
void sys_mbox_post(struct sys_mbox **mb, void *msg)
err_t pbuf_free_callback(struct pbuf *p)
#define LWIP_TCPIP_THREAD_ALIVE()
void * memp_malloc(memp_t type)
err_t(* netif_input_fn)(struct pbuf *p, struct netif *inp)
void memp_free(memp_t type, void *mem)
void(* tcpip_init_done_fn)(void *arg)
#define TCPIP_MSG_VAR_REF(name)
void sys_sem_signal(struct sys_sem **s)
#define TCPIP_MBOX_FETCH(mbox, msg)
#define TCPIP_MSG_VAR_ALLOC(name)
err_t tcpip_input(struct pbuf *p, struct netif *inp)
struct tcpip_msg::@3::@6 inp
#define sys_mbox_valid_val(mbox)
#define TCPIP_THREAD_NAME
#define LWIP_UNUSED_ARG(x)
err_t tcpip_inpkt(struct pbuf *p, struct netif *inp, netif_input_fn input_fn)
err_t sys_mutex_new(sys_mutex_t *mutex)
#define TCPIP_THREAD_PRIO
err_t tcpip_trycallback(struct tcpip_callback_msg *msg)
#define NETIF_FLAG_ETHERNET
void tcpip_callbackmsg_delete(struct tcpip_callback_msg *msg)
#define TCPIP_THREAD_STACKSIZE
void(* tcpip_callback_fn)(void *ctx)
err_t sys_mbox_new(struct sys_mbox **mb, int size)
#define TCPIP_MSG_VAR_FREE(name)
int kprintf(const char *,...)
err_t sys_mbox_trypost(struct sys_mbox **mb, void *msg)
#define LWIP_DEBUGF(debug, message)
#define LOCK_TCPIP_CORE()
err_t tcpip_send_msg_wait_sem(tcpip_callback_fn fn, void *apimsg, sys_sem_t *sem)
struct tcpip_api_call_data * arg
struct tcpip_callback_msg * tcpip_callbackmsg_new(tcpip_callback_fn function, void *ctx)
err_t tcpip_api_call(tcpip_api_call_fn fn, struct tcpip_api_call_data *call)
err_t(* tcpip_api_call_fn)(struct tcpip_api_call_data *call)