⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.html

📁 驱动程序在 Linux 内核里扮演着特殊的角色. 它们是截然不同的"黑盒子", 使硬件的特殊的一部分响应定义好的内部编程接口. 它们完全隐藏了设备工作的细节. 用户的活动通过一套标准化的调用来进行,
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<dt><span class="sect2"><a href="ch07s04.html#TheTimerAPI.sect">7.4.1. 定时器 API</a></span></dt>
<dt><span class="sect2"><a href="ch07s04.html#TheImplementaionofKernelTimers.sect">7.4.2. 内核定时器的实现</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch07s05.html">7.5. Tasklets 机制</a></span></dt>
<dt><span class="sect1"><a href="ch07s06.html">7.6. 工作队列</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="ch07s06.html#TheSharedQueue.sect">7.6.1. 共享队列</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="ch07s07.html">7.7. 快速参考</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch07s07.html#Timekeeping.sect">7.7.1. 时间管理</a></span></dt>
<dt><span class="sect2"><a href="ch07s07.html#Delays.sect">7.7.2. 延迟</a></span></dt>
<dt><span class="sect2"><a href="ch07s07.html#KernelTimers.sect">7.7.3. 内核定时器</a></span></dt>
<dt><span class="sect2"><a href="ch07s07.html#Taskletsqr.sect">7.7.4. Tasklets 机制</a></span></dt>
<dt><span class="sect2"><a href="ch07s07.html#workqueueskr.sect">7.7.5. 工作队列</a></span></dt>
</dl></dd>
</dl></dd>
<dt><span class="chapter"><a href="ch08.html">8. 分配内存</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="ch08.html#TheRealStoryofkmalloc.sect">8.1. kmalloc 的真实故事</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch08.html#TheFlagsArgument.sect">8.1.1. flags 参数</a></span></dt>
<dt><span class="sect2"><a href="ch08.html#TheSizeArgument.sect">8.1.2.  size 参数</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch08s02.html">8.2. 后备缓存</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch08s02.html#AscullBasedontheSlabCachesscullc.sect">8.2.1. 一个基于 Slab 缓存的 scull: scullc</a></span></dt>
<dt><span class="sect2"><a href="ch08s02.html#MemoryPools.sect">8.2.2. 内存池</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch08s03.html">8.3. get_free_page 和其友</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch08s03.html#AscullUsingWholePagesscullp.sect">8.3.1. 一个使用整页的 scull: scullp</a></span></dt>
<dt><span class="sect2"><a href="ch08s03.html#TheallocpagesInterface.sect">8.3.2. alloc_pages 接口</a></span></dt>
<dt><span class="sect2"><a href="ch08s03.html#vallocandFriends.sect">8.3.3. vmalloc 和 其友</a></span></dt>
<dt><span class="sect2"><a href="ch08s03.html#AscullUsingVirtualAddressesscullv.sect">8.3.4. 一个使用虚拟地址的 scull : scullv</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch08s04.html">8.4. 每-CPU 的变量</a></span></dt>
<dt><span class="sect1"><a href="ch08s05.html">8.5. 获得大量缓冲</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="ch08s05.html#AcquiringaDedicatedBufferatBootTime.sect">8.5.1. 在启动时获得专用的缓冲</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="ch08s06.html">8.6. 快速参考</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="ch09.html">9. 与硬件通讯</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="ch09.html#IOPortsandIOMemor.sect">9.1. I/O 端口和 I/O 内存</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="ch09.html#IORegistersandConventionalMemory.sect">9.1.1. I/O 寄存器和常规内存</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="ch09s02.html">9.2. 使用 I/O 端口</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch09s02.html#IOPortAllocation.sect">9.2.1. I/O 端口分配</a></span></dt>
<dt><span class="sect2"><a href="ch09s02.html#ManipulatingIOports.sect">9.2.2. 操作 I/O 端口</a></span></dt>
<dt><span class="sect2"><a href="ch09s02.html#IOPortAccessfromUserSpace.sect">9.2.3. 从用户空间的 I/O 存取</a></span></dt>
<dt><span class="sect2"><a href="ch09s02.html#StringOperations.sect">9.2.4. 字串操作</a></span></dt>
<dt><span class="sect2"><a href="ch09s02.html#PausingIO.sect">9.2.5. 暂停 I/O</a></span></dt>
<dt><span class="sect2"><a href="ch09s02.html#PlatformDependencies.sect">9.2.6. 平台依赖性</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch09s03.html">9.3. 一个 I/O 端口例子</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch09s03.html#AnOverviewoftheParallelPort.sect">9.3.1. 并口纵览</a></span></dt>
<dt><span class="sect2"><a href="ch09s03.html#ASampleDriver.sect">9.3.2. 一个例子驱动</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch09s04.html">9.4. 使用 I/O 内存</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch09s04.html#IOMemoryAllocationandMapping.sect">9.4.1. I/O 内存分配和映射</a></span></dt>
<dt><span class="sect2"><a href="ch09s04.html#AccessingIOMemory.sect">9.4.2. 存取 I/O 内存</a></span></dt>
<dt><span class="sect2"><a href="ch09s04.html#PortsasIOMemory.sect">9.4.3. 作为 I/O 内存的端口</a></span></dt>
<dt><span class="sect2"><a href="ch09s04.html#ReusingshortforIOMemory.sect">9.4.4. 重用 short 为 I/O 内存</a></span></dt>
<dt><span class="sect2"><a href="ch09s04.html#ISAMemoryBelow1MB.sect">9.4.5. 在 1 MB 之下的 ISA 内存</a></span></dt>
<dt><span class="sect2"><a href="ch09s04.html#isareadbandFriends.sect">9.4.6. isa_readb 和其友</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch09s05.html">9.5. 快速参考</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="ch10.html">10. 中断处理</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="ch10.html#PreparingtheParallelPort.sect">10.1. 准备并口</a></span></dt>
<dt><span class="sect1"><a href="ch10s02.html">10.2. 安装一个中断处理</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch10s02.html#TheprocInterface.sect">10.2.1. /proc 接口</a></span></dt>
<dt><span class="sect2"><a href="ch10s02.html#AutodetectingtheIRQNumber.sect">10.2.2. 自动检测 IRQ 号</a></span></dt>
<dt><span class="sect2"><a href="ch10s02.html#FastandSlowHandlers.sect">10.2.3. 快速和慢速处理</a></span></dt>
<dt><span class="sect2"><a href="ch10s02.html#ImplementingaHandler.sect">10.2.4. 实现一个处理</a></span></dt>
<dt><span class="sect2"><a href="ch10s02.html#HandlerArgumentsandReturnValue.sect">10.2.5. 处理者的参数和返回值</a></span></dt>
<dt><span class="sect2"><a href="ch10s02.html#EnablingandDisablingInterrupts.sect">10.2.6. 使能和禁止中断</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch10s03.html">10.3. 前和后半部</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch10s03.html#Tasklet.sect">10.3.1. Tasklet 实现</a></span></dt>
<dt><span class="sect2"><a href="ch10s03.html#Workqueues.sect">10.3.2. 工作队列</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch10s04.html">10.4. 中断共享</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch10s04.html#InstallingaSharedHandler.sect">10.4.1. 安装一个共享的处理者</a></span></dt>
<dt><span class="sect2"><a href="ch10s04.html#RunningtheHandler.sect">10.4.2. 运行处理者</a></span></dt>
<dt><span class="sect2"><a href="ch10s04.html#TheprocInterfaceandShardInterrupts.sect">10.4.3. /proc 接口和共享中断</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch10s05.html">10.5. 中断驱动 I/O</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="ch10s05.html#AWriteBufferingExample.sect">10.5.1. 一个写缓存例子</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="ch10s06.html">10.6. 快速参考</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="ch11.html">11. 内核中的数据类型</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="ch11.html#UseofStandardCTypes.sect">11.1. 标准 C 类型的使用</a></span></dt>
<dt><span class="sect1"><a href="ch11s02.html">11.2. 安排一个明确大小给数据项</a></span></dt>
<dt><span class="sect1"><a href="ch11s03.html">11.3. 接口特定的类型</a></span></dt>
<dt><span class="sect1"><a href="ch11s04.html">11.4. 其他移植性问题</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch11s04.html#TimeIntervals.sect">11.4.1. 时间间隔</a></span></dt>
<dt><span class="sect2"><a href="ch11s04.html#PageSize.sect">11.4.2. 页大小</a></span></dt>
<dt><span class="sect2"><a href="ch11s04.html#ByteOrder.sect">11.4.3. 字节序</a></span></dt>
<dt><span class="sect2"><a href="ch11s04.html#DataAlignment.sect">11.4.4. 数据对齐</a></span></dt>
<dt><span class="sect2"><a href="ch11s04.html#PointersandErrorValues.sect">11.4.5. 指针和错误值</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch11s05.html">11.5. 链表</a></span></dt>
<dt><span class="sect1"><a href="ch11s06.html">11.6. 快速参考</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="ch12.html">12. PCI 驱动</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="ch12.html#ThePCIInterface.sect1">12.1. PCI 接口</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch12.html#PCIAddressing.sect2">12.1.1. PCI 寻址</a></span></dt>
<dt><span class="sect2"><a href="ch12.html#BootTime.sect2">12.1.2. 启动时间</a></span></dt>
<dt><span class="sect2"><a href="ch12.html#ConfigurationRegistersandInitialization.sect2">12.1.3. 配置寄存器和初始化</a></span></dt>
<dt><span class="sect2"><a href="ch12.html#MODULEDEVICETABLE.sect2">12.1.4. MODULEDEVICETABLE 宏</a></span></dt>
<dt><span class="sect2"><a href="ch12.html#RegisteringaPCIDriver.sect2">12.1.5. 注册一个 PCI 驱动</a></span></dt>
<dt><span class="sect2"><a href="ch12.html#OldStypePCIProbing.sect2">12.1.6. 老式 PCI 探测</a></span></dt>
<dt><span class="sect2"><a href="ch12.html#EnablingthePCIDevice.sect2">12.1.7. 使能 PCI 设备</a></span></dt>
<dt><span class="sect2"><a href="ch12.html#AccessingtheConfigurationSpace.sect2">12.1.8. 存取配置空间</a></span></dt>
<dt><span class="sect2"><a href="ch12.html#AccessingtheIOandMemorySpaces.sect2">12.1.9. 存取 I/O 和内存空间</a></span></dt>
<dt><span class="sect2"><a href="ch12.html#PCIInterrupts.sect2">12.1.10. PCI 中断</a></span></dt>
<dt><span class="sect2"><a href="ch12.html#HardwareAbstractions.sect2">12.1.11. 硬件抽象</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch12s02.html">12.2. 回顾: ISA</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch12s02.html#HardwareResources.sect2">12.2.1. 硬件资源</a></span></dt>
<dt><span class="sect2"><a href="ch12s02.html#ISAProgramming.sect2">12.2.2. ISA 编程</a></span></dt>
<dt><span class="sect2"><a href="ch12s02.html#ThePlugandPlaySpecification.sect2">12.2.3. 即插即用规范</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch12s03.html">12.3. PC/104 和 PC/104+</a></span></dt>
<dt><span class="sect1"><a href="ch12s04.html">12.4. 其他的 PC 总线</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch12s04.html#MCA.sect2">12.4.1. MCA 总线</a></span></dt>
<dt><span class="sect2"><a href="ch12s04.html#EISA.sect2">12.4.2. EISA 总线</a></span></dt>
<dt><span class="sect2"><a href="ch12s04.html#VLB.sect2">12.4.3. VLB 总线</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch12s05.html">12.5. SBus</a></span></dt>
<dt><span class="sect1"><a href="ch12s06.html">12.6. NuBus 总线</a></span></dt>
<dt><span class="sect1"><a href="ch12s07.html">12.7. 外部总线</a></span></dt>
<dt><span class="sect1"><a href="ch12s08.html">12.8. 快速参考</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="ch13.html">13. USB 驱动</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="ch13.html#USBDeviceBasics.sect1">13.1. USB 设备基础知识</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch13.html#Endpoints.sect2">13.1.1. 端点</a></span></dt>
<dt><span class="sect2"><a href="ch13.html#Interfaces.sect2">13.1.2. 接口</a></span></dt>
<dt><span class="sect2"><a href="ch13.html#Congurations.sect2">13.1.3. 配置</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch13s02.html">13.2. USB 和 sysfs</a></span></dt>
<dt><span class="sect1"><a href="ch13s03.html">13.3. USB 的 Urbs</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch13s03.html#structurb.sect2">13.3.1. 结构 struct urb</a></span></dt>
<dt><span class="sect2"><a href="ch13s03.html#CreatingandDestroyingUrbs.sect2">13.3.2. 创建和销毁 urb</a></span></dt>
<dt><span class="sect2"><a href="ch13s03.html#SubmittingUrbs.sect2">13.3.3. 提交 urb</a></span></dt>
<dt><span class="sect2"><a href="ch13s03.html#CompletingUrbsTheCompletionCallbackHandler.sect2">13.3.4. 完成 urb: 完成回调处理者</a></span></dt>
<dt><span class="sect2"><a href="ch13s03.html#CancelingUrbs.sect2">13.3.5. 取消 urb</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch13s04.html">13.4. 编写一个 USB 驱动</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch13s04.html#WhatDevicesDoestheDriverSupport.sect2">13.4.1. 驱动支持什么设备</a></span></dt>
<dt><span class="sect2"><a href="ch13s04.html#RegisteringaUSBDriver.sect2">13.4.2. 注册一个 USB 驱动</a></span></dt>
<dt><span class="sect2"><a href="ch13s04.html#SubmittingandControllingaUrb.sect2">13.4.3. 提交和控制一个 urb</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch13s05.html">13.5. 无 urb 的 USB 传送</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch13s05.html#usb_bulk_msg.sect2">13.5.1. usb_bulk_msg 接口</a></span></dt>
<dt><span class="sect2"><a href="ch13s05.html#usb_control_msg.sect2">13.5.2. usb_control_msg 接口</a></span></dt>
<dt><span class="sect2"><a href="ch13s05.html#OtherUSBDataFunctions.sect2">13.5.3. 使用 USB 数据函数</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch13s06.html">13.6. 快速参考</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="ch14.html">14. Linux 设备模型</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="ch14.html#KobjectsKsetsandSubsystems.sect">14.1. Kobjects, Ksets 和 Subsystems </a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch14.html#KobjectBasics.sect">14.1.1. Kobject 基础</a></span></dt>
<dt><span class="sect2"><a href="ch14.html#KobjectHierachiesKsetsandSubsystems.sect">14.1.2. kobject 层次, kset, 和子系统</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch14s02.html">14.2. 低级 sysfs 操作</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch14s02.html#DefaultAttributes.sect">14.2.1. 缺省属性</a></span></dt>
<dt><span class="sect2"><a href="ch14s02.html#NondefaultAttributes.sect">14.2.2. 非缺省属性</a></span></dt>
<dt><span class="sect2"><a href="ch14s02.html#BinaryAttributes.sect">14.2.3. 二进制属性</a></span></dt>
<dt><span class="sect2"><a href="ch14s02.html#SymbolicLinks.sect">14.2.4. 符号连接</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch14s03.html">14.3. 热插拔事件产生</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="ch14s03.html#HotplugOperations.sect">14.3.1. 热插拔操作</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="ch14s04.html">14.4. 总线, 设备, 和驱动</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch14s04.html#Buses.sect">14.4.1. 总线</a></span></dt>
<dt><span class="sect2"><a href="ch14s04.html#Devices.sect">14.4.2. 设备</a></span></dt>
<dt><span class="sect2"><a href="ch14s04.html#DeviceDrivers.sect2">14.4.3. 设备驱动</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="ch14s05.html">14.5. 类</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="ch14s05.html#TheclasssimpleInterface.sect2">14.5.1. class_simple 接口</a></span></dt>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -