Skip to Content
Sun and Oracle
Channel Sun
How to Buy
Log In
English
docs.sun.com Home
>
Solaris 8 Software Developer Collection
> Writing Device Drivers
Writing Device Drivers
Search only this book
Search Help
Contained Within
Solaris 8 Software Developer Collection
Find More Documentation
Browse Documentation Titles
Browse Product Documentation
Featured Support Resources
Sun Training Courses
BigAdmin System Admininstration Portal
Sun Support Center
Sun Solve
Download this book in PDF (801 KB)
Writing Device Drivers
Book Information
Preface
Who Should Use This Book
How This Book Is Organized
Related Books and Papers
Ordering Sun Documents
Accessing Sun Documentation Online
What Typographic Conventions Mean
Shell Prompts in Command Examples
1. Solaris Kernel and Device Tree
What Is the Kernel?
Device Tree
2. Overview of Solaris Device Drivers
What Is a Device Driver?
Types of Device Drivers
Driver Module Entry Points
Driver Context
Interrupt Handling
Callback Functions
Printing Messages
Device IDs
Software State Management
Dynamic Memory Allocation
Programmed I/O Device Access
Direct Memory Access (DMA)
Properties
Driver and Device Statistics
64-Bit Considerations
3. Multithreading
Locking Primitives
Thread Synchronization
Choosing a Locking Scheme
4. Properties
Property Names
5. Autoconfiguration
Driver Loading and Unloading
Data Structures
Loadable Driver Interfaces
Device Configuration Concepts
Device IDs
6. Device Access - Programmed I/O
Device Memory
Device Access Functions
7. Interrupt Handlers
Interrupt Handler Overview
Device Interrupts
Registering Interrupts
Interrupt Handlers
Handling High-Level Interrupts
8. Direct Memory Access (DMA)
DMA Model
Types of Device DMA
Types of Host Platform DMA
DMA Software Components: Handles, Windows, and Cookies
DMA Operations
DMA Windows
9. Power Management
Power Management Framework
Device Power Management Model
System Power Management Model
Device Access
Power Management Flow of Control
Changes to Power Management Interfaces
10. Drivers for Character Devices
Character Driver Structure Overview
Entry Points
Autoconfiguration
Device Access
I/O Request Handling
Mapping Device Memory
Multiplexing I/O on File Descriptors
Miscellaneous I/O Control
32-bit and 64-bit Data Structure Macros
11. Drivers for Block Devices
Block Driver Structure Overview
File I/O
Entry Points
Autoconfiguration
Controlling Device Access
Synchronous Data Transfers
Asynchronous Data Transfers
Miscellaneous Entry Points
Disk Device Drivers
12. Mapping Device or Kernel Memory
Memory Mapping Operations
Exporting the Mapping
Associating Device Memory With User Mappings
Associating Kernel Memory With User Mappings
13. Device Context Management
What Is a Device Context?
Context Management Model
Context Management Operation
14. SCSI Target Drivers
SCSI Target Driver Overview
Reference Documents
Sun Common SCSI Architecture Overview
SCSI Target Drivers
Building and Transporting a Command
SCSI Options
15. SCSI Host Bus Adapter Drivers
SCSI Interface
SCSA HBA Interfaces
HBA Driver Dependency and Configuration Issues
SCSA HBA Entry Points
SCSI HBA Driver Specific Issues
Support for Queuing
16. Compiling, Loading, Packaging, and Testing Drivers
Driver Code Layout Structure
Preparing for Installation
Installing and Removing Drivers
Removing the Driver
Loading Drivers
Unloading Drivers
Driver Packaging
Testing
17. Debugging
Machine Configuration
Recommended Coding Practices
Runtime Debugging Tools
Post-Mortem Debugging
A. Hardware Overview
SPARC Processor Issues
IA Processor Issues
Endianness
Store Buffers
System Memory Model
Bus Architectures
Bus Specifics
Device Issues
PROM on SPARC Machines
B. Summary of Solaris 8 DDI/DKI Services
Introduction
C. Making a Device Driver 64-Bit Ready
Introduction
General Conversion Steps
Well-known ioctl Interfaces
D. DDI Interfaces for Cluster-Aware Drivers
Device Classification
Minor Number Space Management
Device Interfaces
E. Hardened Drivers
Overview of the Process
Responsibilities of the Driver Writer
Index
Numbers and Symbols
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
News Center
About Sun
Contact Sun
Terms of Use
Privacy
Copyright
1994-2009
Sun Microsystems, Inc.