摘要:本章已介绍了很多符号给并发的管理. 最重要的这些在此总结:#include <asm/semaphore.h> //定义信号量和其上操作的包含文件.信号量的定义和初始化(1)静态定义及初始化DECLARE_MUTEX(name);DECLARE_MUTEX_LOCKED(name); (2)动态定义及初始化struct semaphore semvoid init_MUTEX(struct semaphore *sem);void init_MUTEX_LOCKED(struct semaphore *sem);信号量的获取和释放void down(struct semaphore
阅读全文
随笔分类 - LDD3 读书笔记
摘要:本章介绍了下面符号和头文件. struct file_operations 和 struct file 中的成员的列表这里不重复了.#include <linux/types.h>dev_t dev_t 是用来在内核里代表设备号的类型.int MAJOR(dev_t dev);int MINOR(dev_t dev);从设备编号中抽取主次编号的宏.dev_t MKDEV(unsigned int major, unsigned int minor);从主次编号来建立 dev_t 数据项的宏定义.#include <linux/fs.h>"文件系统"头
阅读全文
摘要:模块参数 驱动需要知道的几个参数因不同的系统而不同. 从使用的设备号( 如我们在下一章见到的 )到驱动应当任何操作的几个方面. 例如, SCSI 适配器的驱动常常有选项控制标记命令队列的使用, IDE 驱动允许用户控制 DMA 操作. 如果你的驱动控制老的硬件, 还需要被明确告知哪里去找硬件的 I/O 端口或者 I/O 内存地址. 内核通过在加载驱动的模块时指定可变参数的值, 支持这些要求. 这些参数的值可由 insmod 或者 modprobe 在加载时指定; 后者也可以从它的配置文件(/etc/modprobe.conf)读取参数的值. 这些命令在命令行里接受几类规格的值. 作为演示这种能
阅读全文