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

U

UHCI (Universal Host Controller Interface), index iconUSB Client Drivers
uiomove() example, index iconProgrammed I/O Transfers
uiomove() function
changes to, index iconuiomove() Argument Changes
example of, index iconProgrammed I/O Transfers
unloading drivers, index iconLoading and Unloading Drivers
unloading test modules, index iconLoading and Unloading Test Modules
untagged queuing, index iconSupport for Queuing
update_drv command
index iconTest the Layered Driver
index iconChecking Device Driver Bindings
description of, index iconUpdating Driver Information
USB device
alternate settings, index iconHow USB Devices Appear to the System
compatible device names, index iconCompatible Device Names
composite
index iconDevices With Multiple Interfaces
index iconManaging Entire Devices
configuration descriptors, index iconThe Descriptor Tree
current configuration, index iconHow USB Devices Appear to the System
endpoints, index iconHow USB Devices Appear to the System
bulk, index iconUSB Endpoints
control, index iconUSB Endpoints
default, index iconThe Default Pipe
interrupt, index iconUSB Endpoints
isochronous, index iconUSB Endpoints
hotplugging, index iconHotplugging USB Devices
callbacks, index iconHotplug Callbacks
insertion, index iconHot Insertion
reinsertion, index iconHot Reinsertion
removal, index iconHot Removal
interface number, index iconGetting Interface Numbers
interfaces, index iconHow USB Devices Appear to the System
multiple configurations, index iconHow USB Devices Appear to the System
power management, index iconPower Management
active, index iconDevice Power Management
device, index iconDevice Power Management
passive, index iconDevice Power Management
system, index iconSystem Power Management
remote wakeup, index iconDevice Power Management
splitting interfaces
index iconDevices With Multiple Interfaces
index iconMultiple-Configuration Devices
states, index iconDevice State Management
USB drivers, index iconUSB Client Drivers
asynchronous transfer callbacks, index iconSynchronous and Asynchronous Transfers and Callbacks
bulk data transfer requests, index iconRequests
control data transfer requests, index iconRequests
data transfer
callback status flags
index iconSynchronous and Asynchronous Transfers and Callbacks
index iconRequests
completion reasons
index iconSynchronous and Asynchronous Transfers and Callbacks
index iconRequests
data transfer requests, index iconRequests
descriptor tree
index iconThe Descriptor Tree
index iconRegistering Drivers to Gain Device Access
event notification, index iconHotplug Callbacks
hubd USB hub driver, index iconHot Insertion
interfaces, index iconUSB Client Drivers
interrupt data transfer requests, index iconRequests
isochronous data transfer requests, index iconRequests
message blocks, index iconRequests
mutex initialization, index iconRegistering Drivers to Gain Device Access
pipes
index iconHow USB Devices Appear to the System
index iconRegistering Drivers to Gain Device Access
index iconDevice Communication
closing, index iconClosing Pipes
default control
index iconBefore the Client Driver Is Attached
index iconRegistering Drivers to Gain Device Access
index iconThe Default Pipe
flushing, index iconFlushing Pipes
opening, index iconOpening Pipes
registering, index iconRegistering Drivers to Gain Device Access
registering for events, index iconHotplug Callbacks
set alternate, index iconModifying or Getting the Alternate Setting
set configuration, index iconMultiple-Configuration Devices
synchronous control requests, index iconRequests
usb_ia USB interface association driver, index iconDevices With Interface-Association Descriptors
usb_mid USB multi-interface driver
index iconDevices With Multiple Interfaces
index iconDevices With Interface-Association Descriptors
index iconHot Removal
index iconGetting Interface Numbers
versioning, index iconRegistering Drivers to Gain Device Access
USB functions
cfgadm_usb command, index iconMultiple-Configuration Devices
usb_alloc_bulk_req() function, index iconRequests
usb_alloc_ctrl_req() function, index iconRequests
usb_alloc_intr_req() function, index iconRequests
usb_alloc_isoc_req() function, index iconRequests
usb_client_attach() function, index iconRegistering Drivers to Gain Device Access
usb_client_detach() function, index iconRegistering Drivers to Gain Device Access
usb_clr_feature() function, index iconClearing a USB Condition
usb_create_pm_components() function
index iconDevice Power Management
index iconDevice Power Management
usb_free_bulk_req() function, index iconRequests
usb_free_ctrl_req() function, index iconRequests
usb_free_descr_tree() function, index iconRegistering Drivers to Gain Device Access
usb_free_dev_data() function, index iconRegistering Drivers to Gain Device Access
usb_free_intr_req() function, index iconRequests
usb_free_isoc_req() function, index iconRequests
usb_get_addr() function, index iconGetting the Bus Address of a Device
usb_get_alt_if() function, index iconModifying or Getting the Alternate Setting
usb_get_cfg() function, index iconMultiple-Configuration Devices
usb_get_current_frame_number() function, index iconRequests
usb_get_dev_data() function
index iconThe Descriptor Tree
index iconRegistering Drivers to Gain Device Access
index iconRegistering Drivers to Gain Device Access
index iconThe Default Pipe
usb_get_if_number() function, index iconGetting Interface Numbers
usb_get_max_pkts_per_isoc_request() function, index iconRequests
usb_get_status() function, index iconGetting Device, Interface, or Endpoint Status
usb_get_string_descr() function, index iconRetrieving a String Descriptor
usb_handle_remote_wakeup() function
index iconDevice Power Management
index iconDevice Power Management
usb_lookup_ep_data() function
index iconThe Descriptor Tree
index iconOpening Pipes
usb_owns_device() function, index iconManaging Entire Devices
usb_parse_data() function, index iconThe Descriptor Tree
usb_pipe_bulk_xfer() function
index iconData Transfer
index iconRequests
usb_pipe_close() function
index iconClosing Pipes
index iconRequests
usb_pipe_ctrl_xfer() function
index iconData Transfer
index iconRequests
usb_pipe_ctrl_xfer_wait() function
index iconRequests
index iconRequests
usb_pipe_drain_reqs() function, index iconFlushing Pipes
usb_pipe_get_max_bulk_transfer_ size() function, index iconRequests
usb_pipe_get_private() function, index iconPipe Private Data Facility
usb_pipe_get_state() function
index iconPipe States
index iconFlushing Pipes
usb_pipe_intr_xfer() function
index iconData Transfer
index iconRequests
index iconRequests
usb_pipe_isoc_xfer() function
index iconData Transfer
index iconRequests
usb_pipe_open() function
index iconOpening Pipes
index iconSynchronous and Asynchronous Transfers and Callbacks
usb_pipe_reset() function
index iconPipe States
index iconFlushing Pipes
usb_pipe_set_private() function, index iconPipe Private Data Facility
usb_pipe_stop_intr_polling() function
index iconRequests
index iconRequests
usb_pipe_stop_isoc_polling() function
index iconRequests
index iconRequests
usb_print_descr_tree() function, index iconRegistering Drivers to Gain Device Access
usb_register_hotplug_cbs() function, index iconHotplug Callbacks
usb_set_alt_if() function, index iconModifying or Getting the Alternate Setting
usb_set_cfg() function, index iconMultiple-Configuration Devices
usb_unregister_hotplug_cbs() function, index iconHotplug Callbacks
usb_ia USB interface association driver, index iconDevices With Interface-Association Descriptors
usb_mid USB multi-interface driver
index iconDevices With Multiple Interfaces
index iconDevices With Interface-Association Descriptors
index iconHot Removal
index iconGetting Interface Numbers
USB structures
usb_alloc_intr_request, index iconRequests
usb_bulk_request
index iconRequests
index iconRequests
usb_callback_flags
index iconSynchronous and Asynchronous Transfers and Callbacks
index iconRequests
usb_completion_reason
index iconSynchronous and Asynchronous Transfers and Callbacks
index iconRequests
usb_ctrl_request
index iconRequests
index iconRequests
usb_intr_request, index iconRequests
usb_isoc_request
index iconRequests
index iconRequests
usb_request_attributes, index iconRequests
USB 2.0 specification, index iconUSBA 2.0 Framework
USBA (Solaris USB Architecture), index iconUSB Drivers
USBA 2.0 framework, index iconUSB Drivers
user application kernel functions
deprecated, index iconUser Application Kernel and Device Access Functions
table, index iconUser Application Kernel and Device Access Functions
user process event functions, index iconUser Process Event Functions
user process information functions, index iconUser Process Information Functions
deprecated, index iconUser Process Information Functions
user space access functions, index iconUser Space Access Functions
deprecated, index iconUser Space Access Functions
utility functions, table, index iconUtility Functions