Part I Designing Device Drivers for the Solaris Platform
1. Overview of Solaris Device Drivers
2. Solaris Kernel and Device Tree
5. Managing Events and Queueing Tasks
7. Device Access: Programmed I/O
10. Mapping Device and Kernel Memory
Sun Fault Management Architecture I/O Fault Services
What Is Predictive Self-Healing?
Diagnosis, Suspect Lists, and Fault Events
Message IDs and Dictionary Files
Declaring Fault Management Capabilities
Cleaning Up Fault Management Resources
Getting the Fault Management Capability Bit Mask
Fault Management Data and Status Structure
Standard Leaf Device Diagnosis
Defensive Programming Techniques for Solaris Device Drivers
Using Separate Device Driver Instances
Exclusive Use of DDI Access Handles
Corruption of Device Management and Control Data
Additional Programming Considerations
Threats From Top-Down Requests
Using Scripts to Automate the Test Process
14. Layered Driver Interface (LDI)
Part II Designing Specific Kinds of Device Drivers
15. Drivers for Character Devices
18. SCSI Host Bus Adapter Drivers
19. Drivers for Network Devices
Part III Building a Device Driver
21. Compiling, Loading, Packaging, and Testing Drivers
22. Debugging, Testing, and Tuning Device Drivers
23. Recommended Coding Practices
B. Summary of Solaris DDI/DKI Services
C. Making a Device Driver 64-Bit Ready
Fault Management Architecture (FMA) I/O Fault Services enable driver developers to integrate fault management capabilities into I/O device drivers. The Solaris I/O fault services framework defines a set of interfaces that enable all drivers to coordinate and perform basic error handling tasks and activities. The Solaris FMA as a whole provides for error handling and fault diagnosis, in addition to response and recovery. FMA is a component of Sun's Predictive Self-Healing strategy.
A driver is considered hardened when it uses the defensive programming practices described in this document in addition to the I/O fault services framework for error handling and diagnosis. The driver hardening test harness tests that the I/O fault services and defensive programming requirements have been correctly fulfilled.
This document contains the following sections:
Sun Fault Management Architecture I/O Fault Services provides a reference for driver developers who want to integrate fault management capabilities into I/O device drivers.
Defensive Programming Techniques for Solaris Device Drivers provides general information about how to defensively write a Solaris device driver.
Driver Hardening Test Harness is a driver development tool that injects simulated hardware faults when the driver under development accesses its hardware.