📄 net_task.c
字号:
#include <net/net_task.h>
rt_mailbox_t net_mbox;
int net_task_job_add(void (*func)(), void *arg)
{
struct net_msg msg;
msg.func = func;
msg.arg = arg;
return rt_mb_send(net_mbox, *(rt_uint32 *)&msg);
}
static void net_task(void *p)
{
struct net_msg msg;
net_mbox = rt_mb_create("lwip_mailbox", sizeof(struct net_msg)/sizeof(int), RT_IPC_FLAG_FIFO);
RT_ASSERT(net_mbox != RT_NULL);
while(1)
{
int ret;
ret = rt_mb_recv(net_mbox, (rt_uint32 *)&msg, RT_WAITING_FOREVER);
if(ret == RT_EOK)
{
if(msg.func)
msg.func(msg.arg);
}
else
{
rt_kprintf("net task mbox_pend() error: ret=%d\n", ret);
}
}
}
/*
* Create and start net task.
*/
void net_task_init()
{
rt_thread_t t;
t = rt_thread_create("tnet", net_task, RT_NULL, 0x1000, 0x60, 100);
RT_ASSERT(t != RT_ERROR);
rt_thread_startup(t);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -