Lines Matching refs:msg

68 static void tcpip_thread_handle_msg(struct tcpip_msg *msg);
72 #define TCPIP_MBOX_FETCH(mbox, msg) sys_mbox_fetch(mbox, msg)
75 #define TCPIP_MBOX_FETCH(mbox, msg) tcpip_timeouts_mbox_fetch(mbox, msg)
81 * @param msg the place to store the message
84 tcpip_timeouts_mbox_fetch(sys_mbox_t *mbox, void **msg)
94 sys_arch_mbox_fetch(mbox, msg, 0);
104 res = sys_arch_mbox_fetch(mbox, msg, sleeptime);
129 struct tcpip_msg *msg;
142 TCPIP_MBOX_FETCH(&tcpip_mbox, (void **)&msg);
143 if (msg == NULL) {
148 tcpip_thread_handle_msg(msg);
156 tcpip_thread_handle_msg(struct tcpip_msg *msg)
158 switch (msg->type) {
161 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API message %p\n", (void *)msg));
162 msg->msg.api_msg.function(msg->msg.api_msg.msg);
165 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API CALL message %p\n", (void *)msg));
166 msg->msg.api_call.arg->err = msg->msg.api_call.function(msg->msg.api_call.arg);
167 sys_sem_signal(msg->msg.api_call.sem);
173 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: PACKET %p\n", (void *)msg));
174 if (msg->msg.inp.input_fn(msg->msg.inp.p, msg->msg.inp.netif) != ERR_OK) {
175 pbuf_free(msg->msg.inp.p);
177 memp_free(MEMP_TCPIP_MSG_INPKT, msg);
183 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: TIMEOUT %p\n", (void *)msg));
184 sys_timeout(msg->msg.tmo.msecs, msg->msg.tmo.h, msg->msg.tmo.arg);
185 memp_free(MEMP_TCPIP_MSG_API, msg);
188 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: UNTIMEOUT %p\n", (void *)msg));
189 sys_untimeout(msg->msg.tmo.h, msg->msg.tmo.arg);
190 memp_free(MEMP_TCPIP_MSG_API, msg);
195 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK %p\n", (void *)msg));
196 msg->msg.cb.function(msg->msg.cb.ctx);
197 memp_free(MEMP_TCPIP_MSG_API, msg);
201 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK_STATIC %p\n", (void *)msg));
202 msg->msg.cb.function(msg->msg.cb.ctx);
206 LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: invalid message: %d\n", msg->type));
218 struct tcpip_msg *msg;
220 if (sys_arch_mbox_tryfetch(&tcpip_mbox, (void **)&msg) != SYS_ARCH_TIMEOUT) {
222 if (msg != NULL) {
223 tcpip_thread_handle_msg(msg);
250 struct tcpip_msg *msg;
254 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_INPKT);
255 if (msg == NULL) {
259 msg->type = TCPIP_MSG_INPKT;
260 msg->msg.inp.p = p;
261 msg->msg.inp.netif = inp;
262 msg->msg.inp.input_fn = input_fn;
263 if (sys_mbox_trypost(&tcpip_mbox, msg) != ERR_OK) {
264 memp_free(MEMP_TCPIP_MSG_INPKT, msg);
311 struct tcpip_msg *msg;
315 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
316 if (msg == NULL) {
320 msg->type = TCPIP_MSG_CALLBACK;
321 msg->msg.cb.function = function;
322 msg->msg.cb.ctx = ctx;
324 sys_mbox_post(&tcpip_mbox, msg);
347 struct tcpip_msg *msg;
351 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
352 if (msg == NULL) {
356 msg->type = TCPIP_MSG_CALLBACK;
357 msg->msg.cb.function = function;
358 msg->msg.cb.ctx = ctx;
360 if (sys_mbox_trypost(&tcpip_mbox, msg) != ERR_OK) {
361 memp_free(MEMP_TCPIP_MSG_API, msg);
379 struct tcpip_msg *msg;
383 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
384 if (msg == NULL) {
388 msg->type = TCPIP_MSG_TIMEOUT;
389 msg->msg.tmo.msecs = msecs;
390 msg->msg.tmo.h = h;
391 msg->msg.tmo.arg = arg;
392 sys_mbox_post(&tcpip_mbox, msg);
406 struct tcpip_msg *msg;
410 msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
411 if (msg == NULL) {
415 msg->type = TCPIP_MSG_UNTIMEOUT;
416 msg->msg.tmo.h = h;
417 msg->msg.tmo.arg = arg;
418 sys_mbox_post(&tcpip_mbox, msg);
446 TCPIP_MSG_VAR_DECLARE(msg);
451 TCPIP_MSG_VAR_ALLOC(msg);
452 TCPIP_MSG_VAR_REF(msg).type = TCPIP_MSG_API;
453 TCPIP_MSG_VAR_REF(msg).msg.api_msg.function = fn;
454 TCPIP_MSG_VAR_REF(msg).msg.api_msg.msg = apimsg;
455 sys_mbox_post(&tcpip_mbox, &TCPIP_MSG_VAR_REF(msg));
457 TCPIP_MSG_VAR_FREE(msg);
482 TCPIP_MSG_VAR_DECLARE(msg);
493 TCPIP_MSG_VAR_ALLOC(msg);
494 TCPIP_MSG_VAR_REF(msg).type = TCPIP_MSG_API_CALL;
495 TCPIP_MSG_VAR_REF(msg).msg.api_call.arg = call;
496 TCPIP_MSG_VAR_REF(msg).msg.api_call.function = fn;
498 TCPIP_MSG_VAR_REF(msg).msg.api_call.sem = LWIP_NETCONN_THREAD_SEM_GET();
500 TCPIP_MSG_VAR_REF(msg).msg.api_call.sem = &call->sem;
502 sys_mbox_post(&tcpip_mbox, &TCPIP_MSG_VAR_REF(msg));
503 sys_arch_sem_wait(TCPIP_MSG_VAR_REF(msg).msg.api_call.sem, 0);
504 TCPIP_MSG_VAR_FREE(msg);
533 struct tcpip_msg *msg = (struct tcpip_msg *)memp_malloc(MEMP_TCPIP_MSG_API);
534 if (msg == NULL) {
537 msg->type = TCPIP_MSG_CALLBACK_STATIC;
538 msg->msg.cb.function = function;
539 msg->msg.cb.ctx = ctx;
540 return (struct tcpip_callback_msg *)msg;
547 * @param msg the message to free
552 tcpip_callbackmsg_delete(struct tcpip_callback_msg *msg)
554 memp_free(MEMP_TCPIP_MSG_API, msg);
561 * @param msg pointer to the message to post
567 tcpip_callbackmsg_trycallback(struct tcpip_callback_msg *msg)
570 return sys_mbox_trypost(&tcpip_mbox, msg);
579 * @param msg pointer to the message to post
586 tcpip_callbackmsg_trycallback_fromisr(struct tcpip_callback_msg *msg)
589 return sys_mbox_trypost_fromisr(&tcpip_mbox, msg);