Writing Device Drivers for Oracle® Solaris 11.2

Exit Print View

Updated: September 2014
 
 

D

.dict dictionary filesindex iconMessage IDs and Dictionary Files
data alignment for SPARCindex iconSPARC Data Alignment
data sharing
using devmap()index iconData Sharing in devmap
using ioctl()index iconData Sharing in ioctl
using mmap()index iconData Sharing in mmap
data storage classesindex iconStorage Classes of Driver Data
data structures
dev_ops structureindex icondev_ops Structure
GLDv2
index icongld_stats Structure
index iconGLDv2 Declarations and Data Structures
modldrv structureindex iconmodldrv Structure
data transfers
character driversindex iconI/O Request Handling
DDI function tablesindex iconSummary of Oracle Solaris DDI/DKI Services
DDI-compliant drivers
byte orderingindex iconEndianness
compliance testingindex iconDDI/DKI Compliance Testing
DDI/DKI  See alsoindex iconLDI
and disk performanceindex iconDisk Performance
design considerationsindex iconDDI/DKI Facilities
overviewindex iconDDI/DKI Interfaces
purpose in kernelindex iconOracle Solaris Kernel
ddi_cb_register() functionindex iconCallback Interfaces
ddi_cb_unregister() functionindex iconCallback Interfaces
ddi_create_minor_node() functionindex iconCreating Minor Device Nodes
ddi_device_copy() functionindex iconddi_device_copy Argument Changes
ddi_device_zero() functionindex iconddi_device_zero Argument Changes
ddi_devid_free() functionindex iconRetrieving Target Device Information
ddi_dma_attr structure
index iconddi_dma_attr
index iconddi_dma_attr Structure
ddi_dma_cookie structureindex iconddi_dma_cookie Structure Changes
ddi_dma_getwin() functionindex iconDMA Software Components: Handles, Windows, and Cookies
ddi_dma_mem_alloc() functionindex iconddi_dma_mem_alloc Argument Changes
ddi_dma_nextseg() functionindex iconDMA Software Components: Handles, Windows, and Cookies
ddi_driver_major() function
index iconBlock Device Autoconfiguration
index iconBlock Device Autoconfiguration
ddi_enter_critical() functionindex iconTiming-Critical Sections
ddi_eventcookie_tindex iconReceiving Asynchronous Device Event Notification
ddi_fm_capable() functionindex iconGetting the Fault Management Capability Bit Mask
ddi_fm_ereport_post() function
index iconReporting Standard I/O Controller Errors
index iconQueueing an Error Event
ddi_fm_fini() functionindex iconCleaning Up Fault Management Resources
ddi_fm_init() functionindex iconDeclaring Fault Management Capabilities
ddi_fm_service_impact() functionindex iconService Impact Function
ddi_get_cred() function
index iconData Sharing in ioctl
index icondrv_getparm Argument Changes
ddi_get_driver_private() function
index iconGLDv2 Driver Requirements
index iconscsi_device Structure
ddi_get_instance() functionindex icongld_mac_info Structure
ddi_get_lbolt() functionindex icondrv_getparm Argument Changes
ddi_get_pid() functionindex icondrv_getparm Argument Changes
ddi_get_time() functionindex icondrv_getparm Argument Changes
DDI_INFO_DEVT2DEVINFOindex icongetinfo Entry Point
DDI_INFO_DEVT2INSTANCEindex icongetinfo Entry Point
ddi_intr_add_handler() function
index iconRegistering Interrupts
index iconInterrupt Initialization and Destruction Functions
index iconMSI-X Interrupts
ddi_intr_add_softint() functionindex iconSoft Interrupt Functions
ddi_intr_alloc() function
index iconInterrupt Request Interfaces
index iconInterrupt Initialization and Destruction Functions
index iconMSI-X Interrupts
ddi_intr_block_disable() functionindex iconInterrupt Initialization and Destruction Functions
ddi_intr_block_enable() functionindex iconInterrupt Initialization and Destruction Functions
DDI_INTR_CLAIMEDindex iconInterrupt Handler Functionality
ddi_intr_clr_mask() function
index iconClearing Interrupt Masks
index iconInterrupt Initialization and Destruction Functions
ddi_intr_disable() function
index iconInterrupt Initialization and Destruction Functions
index iconMSI-X Interrupts
ddi_intr_dup_handler() function
index iconInterrupt Initialization and Destruction Functions
index iconMSI-X Interrupts
ddi_intr_enable() function
index iconInterrupt Initialization and Destruction Functions
index iconMSI-X Interrupts
ddi_intr_free() function
index iconInterrupt Initialization and Destruction Functions
index iconMSI-X Interrupts
ddi_intr_get_cap() functionindex iconInterrupt Capability Functions
ddi_intr_get_hilevel_pri() function
index iconHandling High-Level Interrupts
index iconPriority Management Functions
ddi_intr_get_navail() functionindex iconInterrupt Capability Functions
ddi_intr_get_nintrs() functionindex iconInterrupt Capability Functions
ddi_intr_get_pending() function
index iconChecking for Pending Interrupts
index iconInterrupt Initialization and Destruction Functions
ddi_intr_get_pri() function
index iconHandling High-Level Interrupts
index iconPriority Management Functions
ddi_intr_get_softint_pri() functionindex iconSoft Interrupt Functions
ddi_intr_get_supported_types() functionindex iconInterrupt Capability Functions
ddi_intr_hilevel() functionindex iconHigh-Level Interrupts
ddi_intr_remove_handler() function
index iconInterrupt Initialization and Destruction Functions
index iconMSI-X Interrupts
ddi_intr_remove_softint() functionindex iconSoft Interrupt Functions
ddi_intr_set_cap() functionindex iconInterrupt Initialization and Destruction Functions
ddi_intr_set_mask() function
index iconSetting Interrupt Masks
index iconInterrupt Initialization and Destruction Functions
ddi_intr_set_nreq() functionindex iconInterrupt Request Interfaces
ddi_intr_set_pri() functionindex iconPriority Management Functions
ddi_intr_set_softint_pri() function
index iconChanging Soft Interrupt Priority
index iconSoft Interrupt Functions
ddi_intr_trigger_softint() function
index iconSoft Interrupt Functions
index iconHigh-Level Interrupts
DDI_INTR_UNCLAIMEDindex iconInterrupt Handler Functionality
ddi_log_sysevent() function
index iconUsing ddi_log_sysevent to Log Events
index iconUsing ddi_log_sysevent to Log Events
ddi_model_convert_from() functionindex iconData Sharing in ioctl
ddi_prop_free() functionindex iconDriver Source File
ddi_prop_get_int() functionindex iconHBA Configuration Properties
ddi_prop_lookup() functionindex iconLooking Up Properties
ddi_prop_lookup_string() functionindex iconDriver Source File
ddi_prop_op() functionindex iconprop_op Entry Point
ddi_regs_map_setup() functionindex iconddi_device_acc_attr Structure
ddi_removing_power() functionindex icondetach Entry Point
DDI_RESUME
detach() functionindex icondetach Entry Point
ddi_set_driver_private() functionindex iconscsi_device Structure
DDI_SUSPEND
detach() functionindex icondetach Entry Point
ddi_umem_alloc() functionindex iconAllocating Kernel Memory for User Access
ddi_umem_free() functionindex iconFreeing Kernel Memory Exported for User Access
DDX moduleindex iconThe X Window System Frame Buffer Specific DDX Module
deadman kernel featureindex iconUsing the Deadman Feature
DEBUG symbol
index iconUse ASSERT to Catch Invalid Assumptions
index iconCompiling and Linking the Driver
debugging
ASSERT() macroindex iconUse ASSERT to Catch Invalid Assumptions
coding hintsindex iconDebugging Preparation Techniques
common tasksindex iconUseful Debugging Tasks With kmdb and mdb
conditional compilationindex iconUse Conditional Compilation to Toggle Costly Debugging Features
console frame buffer driversindex iconDeveloping, Testing, and Debugging Console Frame Buffer Drivers
DEBUG symbolindex iconUse ASSERT to Catch Invalid Assumptions
detecting kernel memory leaksindex iconDetecting Kernel Memory Leaks
displaying kernel data structuresindex iconObtaining Kernel Data Structure Information
kmdb debuggerindex iconUsing the kmdb Kernel Debugger
kmem_flagsindex iconSetting kmem_flags Debugging Flags
mdb debuggerindex iconUsing the mdb Modular Debugger
moddebugindex iconLoading and Unloading Test Modules
postmortemindex iconPostmortem Debugging
preparing for disastersindex iconAvoiding Data Loss on a Test System
setting up a serial connectionindex iconTesting With a Serial Connection
setting up a SPARC test systemindex iconSetting Up a Target System on the SPARC Platform
setting up an x86 test systemindex iconSetting Up a Target System on the x86 Platform
system registersindex iconExploring System Registers With kmdb
system fileindex iconSetting Up Test Modules
toolsindex iconDebugging Tools
using kernel variablesindex iconModifying Kernel Variables
using the SPARC PROM for device debuggingindex iconPROM on SPARC Machines
writing mdb commandsindex iconWriting Debugger Commands With mdb
delay() functionindex icondelay and timeout Argument Changes
changes toindex icondelay and timeout Argument Changes
dependencyindex iconPower Management Dependencies
deprecated device access functionsindex iconDeprecated User Application Kernel and Device Access Functions
deprecated DMA functionsindex iconDeprecated Direct Memory Access (DMA) Functions
deprecated interrupt functionsindex iconDeprecated Interrupt Functions
deprecated memory allocation functionsindex iconDeprecated Memory Allocation and Deallocation Functions
deprecated power management functionsindex iconDeprecated Power Management Functions
deprecated programmed I/O functionsindex iconDeprecated Programmed I/O Functions
deprecated property functionsindex iconDeprecated Property Functions
deprecated SCSI functionsindex iconDeprecated SCSI Functions
deprecated time-related functionsindex iconDeprecated Time-Related Functions
deprecated user application kernel functionsindex iconDeprecated User Application Kernel and Device Access Functions
deprecated user process information functionsindex iconDeprecated User Process Information Functions
deprecated user space access functionsindex iconDeprecated User Space Access Functions
deprecated virtual memory functionsindex iconDeprecated Virtual Memory Functions
descriptor tree
index iconRegistering Drivers to Gain Device Access
index iconThe Descriptor Tree
dest_adcent argument, ddi_device_copy()
changes toindex iconddi_device_copy Argument Changes
detach() entry point
active power managementindex iconActive Power Management
description ofindex icondetach Entry Point
hot removalindex iconHot Removal
network driversindex iconThe mac_register and mac_unregister Functions
system power managementindex iconSystem Power Management
detecting kernel memory leaks with mdbindex iconDetecting Kernel Memory Leaks
dev_advcnt argument, ddi_device_zero()
changes toindex iconddi_device_zero Argument Changes
dev_datasz argument, ddi_device_copy()
changes toindex iconddi_device_copy Argument Changes
dev_datasz argument, ddi_device_zero()
changes toindex iconddi_device_zero Argument Changes
dev_info_t functionsindex iconDevice Information Tree Node (dev_info_t) Functions
dev_ops structure
description ofindex icondev_ops Structure
dev_t functionsindex iconDevice (dev_t) Functions
devfsadm commandindex iconInstalling Drivers with add_drv
device
alternate settingsindex iconHow USB Devices Appear to the System
composite
index iconManaging Entire Devices
index iconDevices With Multiple Interfaces
configurationsindex iconHow USB Devices Appear to the System
endpointsindex iconHow USB Devices Appear to the System
interface numberindex iconGetting Interface Numbers
interfacesindex iconHow USB Devices Appear to the System
quiesce
index iconExample Implementation of Interrupt Resource Management
index iconSystem Quiesce Entry Point
resume
index iconExample Implementation of Interrupt Resource Management
index iconSystem Quiesce Entry Point
splitting interfaces
index iconMultiple-Configuration Devices
index iconUSB Audio Compatible Device Names
device access functions
block driversindex iconopen Entry Point (Block Drivers)
character driversindex iconopen Entry Point (Character Drivers)
deprecatedindex iconDeprecated User Application Kernel and Device Access Functions
tableindex iconUser Application Kernel and Device Access Functions
device configuration
entry pointsindex iconDevice Configuration Concepts
device context managementindex iconWhat Is a Device Context?
entry pointsindex iconEntry Points for Device Context Management
modelindex iconContext Management Model
operationindex iconContext Management Operation
device directory
recoveringindex iconRecovering the Device Directory
device drivers
  See alsoindex iconloading drivers
  See alsoindex iconlinking drivers
  See alsoindex iconcompiling drivers
