54 static void *tcpip_init_done_arg;
55 static sys_mbox_t mbox;
57 #if LWIP_TCPIP_CORE_LOCKING
59 sys_mutex_t lock_tcpip_core;
74 tcpip_thread(
void *arg)
79 if (tcpip_init_done !=
NULL) {
80 tcpip_init_done(tcpip_init_done_arg);
98 #if !LWIP_TCPIP_CORE_LOCKING_INPUT
114 case TCPIP_MSG_NETIFAPI:
126 #if LWIP_TCPIP_TIMEOUT
127 case TCPIP_MSG_TIMEOUT:
132 case TCPIP_MSG_UNTIMEOUT:
158 #if LWIP_TCPIP_CORE_LOCKING_INPUT
164 ret = ethernet_input(p, inp);
217 msg->
msg.
cb.function =
function;
232 #if LWIP_TCPIP_TIMEOUT
252 msg->
type = TCPIP_MSG_TIMEOUT;
253 msg->
msg.tmo.msecs = msecs;
255 msg->
msg.tmo.arg = arg;
281 msg->
type = TCPIP_MSG_UNTIMEOUT;
283 msg->
msg.tmo.arg = arg;
301 tcpip_apimsg(
struct api_msg *apimsg)
310 msg.
type = TCPIP_MSG_API;
311 msg.
msg.apimsg = apimsg;
314 return apimsg->msg.err;
319 #if LWIP_TCPIP_CORE_LOCKING
329 tcpip_apimsg_lock(
struct api_msg *apimsg)
337 apimsg->function(&(apimsg->msg));
339 return apimsg->msg.err;
346 #if !LWIP_TCPIP_CORE_LOCKING
355 tcpip_netifapi(
struct netifapi_msg* netifapimsg)
362 netifapimsg->msg.err = err;
366 msg.
type = TCPIP_MSG_NETIFAPI;
367 msg.
msg.netifapimsg = netifapimsg;
371 return netifapimsg->msg.err;
385 tcpip_netifapi_lock(
struct netifapi_msg* netifapimsg)
388 netifapimsg->function(&(netifapimsg->msg));
390 return netifapimsg->msg.err;
408 tcpip_init_done = initfunc;
409 tcpip_init_done_arg = arg;
411 LWIP_ASSERT(
"failed to create tcpip_thread mbox", 0);
413 #if LWIP_TCPIP_CORE_LOCKING
415 LWIP_ASSERT(
"failed to create lock_tcpip_core", 0);
429 pbuf_free_int(
void *
p)