• 内核模块可选信息


    前一次讲的三个要素是编写内核模块必不可少的三个信息,今天讲的这些是可选信息,可写可不写。
      一、模块申明
        MODULE_LICENSE("GPL");                            声明模块遵守的协议
        MODULE_AUTHOR("Bumble Bee");                声明模块编写的作者
        MODULE_DESCRIPTION("print helloworld");  声明模块的功能
        MODULE_VERSION("1.0");                             声明模块版本
      二、模块参数
        通过宏module_param(name,type,perm)来声明。其中name为变量名,type为变量类型,perm未访问权限。变量类型有 int,bool,charp三种;访问权限有S_IRUGO(读)、S_IWUSR(写)两种。用法如下:

        

        在安装内核模块时就可以输入参数了

        

      三、符号导出
                当一个模块调用另外一个模块中实现的函数时需要用到这个。例如现在有两个模块,一个helloworld.ko,一个add.ko。在add模块中实现了 一个add函数,想要在helloworld模块中调用它,如果不进行符号导出的话就会出现这样的错误。  

        

        提示找不到add这个函数符号。所以在add.c中要加入符号导出,即EXPORT_SYMBOL(函数名)。

        

        在helloworld.c中要将add函数外部输出

        

        这样就可以在helloworld.ko内核模块中调用add.ko模块中的变量了。

        

  • 相关阅读:
    transform:translate -50%解释
    无缝滚动条
    css二维画面练习-扑克牌
    css二维动画
    ORM了解
    socket总结
    2016/9/23总结电脑内容
    winform控件跨线程委托
    HttpRequestMessage
    vue设置每个页面的头部title
  • 原文地址:https://www.cnblogs.com/51qianrushi/p/4294376.html
Copyright © 2020-2023  润新知