64-bit drivers
index iconMaking a Device Driver 64-Bit Ready
index iconI/O Control Support for 64-Bit Capable Device Drivers
access from within kernelindex iconLayered Driver Interface (LDI)
aliasesindex iconUpdating Driver Information
binding to device node
index iconCompatible Device Names
index iconBinding a Driver to a Device
bindingsindex iconChecking Device Driver Bindings
block driverindex iconEntry Points for Block Device Drivers
configuration descriptor cloudsindex iconHot Reinsertion
contextindex iconDriver Context
debuggingindex iconDebugging, Testing, and Tuning Device Drivers
coding hintsindex iconDebugging Preparation Techniques
setting up a serial connectionindex iconTesting With a Serial Connection
toolsindex iconDebugging Tools
using the PROMindex iconPROM on SPARC Machines
definitionindex iconWhat Is a Device Driver?
entry pointsindex iconWhat Is a Device Driver Entry Point?
error handlingindex iconError Handling
header filesindex iconHeader Files
hubd USB hub driverindex iconHot Insertion
interface association nodesindex iconDevices With Interface-Association Descriptors
loadable interfaceindex iconLoadable Driver Interfaces
modifying information with update_drvindex iconUpdating Driver Information
modifying permissionsindex iconUpdating Driver Information
module configurationindex iconSource Files
network driversindex iconDrivers for Network Devices
offlining
index iconHot Removal
index iconHotplug Callbacks
packagingindex iconDriver Packaging
printing messagesindex iconReturning Errors
purpose in kernelindex iconWhat Is the Kernel?
source filesindex iconSource Files
standard character driverindex iconEntry Points for Character Device Drivers
testing
index iconTesting Drivers
index iconCriteria for Testing Drivers
tuningindex iconTuning Drivers
USB driverindex iconUSB Drivers
usb_ia USB interface association driverindex iconDevices With Interface-Association Descriptors
usb_mid USB multi-interface driver
index iconGetting Interface Numbers
index iconHot Removal
index iconDevices With Interface-Association Descriptors
index iconDevices With Multiple Interfaces
using statsindex iconKernel Statistics
device ID functionsindex iconDevice ID Functions
device information
binding a driver to a deviceindex iconBinding a Driver to a Device
binding a driver to a USB deviceindex iconCompatible Device Names
compatible device namesindex iconCompatible Device Names
di_link_next_by_lnode() functionindex iconDevice Information Library Interfaces
di_link_next_by_node() functionindex iconDevice Information Library Interfaces
di_link_private_get() functionindex iconDevice Information Library Interfaces
di_link_private_set() functionindex iconDevice Information Library Interfaces
di_link_spectype() functionindex iconDevice Information Library Interfaces
di_link_tindex iconDevice Information Library Interfaces
di_link_to_lnode() functionindex iconDevice Information Library Interfaces
di_lnode_devinfo() functionindex iconDevice Information Library Interfaces
di_lnode_devt() functionindex iconDevice Information Library Interfaces
di_lnode_name() functionindex iconDevice Information Library Interfaces
di_lnode_next() functionindex iconDevice Information Library Interfaces
di_lnode_private_get() functionindex iconDevice Information Library Interfaces
di_lnode_private_set() functionindex iconDevice Information Library Interfaces
di_lnode_tindex iconDevice Information Library Interfaces
di_node_tindex iconDevice Information Library Interfaces
di_walk_link() functionindex iconDevice Information Library Interfaces
di_walk_lnode() functionindex iconDevice Information Library Interfaces
DINFOLYRindex iconDevice Information Library Interfaces
LDIindex iconRetrieving Target Device Information
lnodeindex iconDevice Information Library Interfaces
nblocks propertyindex iconDevice Sizes
Nblocks propertyindex iconDevice Sizes
property valuesindex iconRetrieving Target Device Property Values
self-identifyingindex iconDevice Identification
tree structure
index iconDevice Tree Components
index iconDevice Tree Components
device interrupts  Seeindex iconinterrupts; interrupt handling
device layering  Seeindex iconLDI
device memory
D_DEVMAP flag in cb_opsindex iconcb_ops Structure
mapping
index iconMapping Device and Kernel Memory
index iconEntry Points for Memory Mapped Devices
device nodeindex iconUSB Devices and the Oracle Solaris Device Tree
device number
description ofindex iconDevices as Special Files
device pollingindex iconInterrupt Handler Functionality
chpoll() functionindex iconMultiplexing I/O on File Descriptors
in character driversindex iconMultiplexing I/O on File Descriptors
poll() functionindex iconMultiplexing I/O on File Descriptors
device power management
componentsindex iconPower Management Components
definition ofindex iconPower Management Framework
dependencyindex iconPower Management Dependencies
entry pointsindex iconpower Entry Point
interfacesindex iconDevice Power Management Interfaces
modelindex iconDevice Power Management Model
pm_busy_component() function
index iconDevice Power Management
index iconBusy-Idle State Transitions
index iconPower Management States
pm_idle_component() function
index iconDevice Power Management
index iconBusy-Idle State Transitions
index iconBusy-Idle State Transitions
index iconPower Management States
pm_lower_power() functionindex iconMultiple Component pm-components Entry
pm_raise_power() function
index iconDevice Power Management
index iconBusy-Idle State Transitions
index iconMultiple Component pm-components Entry
index iconMultiple Power Management Components
power levelsindex iconPower Levels
power() entry point
index iconActive Power Management
index iconDevice Power Management
power() functionindex iconpower Entry Point
state transitionsindex iconBusy-Idle State Transitions
USB devicesindex iconDevice Power Management
usb_create_pm_components() functionindex iconDevice Power Management
device registers
mappingindex iconattach Entry Point
device state in power managementindex iconHardware State
device tree
displayingindex iconDisplaying the Device Tree
navigating, in debuggerindex iconObtaining Device Tree Information
overviewindex iconDevice Tree Components
purpose in kernelindex iconOracle Solaris Kernel
device usage
index iconKernel Interfaces
  Seeindex iconLDI
