【字符设备驱动程序的组成】
字符设备驱动程序包含5个部分:头文件、file_operation结构体变量、接口函数、加载函数以及卸载函数。
头文件的部分包含进数据结构以及内核函数要用到的头文件。file_operation结构体变量部分定义file_operation结构体的变量,该结构体声明了驱动程序所有的接口函数。接口函数部分包含字符驱动设备驱动程序与内核应用程序交互的read()函数、write()函数、open()函数、ioctl()函数、relase()函数。加载函数用于加载驱动程序至内核,卸载函数用于从内核卸载驱动程序。
【file_operation结构体变量】
用户进程利用系统调用在对设备文件进行诸如read()、write()等操作时,系统调用通过设备文件的主设备号找到相应的设备驱动程序,然后读取file_operation结构体变量相应的函数指针,接着把控制权交给该函数。一个字符设备驱动设备即是file_operation结构体的一个变量。、,字符设备驱动程序中应该首先定义该结构体的变量,定义该结构体的方法如下:
static struct file_operation XXX_fops={
owner: THIS_MODULE,
write: XXX_write,
read: XXX_read;
ioctl: XXX_ioctl;
open: XXXX_open,
release: XXX_release,
};
以上定义了名为XXX_ops的file_operation结构体变量,的部分成员并对其中用<