| - Copyright
- Preface
- 1. Solaris Kernel and Device Tree
- 2. Overview of Solaris Device Drivers
- 3. Multithreading
- 4. Properties and Events
- 5. Driver Autoconfiguration
- 6. Device Access -- Programmed I/O
- 7. Interrupt Handlers
- 8. Direct Memory Access (DMA)
- DMA Model
- Types of Device DMA
- Bus-Master DMA
- Third-party DMA
- First-party DMA
- Types of Host Platform DMA
- DMA Software Components: Handles, Windows, and Cookies
- DMA Operations
- Performing Bus-Master DMA Transfers
- Performing First-Party DMA Transfers
- Performing Third-Party DMA Transfers
- DMA Attributes
- Managing DMA Resources
- Object Locking
- Allocating a DMA Handle
- Allocating DMA Resources
- Determining Maximum Burst Sizes
- Allocating Private DMA Buffers
- Handling Resource Allocation Failures
- Programming the DMA Engine
- Freeing the DMA Resources
- Freeing the DMA Handle
- Canceling DMA Callbacks
- Synchronizing Memory Objects
- DMA Windows
- 9. Power Management
- 10. Drivers for Character Devices
- 11. Drivers for Block Devices
- 12. Mapping Device and Kernel Memory
- 13. Device Context Management
- 14. SCSI Target Drivers
- 15. SCSI Host Bus Adapter Drivers
- 16. Drivers for Network Devices
- 17. Compiling, Loading, Packaging, and Testing Drivers
- 18. Debugging
- 19. Recommended Coding Practices
- A. Hardware Overview
- B. Summary of Solaris 9 DDI/DKI Services
- C. Making a Device Driver 64-Bit Ready
- Index
| |