LDD3笔记(2)

原创 2006年06月12日 21:12:00
2006年6月12日星期一

第六章:高级字符驱动程序操作

设备驱动程序可以通过ioctl调用控制硬件设备。

ioctl在用户空间和驱动程序中有不同的函数原型。

大多数的ioctl实现都包含一个switch语句,来根据cmd参数选择对应的操作。通常在代码使用符号名来代替cmd数值。

ioctl的命令编号方法有旧方法和新方法。应该看看include/asm/ioctl.h Documentation/ioctl-number.txt文件。

定义新号码的方法在linux/ioctl.h中。

当命令号码不正确的时候,通常的返回值是-EINVAL

有一些ioctl调用,是用于文件操作的。

如果ioctl的可变参数是指针,应该先检查指针的有效性,用access_ok函数。在asm/uaccess.h中定义。

代码在switch之前,应该分析ioctl的命令号的位字段来检查参数。

可以用copy_from_usercopy_to_user来同用户空间交换数据。有经过优化的函数 put_userget-user,用于1248个字节的数据,定义在asm/uaccess.h中。


【原创】【专栏】《Linux设备驱动程序》--- LDD3源码目录结构和源码分析经典链接

【原创】LDD3源码目录结构和源码分析经典链接 http://blog.chinaunix.net/uid-25194149-id-3361623.html http://blog.csdn....
  • u010787933
  • u010787933
  • 2014年07月08日 16:57
  • 1549

吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(2-1)-- 深度学习的实践方面

改善深层神经网络:超参数调试、正则化以及优化 ---- 深度学习的实践方面
  • Koala_Tree
  • Koala_Tree
  • 2017年09月28日 17:00
  • 2400

设备驱动简介 -- ldd3读书笔记

设备驱动简介 -- ldd3读书笔记
  • xiaocainiaoshangxiao
  • xiaocainiaoshangxiao
  • 2014年11月01日 17:38
  • 1490

LDD3学习笔记(2):建立和运行模块

1、建立开发环境在开始编写代码以及研究代码之前,你需要有一个开发环境,也就是一个linux系统。通常我们的做法是在windows下安装一个虚拟机软件,然后在虚拟机软件中安装一个linux系统的发行版本...
  • songjinshi
  • songjinshi
  • 2011年07月06日 20:07
  • 1655

LDD3学习笔记(4):字符驱动2

1、重要的数据结构注册设备编号仅仅是驱动代码需要完成的任务之一,还有很多基础性的驱动操作需要驱动代码来完成,这里有3个重要的内核数据结构需要了解一下分别是:file_operations、file、i...
  • songjinshi
  • songjinshi
  • 2011年07月07日 20:21
  • 893

ldd3笔记-第6章-高级字符程序操作part2

6.2 阻塞IO     当无法立即响应某个请求时,应该阻塞进程,将其休眠直到响应。     6.2.1 休眠简介         当一个进程被置为睡眠,它被标识并且从调度器的运行队列中去除.直...
  • zyhui65
  • zyhui65
  • 2012年10月19日 16:35
  • 384

乐高ldd net2机器人和ev3机器人

  • 2014年04月25日 00:13
  • 51KB
  • 下载

(LDD3读书记录)Chapter-2:建立和运行模块

/*  纯粹是学习记录,无意侵权~^ _ ^  */ /*  感觉LDD3已经很精简了,完全不知道该删简哪些部分...  *  so,copy了全部!只能说,处于“书越读越厚”的阶段....菜鸟一...
  • forsakening
  • forsakening
  • 2013年06月14日 16:45
  • 962

LDD3 study note 2

这篇文章在note1的基础上,进一步记录实现一个ioctl要注意的地方。相关的代码在:https://github.com/wangzhou/scull.git, tag: scull_2...
  • scarecrow_byr
  • scarecrow_byr
  • 2017年01月01日 15:39
  • 191

USB Drivers 相关结构体和宏定义记录 <LDD3 学习笔记>

USB Drivers 相关数据结构记录
  • u011368821
  • u011368821
  • 2014年08月17日 01:55
  • 1488
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LDD3笔记(2)
举报原因:
原因补充:

(最多只允许输入30个字)