driverdemo源代码分析及步骤

driverdemo源代码分析及步骤

ID:8870164

大小:48.00 KB

页数:9页

时间:2018-04-10

driverdemo源代码分析及步骤_第1页
driverdemo源代码分析及步骤_第2页
driverdemo源代码分析及步骤_第3页
driverdemo源代码分析及步骤_第4页
driverdemo源代码分析及步骤_第5页
资源描述:

《driverdemo源代码分析及步骤》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Driverdemo源代码分析模块驱动源代码demo.c如下,其中的demo_read,demo_write函数完成驱动的读写接口功能,do_write函数实现将用户写入的数据逆序排列,通过读取函数读取转换后的数据。这里只是演示接口的实现过程和内核驱动对用户的数据的处理。Demo_ioctl函数演示ioctl调用接口的实现过程。#ifdefMODULE#include#ifdefCONFIG_DEVFS_FS#include#endif#include/*初始化相关头文件*/#

2、include/*与printk()等函数有关的头文件*/#include/*与kmalloc()等函数有关的头文件*/#include/*与文件系统有关的头文件everything...*/#include/*错误代码处理头文件errorcodes*/#include/*数据类型头文件size_t*/#include/*与进程调度相关的头文件*/#include/*O_ACCMO

3、DE*/#include/*COPY_TO_USER*/#include/*cli(),*_flags*/#defineDEVICE_NAME"UP-TECHDEMO"/*该驱动的设备名*/#defineDEMORAW_MINOR1#defineDEMO_Devfs_path"demo/0"staticintdemoMajor=0;staticintMAX_BUF_LEN=1024;/*定义一缓冲区最大长度*/staticchardrv_buf[1024];/*定义一缓冲区*/staticintWRI_LENGTH=0;/****

4、********************************************************************名称:staticvoiddo_write()*功能:逆序排列缓冲区数据*入口参数:无*出口参数:无**********************************************************************/staticvoiddo_write(){inti;intlen=WRI_LENGTH;chartmp;for(i=0;i<(len>>1);i++,len--){tmp=drv_buf[len-1];drv_bu

5、f[len-1]=drv_buf[i];/*对drv_buf[]数组进行逆序排列*/drv_buf[i]=tmp;}}/************************************************************************名称:demo_write()*功能:对应用户空间的write系统调用,从用户空间拷贝给定长度缓冲区数据到内核空间*入口参数:*filp操作设备文件的ID,*buffer对应用户空间的缓冲区的起始地址,count用户空间数据缓冲区长度*出口参数:返回用户空间数据缓冲区长度****************************

6、******************************************/staticssize_tdemo_write(structfile*filp,constchar*buffer,size_tcount){if(count>MAX_BUF_LEN)count=MAX_BUF_LEN;copy_from_user(drv_buf,buffer,count);/*从用户空间拷贝缓冲区数据到内核空间的关键函数,把用户空间的buffer数据传递给drv_buf数组*/WRI_LENGTH=count;printk("userwritedatatodriver");do_

7、write();/*对drv_buf数组进行逆序排列*/returncount;}/************************************************************************名称:demo_read()*功能:对应用户空间的read系统调用,从内核空间拷贝给定长度缓冲区数据到用户空间*入口参数:*filp操作设备文件的ID,*buffer对应用户空间的缓冲区的起始地址,count用户空间数据

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。