| Skip Navigation Links | |
| Exit Print View | |
|
Writing Device Drivers Oracle Solaris 11.1 Information Library |
Part I Designing Device Drivers for the Oracle Solaris Platform
1. Overview of Oracle Solaris Device Drivers
2. Oracle Solaris Kernel and Device Tree
5. Managing Events and Queueing Tasks
7. Device Access: Programmed I/O
10. Mapping Device and Kernel Memory
13. Hardening Oracle Solaris Drivers
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
22. Compiling, Loading, Packaging, and Testing Drivers
23. Debugging, Testing, and Tuning Device Drivers
24. Recommended Coding Practices
B. Summary of Oracle Solaris DDI/DKI Services
C. Making a Device Driver 64-Bit Ready
Cache
Callback Functions
DMA Callback Example
cb_ops Structure
Compiling and Linking the Driver
Multiple-Configuration Devices
DMA Transfers (Asynchronous)
Character Device Autoconfiguration
cb_ops Structure
close() Entry Point (Character Drivers)
I/O Request Handling
Multiplexing I/O on File Descriptors
Overview of the Character Driver Structure
Miscellaneous I/O Control
Mapping Device Memory
minphys() Entry Point
open() Entry Point (Character Drivers)
Entry Points for Character Device Drivers
DMA Transfers (Synchronous)
strategy() Entry Point
Transport Structure Cloning
close() Entry Point (Block Drivers)
close() Entry Point (Character Drivers)
Test the Layered Driver
Use cmn_err() to Log Driver Activity
Returning Errors
print() Entry Point (Block Drivers)
Binding a Driver to a Device
Compiling and Linking the Driver
Kernel Thread Control and Synchronization Functions
Signaling the Condition
Initializing Condition Variables
Initializing Condition Variables
cv_wait() and cv_timedwait() Functions
cv_timedwait_sig() Function
Waiting for the Condition
cv_wait_sig() Function
Condition Variables in Thread Synchronization
Initializing Condition Variables
Testing Drivers
Hot Reinsertion
attach() Entry Point
detach() Entry Point
getinfo() Entry Point
Console Frame Buffer Drivers
Developing, Testing, and Debugging Console Frame Buffer Drivers
Oracle Solaris Consoles and the Kernel Terminal Emulator
Console Visual I/O Interfaces
Driver Context
DMA Model
User Addresses
User Addresses
System Power Management
Postmortem Debugging
Capture System Crash Dumps
csi_arq_status Structure Changes
cv_timedwait() and cv_timedwait_sig() Argument Changes
cv_timedwait() and cv_timedwait_sig() Argument Changes