device-dependency
power.conf entryindex iconPower Management Dependencies
device-dependency-property
power.conf entryindex iconPower Management Dependencies
devmap_ entry point
devmap_access() functionindex icondevmap_access Entry Point
devmap_ entry points
devmap() functionindex iconThe devmap(9E) Entry Point
devmap_access() functionindex icondevmap_unload Entry Point
devmap_contextmgt()functionindex icondevmap_contextmgt Entry Point
devmap_dup() functionindex icondevmap_dup Entry Point
devmap_map() functionindex icondevmap_map Entry Point
devmap_unmap() functionindex icondevmap_unmap Entry Point
devmap_ functions
devmap_devmem_setup() functionindex iconAssociating Device Memory With User Mappings
devmap_load() functionindex icondevmap_load Entry Point
devmap_umem_setup() functionindex iconExporting Kernel Memory to Applications
devmap_unload() functionindex icondevmap_unload Entry Point
diagnosis engine
definitionindex iconWhat Is Predictive Self-Healing?
disaster recoveryindex iconRecovering the Device Directory
disk
I/O controlsindex iconDisk ioctls
performanceindex iconDisk Performance
disk driver testingindex iconTesting Disk Drivers
DKI  Seeindex iconDDI/DKI
DL_ETHER
network statisticsindex iconGLDv2 Network Statistics
DLIOCRAW
ioctl() functionindex iconGLDv2 I/O Control Functions
DLPI (Data Link Provider Interface)  Seeindex iconnetwork drivers, GLDv2
DLPI primitives
DL_GET_STATISTICS_REQindex iconGLDv2 Network Statistics
DMA
buffer allocationindex iconAllocating Private DMA Buffers
burst sizesindex iconDetermining Maximum Burst Sizes
callbacksindex iconCanceling DMA Callbacks
cookie
index iconDMA Software Components: Handles, Windows, and Cookies
index iconDMA Model
freeing handleindex iconFreeing the DMA Handle
freeing resourcesindex iconFreeing the DMA Resources
handle
index iconAllocating a DMA Handle
index iconDMA Software Components: Handles, Windows, and Cookies
index iconDMA Model
objectindex iconDMA Model
object lockingindex iconObject Locking
operationsindex iconDMA Operations
physical addressesindex iconTypes of Host Platform DMA
private buffer allocationindex iconAllocating Private DMA Buffers
register structureindex iconDevice Register Structure
resource allocationindex iconAllocating DMA Resources
restrictionsindex iconDMA Attributes
transfers
index iconDMA Transfers (Synchronous)
index iconDMA Operations
virtual addressesindex iconTypes of Host Platform DMA
windows
index iconDMA Windows
index iconDMA Software Components: Handles, Windows, and Cookies
DMA functionsindex iconDirect Memory Access (DMA) Functions
deprecatedindex iconDeprecated Direct Memory Access (DMA) Functions
driver binding nameindex iconBinding a Driver to a Device
driver module entry points  Seeindex iconentry points
driver.conf files  Seeindex iconhardware configuration files
drv_getparm() function
changes toindex icondrv_getparm Argument Changes
drv_usecwait(9F)index iconDelays
DTrace
task queuesindex iconTask Queue DTrace SDT Probes
dump() entry point
block driversindex icondump Entry Point (Block Drivers)
DVMA
SBus slots supportingindex iconUltra 2 SBus Address Bits
virtual addressesindex iconTypes of Host Platform DMA
dynamic memory allocationindex iconDynamic Memory Allocation