| - 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
| |