Book description
Device drivers literally drive everything you're interested in--disks, monitors, keyboards, modems--everything outside the computer chip and memory. And writing device drivers is one of the few areas of programming for the Linux operating system that calls for unique, Linux-specific knowledge. For years now, programmers have relied on the classic Linux Device Drivers from O'Reilly to master this critical subject. Now in its third edition, this bestselling guide provides all the information you'll need to write drivers for a wide range of devices.Over the years the book has helped countless programmers learn:
- how to support computer peripherals under the Linux operating system
- how to develop and write software for new hardware under Linux
- the basics of Linux operation even if they are not expecting to write a driver
Publisher resources
Table of contents
- Linux Device Drivers, 3rd Edition
- A Note Regarding Supplemental Files
- Preface
- 1. An Introduction to Device Drivers
- 2. Building and Running Modules
- 3. Char Drivers
- 4. Debugging Techniques
- 5. Concurrency and Race Conditions
-
6. Advanced Char Driver Operations
- 6.1. ioctl
- 6.2. Blocking I/O
- 6.3. poll and select
- 6.4. Asynchronous Notification
- 6.5. Seeking a Device
- 6.6. Access Control on a Device File
- 6.7. Quick Reference
- 7. Time, Delays, and Deferred Work
- 8. Allocating Memory
- 9. Communicating with Hardware
- 10. Interrupt Handling
- 11. Data Types in the Kernel
-
12. PCI Drivers
-
12.1. The PCI Interface
- 12.1.1. PCI Addressing
- 12.1.2. Boot Time
- 12.1.3. Configuration Registers and Initialization
- 12.1.4. MODULE_DEVICE_TABLE
- 12.1.5. Registering a PCI Driver
- 12.1.6. Old-Style PCI Probing
- 12.1.7. Enabling the PCI Device
- 12.1.8. Accessing the Configuration Space
- 12.1.9. Accessing the I/O and Memory Spaces
- 12.1.10. PCI Interrupts
- 12.1.11. Hardware Abstractions
- 12.2. A Look Back: ISA
- 12.3. PC/104 and PC/104+
- 12.4. Other PC Buses
- 12.5. SBus
- 12.6. NuBus
- 12.7. External Buses
- 12.8. Quick Reference
-
12.1. The PCI Interface
- 13. USB Drivers
-
14. The Linux Device Model
- 14.1. Kobjects, Ksets, and Subsystems
- 14.2. Low-Level Sysfs Operations
- 14.3. Hotplug Event Generation
- 14.4. Buses, Devices, and Drivers
- 14.5. Classes
- 14.6. Putting It All Together
- 14.7. Hotplug
- 14.8. Dealing with Firmware
- 14.9. Quick Reference
-
15. Memory Mapping and DMA
- 15.1. Memory Management in Linux
- 15.2. The mmap Device Operation
- 15.3. Performing Direct I/O
-
15.4. Direct Memory Access
- 15.4.1. Overview of a DMA Data Transfer
- 15.4.2. Allocating the DMA Buffer
- 15.4.3. Bus Addresses
-
15.4.4. The Generic DMA Layer
- 15.4.4.1. Dealing with difficult hardware
- 15.4.4.2. DMA mappings
- 15.4.4.3. Setting up coherent DMA mappings
- 15.4.4.4. DMA pools
- 15.4.4.5. Setting up streaming DMA mappings
- 15.4.4.6. Single-page streaming mappings
- 15.4.4.7. Scatter/gather mappings
- 15.4.4.8. PCI double-address cycle mappings
- 15.4.4.9. A simple PCI DMA example
- 15.4.5. DMA for ISA Devices
- 15.5. Quick Reference
- 16. Block Drivers
-
17. Network Drivers
- 17.1. How snull Is Designed
- 17.2. Connecting to the Kernel
- 17.3. The net_device Structure in Detail
- 17.4. Opening and Closing
- 17.5. Packet Transmission
- 17.6. Packet Reception
- 17.7. The Interrupt Handler
- 17.8. Receive Interrupt Mitigation
- 17.9. Changes in Link State
- 17.10. The Socket Buffers
- 17.11. MAC Address Resolution
- 17.12. Custom ioctl Commands
- 17.13. Statistical Information
- 17.14. Multicast
- 17.15. A Few Other Details
- 17.16. Quick Reference
- 18. TTY Drivers
- 19. Bibliography
- Index
- About the Authors
- Copyright
Product information
- Title: Linux Device Drivers, 3rd Edition
- Author(s):
- Release date: February 2005
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9780596005900
You might also like
book
Linux Device Drivers, Second Edition
This book is for anyone who wants to support computer peripherals under the Linux operating system …
book
Linux Device Drivers Development
Learn to develop customized device drivers for your embedded Linux system About This Book Learn to …
book
Linux Device Driver Development - Second Edition
Get up to speed with the most important concepts in driver development and focus on common …
book
Mastering Linux Device Driver Development
Master the art of developing customized device drivers for your embedded Linux systems Key Features Stay …