⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net_task.c.svn-base

📁 RT-Thread是发展中的下一代微内核嵌入式实时操作系统
💻 SVN-BASE
字号:
#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 + -