博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux设备驱动程序第3版学习笔记(例程2--hellop.c)
阅读量:5021 次
发布时间:2019-06-12

本文共 937 字,大约阅读时间需要 3 分钟。

1、c代码

2、Makefile

3、sudo make

4、insmod rmmod cat

5、抄书

  由于系统的不同,驱动程序需要的参数也许会发生变化。这包括设备编号,以及其它一些用来控制驱动程序操作方式的参数。例如SCSI适配器驱动程序需要经常处理

一些选项,这些选项用来控制标记命令队列的使用,而集成设备电路驱动程序允许用户控制DAM操作。

为满足这种需求,内核允许对驱动程序指定参数,而这些参数可在装载驱动程序模块时改变。

  这些参数的值可在运行insmod或modprobe命令装载模块时赋值,而modprob还可以从它的配置文件(/etc/modprob.conf)中读取参数值。这两个命令可在命令行接收几种

参数类型的赋值。

 

  当然,在insmod改变模块参数之前,模块必须让这些参数对insmod命令可见。参数必须使用module_param宏来声明,这个宏在moduleparam.h中定义。

module_param需要3个参数:变量的名称、类型、用于sysfs入口项的访问许可掩码。这个宏必须放在任何函数之外,通常是在源文件的头部。

  内核支持的模块参数类型如下:

  bool

  invbool

  charp 字符指针值

  int

  long

  short

  uint

  ulong

  ushort

  module_param中最后一个参数是访问许可值,我们应使用<linux/stat.h>中存在的定义。这个值来控制谁能够访问sysfs中对模块参数的表述。如果

perm被设置为0,就不会有对应的sysfs入口项;否则,模块参数会在/sys/module中出现,并设置为给定的访问许可。如果对参数使用S_IRUGO,则任何人

均可读取该参数,但不能修改;S_IRUGO|S_IWUSR允许root用户修改该参数。

  注意:如果一个参数通过sysfs而被修改,则如同模块修改了这个参数的值一样,但是内核不会以任何方式通知模块。大多数情况下,我们不应该

让模块参数是可写的,除非我们打算检测这种修改并作出相应的动作。

 

转载于:https://www.cnblogs.com/yangtuzi/p/7554984.html

你可能感兴趣的文章
SPEL语言-Spring Expression Language
查看>>
设置nginx中文件上传的大小限制度
查看>>
C# 课堂总结3-语句
查看>>
精读《Scheduling in React》
查看>>
[Leetcode] 4Sum
查看>>
java.lang.StackOverflowError 解决方法
查看>>
hibernate事务控制
查看>>
[WCF编程]10.操作:请求/应答操作
查看>>
xfire实现webservice客户端之测试关注点
查看>>
在MySQL数据库中出现中文显示乱码
查看>>
对高内聚,低耦合的理解
查看>>
Codeforces Round #545 (Div. 2) C. Skyscrapers (离散化)
查看>>
fee photo
查看>>
PLSQL如何输出字典的脚本文件.sql
查看>>
idea热部署+自动编译
查看>>
SharePoint表单和工作流 - Nintex篇(三)
查看>>
mysql调优
查看>>
AlexNet详解
查看>>
清除目录下的SVN信息
查看>>
JS 定时提交 以及 保持在网页存在的时候session不失效的小技巧
查看>>