| 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
GLDv3 MAC Registration Functions
GLDv3 MAC Registration Data Structures
Large Segment (or Send) Offload
GLDv3 MAC Registration Functions
GLDv3 MAC Registration Functions
GLDv3 State Change Notifications
GLDv3 MAC Registration Functions
Receive Data Path
GLDv3 MAC Registration Functions
Devices as Special Files
Block Device Autoconfiguration
Block Device Autoconfiguration
rmallocmap() and rmallocmap_wait() Argument Changes
GLDv3 Capabilities
GLDv3 Properties
GLDv3 Network Statistics
GLDv3 Properties
GLDv3 Properties
Transmit Data Path
Receive Data Path
Detecting Kernel Memory Leaks
Writing Debugger Commands With mdb
Using the mdb Modular Debugger
Obtaining Device Tree Information
Retrieving Driver Soft State Information
Getting Started With the Modular Debugger
Dynamic Memory Allocation
Memory Allocation and Deallocation Functions
Detecting Kernel Memory Leaks
Virtual Memory
Context Management Model
System Memory Model
Store Buffers
Device Interrupts
Creating Minor Device Nodes
Updating Driver Information
Devices as Special Files
minphys() Entry Point
Requests
Associating User Mappings With Driver Notifications
GLDv3 MAC Registration Functions
GLDv3 MAC Registration Functions
Loading and Unloading Test Modules
modldrv Structure
modlinkage Structure
Loading and Unloading Test Modules
Copying the Driver to a Module Directory
Module Functions
GLDv2 Driver Requirements
Loading and Unloading Test Modules
Loading and Unloading Drivers
open() Entry Point (Block Drivers)
Device Interrupts
MSI Interrupts
Device Interrupts
MSI-X Interrupts
Multiplexing I/O on File Descriptors
Context Management Model
Initializing Condition Variables
cb_ops Structure
Multithreaded Execution Environment
Locking Primitives
Condition Variables in Thread Synchronization
Setting Up Mutexes
Mutual-Exclusion Locks
Kernel Thread Control and Synchronization Functions
Potential Locking Pitfalls
Mutual-Exclusion Locks
High-Level Interrupts
High-Level Interrupts
Registering Drivers to Gain Device Access
Use mutex_owned() to Validate and Document Locking Requirements