日期:2014-05-16  浏览次数:20878 次

怎样让模块加载之后自动执行里面的函数
比如编写了一个网络接收发送数据包的模块,包括发包函数int send(), 接收函数int rec(),构造包函数int pkt()和读取接收到的数据包内容函数int a()
怎样让这个模块加载后,不用外界模块调用,就立刻开始构造数据包,并且当有数据包到来时自动接收???
是要在模块加载函数int __init中定义和调用吗?
是不是一个模块中只能通过__init加载一个函数,剩下的函数都要直接或间接地和加载的这个函数建立调用关系呢?

------解决方案--------------------
kthread_create函数. 
#include <linux/kthread.h>里面
创建一个内核线程就行了。
在模块加载的初始化函数里使用kthread_create创建,然后让其运行。或者直接使用kthread_run创建并运行。
------解决方案--------------------
你在init函数里面做好工作即可,想加载几个函数都行。
------解决方案--------------------
module_init(xxx_func); /* do something in xxx_func function, it's entry of kernel module */