| - 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)
- 9. Power Management
- 10. Drivers for Character Devices
- Character Driver Structure Overview
- Character Device Autoconfiguration
- Device Access (Character Drivers)
- open() Entry Point (Character Drivers)
- close() Entry Point (Character Drivers)
- I/O Request Handling
- User Addresses
- Vectored I/O
- Synchronous Versus Asynchronous I/O
- Data Transfer Methods
- Mapping Device Memory
- segmap() Entry Point
- devmap() Entry Point
- Multiplexing I/O on File Descriptors
- Miscellaneous I/O Control
- ioctl() Entry Point (Character Drivers)
- I/O Control Support for 64-Bit Capable Device Drivers
- Handling copyout() Overflow
- 32-bit and 64-bit Data Structure Macros
- How Do the Structure Macros Work?
- When to Use Structure Macros
- Declaring and Initializing Structure Handles
- Operations on Structure Handles
- Other Operations
- 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
| |