提交 f2afe63f 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

lwIP sys_mbox_trypost

上级 371335f1
...@@ -39,18 +39,29 @@ sys_mbox_set_invalid(sys_mbox_t *mbox) ...@@ -39,18 +39,29 @@ sys_mbox_set_invalid(sys_mbox_t *mbox)
mbox->invalid = 1; mbox->invalid = 1;
} }
err_t
sys_mbox_trypost(sys_mbox_t *mbox, void *msg)
{
DIE;
}
int int
sys_mbox_valid(sys_mbox_t *mbox) sys_mbox_valid(sys_mbox_t *mbox)
{ {
return !mbox->invalid; return !mbox->invalid;
} }
err_t
sys_mbox_trypost(sys_mbox_t *mbox, void *msg)
{
err_t r = ERR_MEM;
acquire(&mbox->s);
if (mbox->head - mbox->tail < MBOXSLOTS) {
mbox->msg[mbox->head % MBOXSLOTS] = msg;
mbox->head++;
cv_wakeup(&mbox->c);
r = ERR_OK;
}
release(&mbox->s);
return r;
}
void void
sys_mbox_post(sys_mbox_t *mbox, void *msg) sys_mbox_post(sys_mbox_t *mbox, void *msg)
{ {
...@@ -59,6 +70,7 @@ sys_mbox_post(sys_mbox_t *mbox, void *msg) ...@@ -59,6 +70,7 @@ sys_mbox_post(sys_mbox_t *mbox, void *msg)
cv_sleep(&mbox->c, &mbox->s); cv_sleep(&mbox->c, &mbox->s);
mbox->msg[mbox->head % MBOXSLOTS] = msg; mbox->msg[mbox->head % MBOXSLOTS] = msg;
mbox->head++; mbox->head++;
cv_wakeup(&mbox->c);
release(&mbox->s); release(&mbox->s);
} }
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论