Linux Device Drivers

Third Edition Februar 2005
ISBN 978-0-596-00590-0
Seiten 636
EUR38.00, SFR64.90


Weitere Informationen zu diesem Buch

Inhaltsverzeichnis | Index | Probekapitel | Kolophon | Rezensionen |
Download der Beispiele |


Inhaltsverzeichnis

	

Preface

1. An Introduction to Device Drivers
     The Role of the Device Driver
     Splitting the Kernel
     Classes of Devices and Modules
     Security Issues
     Version Numbering
     License Terms
     Joining the Kernel Development Community
     Overview of the Book

2. Building and Running Modules
     Setting Up Your Test System
     The Hello World Module
     Kernel Modules Versus Applications
     Compiling and Loading
     The Kernel Symbol Table
     Preliminaries
     Initialization and Shutdown
     Module Parameters
     Doing It in User Space
     Quick Reference

3. Char Drivers
     The Design of scull
     Major and Minor Numbers
     Some Important Data Structures
     Char Device Registration
     open and release
     scull's Memory Usage
     read and write
     Playing with the New Devices
     Quick Reference

4. Debugging Techniques
     Debugging Support in the Kernel
     Debugging by Printing
     Debugging by Querying
     Debugging by Watching
     Debugging System Faults
     Debuggers and Related Tools

5. Concurrency and Race Conditions
     Pitfalls in scull
     Concurrency and Its Management
     Semaphores and Mutexes
     Completions
     Spinlocks
     Locking Traps
     Alternatives to Locking
     Quick Reference

6. Advanced Char Driver Operations
     ioctl
     Blocking I/O
     poll and select
     Asynchronous Notification
     Seeking a Device
     Access Control on a Device File
     Quick Reference

7. Time, Delays, and Deferred Work
     Measuring Time Lapses
     Knowing the Current Time
     Delaying Execution
     Kernel Timers
     Tasklets
     Workqueues
     Quick Reference

8. Allocating Memory
     The Real Story of kmalloc
     Lookaside Caches
     get_free_page and Friends
     vmalloc and Friends
     Per-CPU Variables
     Obtaining Large Buffers
     Quick Reference

9. Communicating with Hardware
     I/O Ports and I/O Memory
     Using I/O Ports
     An I/O Port Example
     Using I/O Memory
     Quick Reference

10. Interrupt Handling
     Preparing the Parallel Port
     Installing an Interrupt Handler
     Implementing a Handler
     Top and Bottom Halves
     Interrupt Sharing
     Interrupt-Driven I/O
     Quick Reference

11. Data Types in the Kernel
     Use of Standard C Types
     Assigning an Explicit Size to Data Items
     Interface-Specific Types
     Other Portability Issues
     Linked Lists
     Quick Reference

12. PCI Drivers
     The PCI Interface
     A Look Back: ISA
     PC/104 and PC/104+
     Other PC Buses
     SBus
     NuBus
     External Buses
     Quick Reference

13. USB Drivers
     USB Device Basics
     USB and Sysfs
     USB Urbs
     Writing a USB Driver
     USB Transfers Without Urbs
     Quick Reference

14. The Linux Device Model
     Kobjects, Ksets, and Subsystems
     Low-Level Sysfs Operations
     Hotplug Event Generation
     Buses, Devices, and Drivers
     Classes
     Putting It All Together
     Hotplug
     Dealing with Firmware
     Quick Reference

15. Memory Mapping and DMA
     Memory Management in Linux
     The mmap Device Operation
     Performing Direct I/O
     Direct Memory Access
     Quick Reference

16. Block Drivers
     Registration
     The Block Device Operations
     Request Processing
     Some Other Details
     Quick Reference

17. Network Drivers
     How snull Is Designed
     Connecting to the Kernel
     The net_device Structure in Detail
     Opening and Closing
     Packet Transmission
     Packet Reception
     The Interrupt Handler
     Receive Interrupt Mitigation
     Changes in Link State
     The Socket Buffers
     MAC Address Resolution
     Custom ioctl Commands
     Statistical Information
     Multicast
     A Few Other Details
     Quick Reference

18. TTY Drivers
     A Small TTY Driver
     tty_driver Function Pointers
     TTY Line Settings
     ioctls
     proc and sysfs Handling of TTY Devices
     The tty_driver Structure in Detail
     The tty_operations Structure in Detail
     The tty_struct Structure in Detail
     Quick Reference

Bibliography

Index


Zurück zu Linux Device Drivers


Themen

Buchreihen

Special Interest

International Sites

O'Reilly China O'Reilly France O'Reilly USA O'Reilly Japan O'Reilly Taiwan