Document Information
Preface
Part I Designing Device Drivers for the Solaris Platform
1. Overview of Solaris Device Drivers
2. Solaris Kernel and Device Tree
3. Multithreading
4. Properties
5. Managing Events and Queueing Tasks
6. Driver Autoconfiguration
7. Device Access: Programmed I/O
8. Interrupt Handlers
9. Direct Memory Access (DMA)
10. Mapping Device and Kernel Memory
11. Device Context Management
12. Power Management
13. Hardening Solaris Drivers
14. Layered Driver Interface (LDI)
Part II Designing Specific Kinds of Device Drivers
15. Drivers for Character Devices
16. Drivers for Block Devices
17. SCSI Target Drivers
18. SCSI Host Bus Adapter Drivers
19. Drivers for Network Devices
20. USB Drivers
Part III Building a Device Driver
21. Compiling, Loading, Packaging, and Testing Drivers
22. Debugging, Testing, and Tuning Device Drivers
23. Recommended Coding Practices
Part IV Appendixes
A. Hardware Overview
B. Summary of Solaris DDI/DKI Services
C. Making a Device Driver 64-Bit Ready
D. Console Frame Buffer Drivers
Index
The appendixes provide the following background material:
Appendix A, Hardware Overview discusses multiplatform hardware issues for device drivers.
Appendix B, Summary of Solaris DDI/DKI Services provides tables of kernel functions for device drivers. Deprecated functions are indicated as well.
Appendix C, Making a Device Driver 64-Bit Ready provides guidelines for updating a device driver to run in a 64-bit environment.
Appendix D, Console Frame Buffer Drivers describes how to add the necessary interfaces to a frame buffer driver to enable the driver to interact with the Solaris kernel terminal emulator.