JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Writing Device Drivers
search filter icon
search icon

Document Information

Preface

Part I Designing Device Drivers for the Solaris Platform

1.  Overview of Solaris Device Drivers

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

Part III Building a Device Driver

21.  Compiling, Loading, Packaging, and Testing Drivers

22.  Debugging, Testing, and Tuning Device Drivers

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

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

F

fault, definition, What Is Predictive Self-Healing?
fault event, definition, What Is Predictive Self-Healing?
fault injection
Fault Injection
Injecting Faults
fault management
access attributes
programmed I/O access errors, Access Attributes Structure
access or DMA handle error, Reporting Errors
agent, What Is Predictive Self-Healing?
Automated System Recovery Unit (ASRU), Diagnosis, Suspect Lists, and Fault Events
DDI_CAUTIOUS_ACC flag, Access Attributes Structure
ddi_device_acc_attr structure, Access Attributes Structure
ddi_dma_attr structure, DMA Attributes Structure
DDI_DMA_FLAGERR, DMA Attributes Structure
DDI_FM_* I/O controller errors, Reporting Errors
ddi_fm_acc_err_clear() function, Getting Error Status
ddi_fm_acc_err_get() function
Access Attributes Structure
Access Attributes Structure
ddi_fm_capable() function, Getting the Fault Management Capability Bit Mask
ddi_fm_dma_err_clear() function, Clearing Errors
ddi_fm_dma_err_get() function, DMA Attributes Structure
ddi_fm_ereport_post() function
Reporting Errors
Reporting Errors
ddi_fm_error structure
Registering an Error Handler
Registering an Error Handler
Fault Management Data and Status Structure
ddi_fm_fini() function, Cleaning Up Fault Management Resources
ddi_fm_handler_register() function
Access Attributes Structure
Registering an Error Handler
ddi_fm_handler_unregister() function, Registering an Error Handler
ddi_fm_init() function, Declaring Fault Management Capabilities
ddi_fm_service_impact() function, Reporting Errors
DDI_SERVICE_* service impact values, Reporting Errors
DE (diagnosis engine)
Diagnosing Faults
Event Registry
diagnosis engine, What Is Predictive Self-Healing?
.dict dictionary files, Message IDs and Dictionary Files
DMA errors, DMA Attributes Structure
eft diagnosis engine, Reporting Errors
eft diagnosis rules
Diagnosing Faults
Event Registry
ENA (Error Numeric Association)
Reporting Errors
Fault Management Data and Status Structure
ereport
What Is Predictive Self-Healing?
Error Handling
ereport events
What Is Predictive Self-Healing?
Reporting Errors
Registering an Error Handler
error handler callback, Registering an Error Handler
error handling, Error Handling
event registry
Message IDs and Dictionary Files
Reporting Errors
Reporting Errors
Event Registry
Eversholt fault tree (eft) rules
Reporting Errors
Diagnosing Faults
fault, What Is Predictive Self-Healing?
fault event
What Is Predictive Self-Healing?
System Topology
fault management capabilities, Declaring Fault Management Capabilities
fault management capabilities, declaring, Declaring Fault Management Capabilities
fault management capability bit mask, Getting the Fault Management Capability Bit Mask
fault management capability properties, Declaring Fault Management Capabilities
fault management resources, cleaning up, Cleaning Up Fault Management Resources
fault manager daemon fmd
Solaris Fault Manager
Diagnosing Faults
fault messages, Message IDs and Dictionary Files
Field Replaceable Unit (FRU), Diagnosis, Suspect Lists, and Fault Events
fmadm command, Response Agents
fmdump command, Diagnosis, Suspect Lists, and Fault Events
fme_status flag, Access Attributes Structure
I/O Fault Services, Hardening Solaris Drivers
interfaces, Fault Management Functions
list suspect
Diagnosis, Suspect Lists, and Fault Events
Message IDs and Dictionary Files
pci_ereport_post() function
Reporting Errors
Registering an Error Handler
Fault Management Data and Status Structure
pci_ereport_seetup() function, Reporting Errors
pci_ereport_setup() function, Declaring Fault Management Capabilities
pci_ereport_teardown() function
Cleaning Up Fault Management Resources
Reporting Errors
.po message files, Message IDs and Dictionary Files
response agent, Response Agents
retire agent, Response Agents
suspect list
Diagnosis, Suspect Lists, and Fault Events
Event Registry
topology of system, System Topology
Fault Management Architecture (FMA), See fault management
faults, latent fault, definition of, Periodic Health Checks
fbconfig(1M) command, Testing the Video Mode Change Callback Function
fbconfig() module, Frame Buffer Specific Configuration Module
FDDI (Fibre Distributed Data Interface), TPR and FDDI: SNAP Processing
fibre distributed data interface, See DL_FDDI
Field Replaceable Unit (FRU), definition, Diagnosis, Suspect Lists, and Fault Events
file system I/O, File I/O
_fini() entry point
example of, _fini() Example
network drivers, GLDv3 MAC Registration Functions
required implementation, Loadable Module Entry Points
first-party DMA
First-Party DMA
Performing First-Party DMA Transfers
flags argument, ddi_dma_mem_alloc(), changes to, ddi_dma_mem_alloc() Argument Changes
flow of control for power management, Power Management Flow of Control
fmadm command, Response Agents
fmd fault manager daemon
Solaris Fault Manager
Diagnosing Faults
fmdump command, Diagnosis, Suspect Lists, and Fault Events
freemsg() function, Requests
functions
See also condition variable functions
See also device power management
See individual functions
See also LDI functions
See specific function name
fuser command, display device usage information, Device User Command Interfaces