当前位置: 技术问答>linux和unix
怎样让模块加载之后自动执行里面的函数
来源: 互联网 发布时间:2017-03-02
本文导语: 比如编写了一个网络接收发送数据包的模块,包括发包函数int send(), 接收函数int rec(),构造包函数int pkt()和读取接收到的数据包内容函数int a() 怎样让这个模块加载后,不用外界模块调用,就立刻开始构造数据包...
比如编写了一个网络接收发送数据包的模块,包括发包函数int send(), 接收函数int rec(),构造包函数int pkt()和读取接收到的数据包内容函数int a()
怎样让这个模块加载后,不用外界模块调用,就立刻开始构造数据包,并且当有数据包到来时自动接收???
是要在模块加载函数int __init中定义和调用吗?
是不是一个模块中只能通过__init加载一个函数,剩下的函数都要直接或间接地和加载的这个函数建立调用关系呢?
怎样让这个模块加载后,不用外界模块调用,就立刻开始构造数据包,并且当有数据包到来时自动接收???
是要在模块加载函数int __init中定义和调用吗?
是不是一个模块中只能通过__init加载一个函数,剩下的函数都要直接或间接地和加载的这个函数建立调用关系呢?
|
你在init函数里面做好工作即可,想加载几个函数都行。
|
kthread_create函数.
#include 里面
创建一个内核线程就行了。
在模块加载的初始化函数里使用kthread_create创建,然后让其运行。或者直接使用kthread_run创建并运行。
#include 里面
创建一个内核线程就行了。
在模块加载的初始化函数里使用kthread_create创建,然后让其运行。或者直接使用kthread_run创建并运行。
|
module_init(xxx_func); /* do something in xxx_func function, it's entry of kernel module */