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

L

latent fault, definition of, index iconPeriodic Health Checks
layered driver handle, See LDI
Layered Driver Interface, See LDI
layered identifier, See LDI
ld command, index iconCompiling and Linking the Driver
LDI, index iconLayered Driver Interface (LDI)
definition, index iconWhat Is the Kernel?
device access, index iconKernel Interfaces
device consumer, index iconLDI Overview
device information, index iconKernel Interfaces
device layering, index iconUser Interfaces
device usage
index iconKernel Interfaces
index iconUser Interfaces
index iconPrint System Configuration Command Interfaces
index iconDevice User Command Interfaces
event notification interfaces, index iconReceiving Asynchronous Device Event Notification
fuser command, index iconDevice User Command Interfaces
kernel device consumer, index iconLDI Overview
layered driver, index iconLDI Overview
layered driver handle
index iconLayered Driver Handles – Target Devices
index iconDriver Source File
layered identifier
index iconLayered Identifiers – Kernel Device Consumers
index iconDriver Source File
libdevinfo interfaces, index iconUser Interfaces
prtconf command, index iconPrint System Configuration Command Interfaces
target device
index iconLDI Overview
index iconLayered Driver Handles – Target Devices
LDI functions
ldi_add_event_handler() function, index iconReceiving Asynchronous Device Event Notification
ldi_aread() function, index iconAccessing Target Devices
ldi_awrite() function, index iconAccessing Target Devices
ldi_close() function
index iconOpening and Closing Target Devices
index iconDriver Source File
ldi_devmap() function, index iconAccessing Target Devices
ldi_dump() function, index iconAccessing Target Devices
ldi_get_dev() function, index iconRetrieving Target Device Information
ldi_get_devid() function, index iconRetrieving Target Device Information
ldi_get_eventcookie() function, index iconReceiving Asynchronous Device Event Notification
ldi_get_minor_name() function, index iconRetrieving Target Device Information
ldi_get_otyp() function, index iconRetrieving Target Device Information
ldi_get_size() function, index iconRetrieving Target Device Information
ldi_getmsg() function, index iconAccessing Target Devices
ldi_ident_from_dev() function
index iconLayered Identifiers – Kernel Device Consumers
index iconDriver Source File
ldi_ident_from_dip() function, index iconLayered Identifiers – Kernel Device Consumers
ldi_ident_from_stream() function, index iconLayered Identifiers – Kernel Device Consumers
ldi_ident_release() function
index iconLayered Identifiers – Kernel Device Consumers
index iconDriver Source File
ldi_ioctl() function, index iconAccessing Target Devices
ldi_open_by_dev() function, index iconOpening and Closing Target Devices
ldi_open_by_devid() function, index iconOpening and Closing Target Devices
ldi_open_by_name() function
index iconOpening and Closing Target Devices
index iconDriver Source File
ldi_poll() function, index iconAccessing Target Devices
ldi_prop_exists() function, index iconRetrieving Target Device Property Values
ldi_prop_get_int() function, index iconRetrieving Target Device Property Values
ldi_prop_get_int64() function, index iconRetrieving Target Device Property Values
ldi_prop_lookup_byte_array() function, index iconRetrieving Target Device Property Values
ldi_prop_lookup_int_array() function, index iconRetrieving Target Device Property Values
ldi_prop_lookup_int64_array() function, index iconRetrieving Target Device Property Values
ldi_prop_lookup_string_array() function, index iconRetrieving Target Device Property Values
ldi_prop_lookup_string() function, index iconRetrieving Target Device Property Values
ldi_putmsg() function, index iconAccessing Target Devices
ldi_read() function, index iconAccessing Target Devices
ldi_remove_event_handler() function, index iconReceiving Asynchronous Device Event Notification
ldi_strategy() function, index iconAccessing Target Devices
ldi_write() function
index iconAccessing Target Devices
index iconDriver Source File
LDI types
ldi_callback_id_t, index iconReceiving Asynchronous Device Event Notification
ldi_handle_t, index iconLayered Driver Handles – Target Devices
ldi_ident_t, index iconLayered Identifiers – Kernel Device Consumers
leaf devices, description of, index iconDevice Tree Components
legacy interrupts
defined, index iconDevice Interrupts
using, index iconLegacy Interrupts
length argument, ddi_dma_mem_alloc(), changes to, index iconddi_dma_mem_alloc() Argument Changes
libdevinfo(), displaying the device tree, index iconlibdevinfo Library
libdevinfo device information library, index iconUser Interfaces
linking drivers, index iconCompiling and Linking the Driver
lint command, 64-bit environment, index iconGeneral Conversion Steps
list suspect, definition, index iconDiagnosis, Suspect Lists, and Fault Events
lnode, index iconDevice Information Library Interfaces
loadable module functions, index iconModule Functions
loading drivers, index iconCompiling and Linking the Driver
add_drv command, index iconInstalling Drivers with add_drv
hardware configuration file, index iconWriting a Hardware Configuration File
loading modules
index iconLoadable Module Entry Points
index iconCopying the Driver to a Module Directory
loading test modules, index iconLoading and Unloading Test Modules
locking primitives, types of, index iconLocking Primitives
locks
manipulating, index iconKernel Thread Control and Synchronization Functions
mutex, index iconMutual-Exclusion Locks
readers/writer, index iconReaders/Writer Locks
scheme for, index iconChoosing a Locking Scheme
LP64
use in devmap(), index iconData Sharing in devmap()
use in ioctl(), index iconData Sharing in ioctl()
lso_basic_tcp_ipv4() structure, index iconLarge Segment (or Send) Offload
LUN bits, index iconBuilding a Command