Linux Device Drivers and Kernel Development
An introduction to device drivers
Kernel Module Programming Basics
Kernel Debugging Techniques
Accessing Hardware Mechanisms
The proc file system programming
Communicating with Hardware
Hardware and Interrupt Handling
Tasklets and Bottom halves
Kernel Threads
Sleep and wakeup (wait queues)
Buffer allocation
Memory Mapping and DMA
Memory Management
Kernel Synchronization
Concurrency and Race Conditions
Time, Delays and Deferred Work
The Linux Device Model
Character Device Drivers
Enhanced Character Device Drivers
Programming with ioctl( )
Netlink socket interface
Network Drivers
Adding a Driver to the Kernel Tree
A sample device driver project