• 内核模块可选信息


    前一次讲的三个要素是编写内核模块必不可少的三个信息,今天讲的这些是可选信息,可写可不写。
      一、模块申明
        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模块中的变量了。

        

  • 相关阅读:
    2.4.4.1、Django新建APP(acounts)
    2.4.3、Django用户权限控制
    2.4.2、Django处理登录和注销
    2.4.1、Django使用内置的Admin管理用户
    2.4、使用Django自带的admin用户管理,权限管理
    2.3、django项目对数据库的操作
    2.2、创建第一个Django项目
    2、Django框架介绍
    github设置添加SSH(转)
    form表单回车提交问题
  • 原文地址:https://www.cnblogs.com/51qianrushi/p/4294376.html
Copyright © 2020-2023  润新知