上一页 1 ··· 135 136 137 138 139 140 141 142 143 ··· 280 下一页
摘要: 术语"热插拔"最普遍使用的意义产生于当讨论这样的事实时, 几乎所有的计算机系统现在 能够处理当系统有电时设备的出现或消失. 这非常不同于只是几年前的计算机系统, 那时 程序员知道他们只需要在启动时扫描所有的设备, 并且他们从不必担心他们的设备消失直 到整个机器被关电. 现在, 随着 USB 的出现, 阅读全文
posted @ 2019-07-07 21:56 樊伟胜 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 去除一个驱动是一个非常容易的动作. 对于一个 PCI 驱动, 驱动调用 pci_unregister_driver 函数. 这个函数只调用驱动核心函数 driver_unregister, 使用 一个指向传递给它的 struct pci_driver 的 struct devie_driver 的指 阅读全文
posted @ 2019-07-07 21:55 樊伟胜 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 一个 PCI 驱动被添加到 PCI 核心, 当它调用 pci_register_driver 函数时. 这个函数 只初始化 struct device_driver 结构, 这个结构包含在 struct pci_driver 结构里面, 如同之前在关于添加设备的一节中提过的. 接着 PCI 核心使用 阅读全文
posted @ 2019-07-07 21:51 樊伟胜 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 一个 PCI 可用多个不同的方法被从系统中去除. 所有的 card-bus 设备在一个不同的物 理因素上是真正的 PCI 设备, 并且内核 PCI 核心不区分它们. 允许在机器运行时加减 PCI 设备的系统正变得更加普遍, 并且 Linux 支持它们. 还有一个伪 PCI 热插拔驱动允 许开发者来测 阅读全文
posted @ 2019-07-07 21:50 樊伟胜 阅读(1110) 评论(0) 推荐(0) 编辑
摘要: 一个类的真正目的是作为一个是该类成员的设备的容器. 一个成员由 struct class_device 来表示: struct class_device { struct kobject kobj; struct class *class; struct device *dev; void *cla 阅读全文
posted @ 2019-07-07 21:49 樊伟胜 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 一个类由一个 struct class 的实例来定义: struct class { char *name; struct class_attribute *class_attrs; struct class_device_attribute *class_dev_attrs; int (*hotp 阅读全文
posted @ 2019-07-07 21:42 樊伟胜 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 我们在本章中要考察最后的设备模型概念是类.一个类是一个设备的高级视图, 它抽象出 低级的实现细节. 驱动可以见到一个 SCSI 磁盘或者一个 ATA 磁盘, 在类的级别, 它们都 是磁盘. 类允许用户空间基于它们做什么来使用设备, 而不是它们如何被连接或者它们如 何工作. 几乎所有的类都在 sysf 阅读全文
posted @ 2019-07-07 21:41 樊伟胜 阅读(8962) 评论(0) 推荐(0) 编辑
摘要: class_simple 接口意图是易于使用, 以至于没人会抱怨没有暴露至少一个包含设备的被 分配的号的属性. 使用这个接口只不过是一对函数调用, 没有通常的和 Linux 设备模型 关联的样板. 第一步是创建类自身. 使用一个对 class_simple_create 的调用来完成: struct 阅读全文
posted @ 2019-07-07 21:41 樊伟胜 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 如同大部分驱动核心结构的情形, device_driver 结构常常被发现嵌到一个更高级的, 总 线特定的结构. lddbus 子系统不会和这样的趋势相反, 因此它已定义了它自己的 ldd_driver 结构: struct ldd_driver { char *version; struct mo 阅读全文
posted @ 2019-07-07 21:40 樊伟胜 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 设备模型跟踪所有对系统已知的驱动. 这个跟踪的主要原因是使驱动核心能匹配驱动和新 设备. 一旦驱动在系统中是已知的对象, 但是, 许多其他的事情变得有可能. 设备驱动可 输出和任何特定设备无关的信息和配置变量, 例如: 驱动由下列结构定义: struct device_driver { char * 阅读全文
posted @ 2019-07-07 21:36 樊伟胜 阅读(398) 评论(0) 推荐(0) 编辑
上一页 1 ··· 135 136 137 138 139 140 141 142 143 ··· 280 下一页