JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Writing Device Drivers     Oracle Solaris 11.1 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 Oracle 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

S

S_IFCHR, index iconCreating Minor Device Nodes
SAP (Service Access Point), index iconEthernet V2 and ISO 8802-3 (IEEE 802.3)
saving crash dumps, index iconCapture System Crash Dumps
SBus
address bits, index iconPhysical SBus Addresses
geographical addressing, index iconSBus
hardware configuration files, index iconSBus Hardware Configuration Files
physical address space, index iconSBus Physical Address Space
slots supporting DVMA, index iconPhysical SBus Addresses
scatter-gather
DMA engines, index iconDMA Software Components: Handles, Windows, and Cookies
I/O, index iconVectored I/O
scheduling tasks, index iconQueueing Tasks
SCSA
index iconIntroduction to Target Drivers
index iconSCSI Interface
global data definitions, index iconSCSI Options
HBA transport layer, index iconSCSI Interface
interfaces, index iconSCSA HBA Entry Point Summary
SCSI
architecture, index iconSun Common SCSI Architecture Overview
bus, index iconIntroduction to Target Drivers
scsi_ functions
scsi_alloc_consistent_buf()function, index iconscsi_alloc_consistent_buf() Function
scsi_destroy_pkt() function, index iconscsi_destroy_pkt() Function
scsi_dmafree() function, index iconReuse of Packets
scsi_free_consistent_buf() function, index iconscsi_free_consistent_buf() Function
scsi_ifgetcap() function, index iconSetting Target Capabilities
scsi_ifsetcap() function, index iconSetting Target Capabilities
scsi_init_pkt() function, index iconscsi_init_pkt() Function
scsi_probe() function, index icontran_tgt_probe() Entry Point
scsi_setup_cdb() function, index iconBuilding a Command
scsi_sync_pkt() function
index iconscsi_sync_pkt() Function
index iconReuse of Packets
scsi_transport() function, index iconTransporting a Command
scsi_unprobe() function, index icontran_tgt_probe() Entry Point
summary, index iconSCSA Functions
scsi_ structures
scsi_address structure, index iconscsi_address Structure
scsi_device structure, index iconscsi_device Structure
scsi_hba_tran structure, index iconscsi_hba_tran() Structure
scsi_pkt structure, index iconscsi_pkt Structure (HBA)
scsi_alloc_consistent_buf() function, changes to, index iconscsi_alloc_consistent_buf() Argument Changes
scsi_device structure, index iconscsi_device Structure
SCSI functions, index iconSCSI Functions
deprecated, index iconSCSI Functions
scsi_hba_ functions
scsi_hba_attach_setup() function, index iconHBA Configuration Properties
scsi_hba_lookup_capstr() function, index icontran_getcap() Entry Point
scsi_hba_pkt_alloc() function, index iconAllocation and Initialization of a scsi_pkt(9S) Structure
scsi_hba_ functions, scsi_hba_pkt_free() function, index icontran_destroy_pkt() Entry Point
scsi_hba_ functions
scsi_hba_probe() function, index icontran_tgt_probe() Entry Point
summary list, index iconSCSA HBA Functions
SCSI HBA driver
abort and reset management, index icontran_abort() Entry Point
autoconfiguration, index iconAutoconfiguration Entry Points
capability management, index icontran_getcap() Entry Point
cloning, index iconTransport Structure Cloning
command state structure, index iconPer-Command Structure
command timeout, index iconTimeout Handler
command transport, index iconCommand Transport
configuration properties, index iconHBA Configuration Properties
data structures, index iconSCSA HBA Data Structures
DMA resources, index iconAllocation of DMA Resources
driver instance initialization, index icontran_tgt_init() Entry Point
entry points summary, index iconSCSA HBA Entry Point Summary
header files, index iconDeclarations and Structures
and hotplugging
index iconHotplugging
index iconDynamic Reconfiguration
initializing a transport structure, index iconattach() Entry Point (SCSI HBA Drivers)
installation, index iconSCSI HBA Driver Specific Issues
interrupt handling, index iconInterrupt Handler and Command Completion
overview
index iconSCSI Interface
index iconSCSI Interface
properties, index iconx86 Target Driver Configuration Properties
resource allocation, index icontran_init_pkt() Entry Point
SCSI HBA driver entry points
by category, index iconEntry Points for SCSA HBA Drivers
tran_abort() function, index icontran_abort() Entry Point
tran_dmafree() function, index icontran_dmafree() Entry Point
tran_getcap() function, index icontran_getcap() Entry Point
tran_init_pkt() function, index icontran_init_pkt() Entry Point
tran_reset() function, index icontran_reset() Entry Point
tran_reset_notify() function, index icontran_reset_notify() Entry Point
tran_setcap() function, index icontran_setcap() Entry Point
tran_start() function, index icontran_start() Entry Point
tran_sync_pkt() function, index icontran_sync_pkt() Entry Point
tran_tgt_free() function, index icontran_tgt_free() Entry Point
tran_tgt_init() function, index icontran_tgt_init() Entry Point
tran_tgt_probe() function, index icontran_tgt_probe() Entry Point
scsi_hba_tran structures, scsi_pkt structure, index iconPer-Target Instance Data
scsi_pkt structure, index iconscsi_pkt Structure (Target Drivers)
changes to, index iconscsi_pkt Structure Changes
SCSI target driver
auto-request sense mode, index iconAuto-Request Sense Mode
autoconfiguration of, index iconAutoconfiguration for SCSI Target Drivers
building a command, index iconBuilding a Command
callback routine, index iconCommand Completion
data structures, index iconDeclarations and Data Structures
initializing a command descriptor block, index iconBuilding a Command
overview, index iconIntroduction to Target Drivers
properties
index iconHardware Configuration File
index iconattach() Entry Point (SCSI Target Drivers)
index iconx86 Target Driver Configuration Properties
resource allocation, index iconResource Allocation
reusing packets, index iconReuse of Packets
SCSI routines, index iconSCSA Functions
transporting a command, index iconTransporting a Command
segmap() entry point
description of
index iconThe segmap(9E) Entry Point
index iconMapping Device Memory
driver notification, index iconAssociating User Mappings With Driver Notifications
self-identifying devices, index iconDevice Identification
serial connection, index iconTesting With a Serial Connection
serviceability
add new device, index iconServiceability
detect faulty device, index iconServiceability
perform periodic health checks, index iconServiceability
remove faulty device, index iconServiceability
report faults, index iconServiceability
single device node, index iconUSB Devices and the Oracle Solaris Device Tree
size property, index iconCharacter Device Autoconfiguration
slice number for block devices, index iconBlock Device Autoconfiguration
SNAP (Sub-Net Access Protocol), index iconTPR and FDDI: SNAP Processing
snoop command, network drivers, index iconGLDv2 I/O Control Functions
snooping kernel variable, index iconEnable the Deadman Feature to Avoid a Hard Hang
soft interrupts, index iconSoftware Interrupts
soft state information
LDI, index iconDriver Source File
retrieving in mdb, index iconRetrieving Driver Soft State Information
USB, index iconRegistering Drivers to Gain Device Access
software interrupts, changing priority, index iconInterrupt Function Examples
software state functions, index iconDevice Software State Functions
Solaris kernel, See kernel
source compatibility, description of, index iconDDI/DKI Interfaces
source files for device drivers, index iconSource Files
SPARC processor
byte ordering, index iconSPARC Byte Ordering
data alignment, index iconSPARC Data Alignment
floating point operations, index iconSPARC Processor Issues
multiply and divide instructions, index iconSPARC Multiply and Divide Instructions
register windows, index iconSPARC Register Windows
structure member alignment, index iconMember Alignment in SPARC Structures
special files, description of, index iconDevices as Special Files
src_advcnt argument, ddi_device_copy(), changes to, index iconddi_device_copy() Argument Changes
standalone mode
index iconConsole Visual I/O Interfaces
index iconImplementing Polled I/O in Console Frame Buffer Drivers
state structure
index iconSoftware State Management
index iconDriver Soft-State Management
index iconDriver Source File
storage classes, driver data, index iconStorage Classes of Driver Data
store buffers, index iconStore Buffers
strategy() entry point
block drivers, index iconstrategy() Entry Point
character drivers, index iconstrategy() Entry Point
streaming access, index iconAllocating Private DMA Buffers
STREAMS
See network drivers, GLDv2
cb_ops structure, index iconcb_ops Structure
drivers, index iconEntry Points for STREAMS Device Drivers
Sun Studio, index iconCompiling and Linking the Driver
suspect list, definition, index iconDiagnosis, Suspect Lists, and Fault Events
synchronous data transfers
block drivers, index iconSynchronous Data Transfers (Block Drivers)
character drivers, index iconDifferences Between Synchronous and Asynchronous I/O
USB, index iconSynchronous and Asynchronous Transfers and Callbacks
system calls, index iconWhat Is the Kernel?
system global state functions, index iconSystem Global State
system power management
description of, index iconSystem Power Management
entry points, index iconEntry Points Used by System Power Management
model, index iconSystem Power Management Model
policy, index iconAutomatic Power Management for Systems
saving hardware state, index iconHardware State
USB devices, index iconSystem Power Management
system registers, reading and writing, index iconExploring System Registers With kmdb