JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Writing Device Drivers     Oracle Solaris 10 1/13 Information Library
search filter icon
search icon

Document Information

Preface

Part I Designing Device Drivers for the Oracle Solaris Platform

1.  Overview of Oracle Solaris Device Drivers

2.  Oracle Solaris Kernel and Device Tree

3.  Multithreading

4.  Properties

5.  Managing Events and Queueing Tasks

6.  Driver Autoconfiguration

7.  Device Access: Programmed I/O

8.  Interrupt Handlers

9.  Direct Memory Access (DMA)

10.  Mapping Device and Kernel Memory

11.  Device Context Management

12.  Power Management

13.  Hardening Oracle Solaris Drivers

14.  Layered Driver Interface (LDI)

Part II Designing Specific Kinds of Device Drivers

15.  Drivers for Character Devices

16.  Drivers for Block Devices

17.  SCSI Target Drivers

18.  SCSI Host Bus Adapter Drivers

19.  Drivers for Network Devices

20.  USB Drivers

21.  SR-IOV Drivers

Part III Building a Device Driver

22.  Compiling, Loading, Packaging, and Testing Drivers

23.  Debugging, Testing, and Tuning Device Drivers

24.  Recommended Coding Practices

Part IV Appendixes

A.  Hardware Overview

B.  Summary of Solaris DDI/DKI Services

C.  Making a Device Driver 64-Bit Ready

D.  Console Frame Buffer Drivers

E.  pci.conf File

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

X

A

access handles, index iconExclusive Use of DDI Access Handles
add_drv command
index iconHow to Build and Load the Layered Driver
index iconChecking Device Driver Bindings
description of, index iconInstalling Drivers with add_drv
device name, index iconCompatible Device Names
address spaces, description of, index iconVirtual Memory
agent, definition, index iconWhat Is Predictive Self-Healing?
allocb()function, index iconRequests
alternate access mechanisms, index iconProgrammed I/O Functions
aphysio() function, index iconDMA Transfers (Asynchronous)
aread() entry point, asynchronous data transfers, index iconDifferences Between Synchronous and Asynchronous I/O
ASSERT() macro
index iconCompiling and Linking the Driver
index iconUse ASSERT() to Catch Invalid Assumptions
associating kernel memory with user applications, index iconAssociating Kernel Memory With User Mappings
asynchronous communication drivers, testing, index iconAsynchronous Communication Drivers
asynchronous data transfers
block drivers, index iconAsynchronous Data Transfers (Block Drivers)
character drivers, index iconDifferences Between Synchronous and Asynchronous I/O
USB, index iconSynchronous and Asynchronous Transfers and Callbacks
attach() entry point
index iconRegistering Drivers to Gain Device Access
index iconDevice Power Management
active power management, index iconDevice Power Management
description of, index iconattach() Entry Point
network drivers
index iconGLDv3 MAC Registration Functions
index iconGLDv2 Network Device Driver Framework
system power management, index iconSystem Power Management
auto-request sense mode, index iconAuto-Request Sense Mode
autoconfiguration
of block devices, index iconBlock Device Autoconfiguration
of character devices, index iconCharacter Device Autoconfiguration
overview, index iconDriver Loading and Unloading
routines, index iconAutoconfiguration Entry Points
of SCSI HBA drivers, index iconAutoconfiguration Entry Points
of SCSI target drivers, index iconAutoconfiguration for SCSI Target Drivers
Automated System Recovery Unit (ASRU), definition, index iconDiagnosis, Suspect Lists, and Fault Events
autoshutdown threshold, index iconAutoshutdown Threshold
autovectored interrupts, index iconDevice Interrupts
avoiding data loss while testing, index iconAvoiding Data Loss on a Test System
awrite() entry point, asynchronous data transfers, index iconDifferences Between Synchronous and Asynchronous I/O