Lines Matching refs:msg
71 static void tcpip_thread_handle_msg(struct tcpip_msg *msg);
75 #define TCPIP_MBOX_FETCH(mbox, msg) sys_mbox_fetch(mbox, msg)
78 #define TCPIP_MBOX_FETCH(mbox, msg) tcpip_timeouts_mbox_fetch(mbox, msg)
85 * @param msg the place to store the message
88 tcpip_timeouts_mbox_fetch(sys_mbox_t *mbox, void **msg)
98 sys_arch_mbox_fetch(mbox, msg, 0);
108 res = sys_arch_mbox_fetch(mbox, msg, sleeptime);
134 struct tcpip_msg *msg;
147 TCPIP_MBOX_FETCH(&tcpip_mbox, (void **)&msg);
148 if (msg == NULL) {
153 tcpip_thread_handle_msg(msg);
161 tcpip_thread_handle_msg(struct tcpip_msg *msg)
163 switch (msg->type) {
166 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API message %p\n", (void *)msg));
167 msg->msg.api_msg.function(msg->msg.api_msg.msg);
170 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API CALL message %p\n", (void *)msg));
171 msg->msg.api_call.arg->err = msg->msg.api_call.function(msg->msg.api_call.arg);
172 sys_sem_signal(msg->msg.api_call.sem);
178 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: PACKET %p\n", (void *)msg));
179 if (msg->msg.inp.input_fn(msg->msg.inp.p, msg->msg.inp.netif) != ERR_OK) {
180 pbuf_free(msg->msg.inp.p);
182 memp_free(MEMP_TCPIP_MSG_INPKT, msg);
188 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: TIMEOUT %p\n", (void *)msg));
189 sys_timeout(msg->msg.tmo.msecs, msg->msg.tmo.h, msg->msg.tmo.arg);
190 memp_free(MEMP_TCPIP_MSG_API, msg);
193 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: UNTIMEOUT %p\n", (void *)msg));
194 sys_untimeout(msg->msg.tmo.h, msg->msg.tmo.arg);
195 memp_free(MEMP_TCPIP_MSG_API, msg);
200 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK %p\n", (void *)msg));
201 msg->msg.cb.function(msg->msg.cb.ctx);
202 memp_free(MEMP_TCPIP_MSG_API, msg);
206 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK_STATIC %p\n", (void *)msg));
207 msg->msg.cb.function(msg->msg.cb.ctx);
212 if (msg->msg.lowpower.type == LOW_BLOCK) {
213 LOWPOWER_SIGNAL(msg->msg.lowpower.wait_up);
215 memp_free(MEMP_TCPIP_MSG_LOWPOWER, msg);
221 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: invalid message: %d\n", msg->type));
228 /* send a na msg to wake up tcpip_thread */
232 struct tcpip_msg *msg = NULL;
243 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_LOWPOWER);
244 if (msg == NULL) {
250 msg->type = TCPIP_MSG_NA;
251 msg->msg.lowpower.type = type;
254 LOWPOWER_SEM_NEW(msg->msg.lowpower.wait_up, val);
257 memp_free(MEMP_TCPIP_MSG_LOWPOWER, msg);
262 if (sys_mbox_trypost(&tcpip_mbox, msg) != ERR_OK) {
264 LOWPOWER_SEM_FREE(msg->msg.lowpower.wait_up);
266 memp_free(MEMP_TCPIP_MSG_LOWPOWER, msg);
272 LOWPOWER_SEM_WAIT(msg->msg.lowpower.wait_up);
273 LOWPOWER_SEM_FREE(msg->msg.lowpower.wait_up);
274 memp_free(MEMP_TCPIP_MSG_LOWPOWER, msg);
285 struct tcpip_msg *msg;
287 if (sys_arch_mbox_tryfetch(&tcpip_mbox, (void **)&msg) != SYS_MBOX_EMPTY) {
289 if (msg != NULL) {
290 tcpip_thread_handle_msg(msg);
320 struct tcpip_msg *msg;
324 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_INPKT);
325 if (msg == NULL) {
329 msg->type = TCPIP_MSG_INPKT;
330 msg->msg.inp.p = p;
331 msg->msg.inp.netif = inp;
332 msg->msg.inp.input_fn = input_fn;
333 if (sys_mbox_trypost(&tcpip_mbox, msg) != ERR_OK) {
334 memp_free(MEMP_TCPIP_MSG_INPKT, msg);
381 struct tcpip_msg *msg;
385 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
386 if (msg == NULL) {
390 msg->type = TCPIP_MSG_CALLBACK;
391 msg->msg.cb.function = function;
392 msg->msg.cb.ctx = ctx;
394 sys_mbox_post(&tcpip_mbox, msg);
417 struct tcpip_msg *msg;
421 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
422 if (msg == NULL) {
426 msg->type = TCPIP_MSG_CALLBACK;
427 msg->msg.cb.function = function;
428 msg->msg.cb.ctx = ctx;
430 if (sys_mbox_trypost(&tcpip_mbox, msg) != ERR_OK) {
431 memp_free(MEMP_TCPIP_MSG_API, msg);
449 struct tcpip_msg *msg;
453 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
454 if (msg == NULL) {
458 msg->type = TCPIP_MSG_TIMEOUT;
459 msg->msg.tmo.msecs = msecs;
460 msg->msg.tmo.h = h;
461 msg->msg.tmo.arg = arg;
462 sys_mbox_post(&tcpip_mbox, msg);
476 struct tcpip_msg *msg;
480 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
481 if (msg == NULL) {
485 msg->type = TCPIP_MSG_UNTIMEOUT;
486 msg->msg.tmo.h = h;
487 msg->msg.tmo.arg = arg;
488 sys_mbox_post(&tcpip_mbox, msg);
519 TCPIP_MSG_VAR_DECLARE(msg);
524 TCPIP_MSG_VAR_ALLOC(msg);
525 TCPIP_MSG_VAR_REF(msg).type = TCPIP_MSG_API;
526 TCPIP_MSG_VAR_REF(msg).msg.api_msg.function = fn;
527 TCPIP_MSG_VAR_REF(msg).msg.api_msg.msg = apimsg;
528 sys_mbox_post(&tcpip_mbox, &TCPIP_MSG_VAR_REF(msg));
530 TCPIP_MSG_VAR_FREE(msg);
558 TCPIP_MSG_VAR_DECLARE(msg);
569 TCPIP_MSG_VAR_ALLOC(msg);
570 TCPIP_MSG_VAR_REF(msg).type = TCPIP_MSG_API_CALL;
571 TCPIP_MSG_VAR_REF(msg).msg.api_call.arg = call;
572 TCPIP_MSG_VAR_REF(msg).msg.api_call.function = fn;
574 TCPIP_MSG_VAR_REF(msg).msg.api_call.sem = LWIP_NETCONN_THREAD_SEM_GET();
576 TCPIP_MSG_VAR_REF(msg).msg.api_call.sem = &call->sem;
578 sys_mbox_post(&tcpip_mbox, &TCPIP_MSG_VAR_REF(msg));
579 sys_arch_sem_wait(TCPIP_MSG_VAR_REF(msg).msg.api_call.sem, 0);
580 TCPIP_MSG_VAR_FREE(msg);
609 struct tcpip_msg *msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
610 if (msg == NULL) {
613 msg->type = TCPIP_MSG_CALLBACK_STATIC;
614 msg->msg.cb.function = function;
615 msg->msg.cb.ctx = ctx;
616 return (struct tcpip_callback_msg *)msg;
623 * @param msg the message to free
628 tcpip_callbackmsg_delete(struct tcpip_callback_msg *msg)
630 memp_free(MEMP_TCPIP_MSG_API, msg);
637 * @param msg pointer to the message to post
643 tcpip_callbackmsg_trycallback(struct tcpip_callback_msg *msg)
646 return sys_mbox_trypost(&tcpip_mbox, msg);
655 * @param msg pointer to the message to post
662 tcpip_callbackmsg_trycallback_fromisr(struct tcpip_callback_msg *msg)
665 return sys_mbox_trypost_fromisr(&tcpip_mbox, msg);