驱动应用层基本结构

驱动应用层基本结构,第1张

驱动应用层基本结构

#include
#include
//#define PRINTK printk
#define PRINTK(x...)

//__init: 它是编译器语法,并不是C语言语法,init修饰的函数最终会被编译到一个特定的代码段
//(init.txt),同时在(.initcall.txt)会保留一份指向该模块入口函数的指针,所有的__init修饰的函数
//在(.initcall.txt)中会形成一个函数指针列表,内核启动的时候会遍历该函数指针列表,最终实现
//模块加载函数的调用
static int __init test_module_init(void)
{
    //printk(KERN_INFO"----------%s------------n",__FUNCTION__);
    PRINTK("----------%s------------n",__FUNCTION__);
    return 0;
}

static void __exit test_module_exit(void)
{
    //printk(KERN_INFO"----------%s------------n",__FUNCTION__);
    PRINTK("----------%s------------n",__FUNCTION__);
}

//驱动程序被加载的时候会被调用
module_init(test_module_init);
//驱动程序被卸载的时候会被调用
module_exit(test_module_exit);
//遵循GPL协议
MODULE_LICENSE("GPL");
//--------非必须---------
MODULE_ALIAS("test1");//别名
MODULE_AUTHOR("DaoGe");//作者
MODULE_DEscriptION("test for module");//描述

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5670982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存