D
- .dict dictionary filesMessage IDs and Dictionary Files
- data alignment for SPARCSPARC Data Alignment
- data sharing
- using devmap()Data Sharing in devmap
- using ioctl()Data Sharing in ioctl
- using mmap()Data Sharing in mmap
- data storage classesStorage Classes of Driver Data
- data structures
- dev_ops structuredev_ops Structure
- GLDv2
- gld_stats Structure
- GLDv2 Declarations and Data Structures
- modldrv structuremodldrv Structure
- data transfers
- character driversI/O Request Handling
- DDI function tablesSummary
of
Oracle Solaris
DDI/DKI Services
- DDI-compliant drivers
- byte orderingEndianness
- compliance testingDDI/DKI Compliance Testing
- DDI/DKI See alsoLDI
- and disk performanceDisk Performance
- design considerationsDDI/DKI Facilities
- overviewDDI/DKI Interfaces
- purpose in kernelOracle Solaris Kernel
- ddi_cb_register() functionCallback Interfaces
- ddi_cb_unregister() functionCallback Interfaces
- ddi_create_minor_node() functionCreating Minor Device Nodes
- ddi_device_copy() functionddi_device_copy Argument Changes
- ddi_device_zero() functionddi_device_zero Argument Changes
- ddi_devid_free() functionRetrieving Target Device Information
- ddi_dma_attr structure
- ddi_dma_attr
- ddi_dma_attr Structure
- ddi_dma_cookie structureddi_dma_cookie Structure
Changes
- ddi_dma_getwin() functionDMA Software Components: Handles, Windows, and Cookies
- ddi_dma_mem_alloc() functionddi_dma_mem_alloc Argument
Changes
- ddi_dma_nextseg() functionDMA Software Components: Handles, Windows, and Cookies
- ddi_driver_major() function
- Block Device Autoconfiguration
- Block Device Autoconfiguration
- ddi_enter_critical() functionTiming-Critical Sections
- ddi_eventcookie_tReceiving Asynchronous Device Event Notification
- ddi_fm_capable() functionGetting the Fault Management Capability Bit Mask
- ddi_fm_ereport_post() function
- Reporting Standard I/O Controller Errors
- Queueing an Error Event
- ddi_fm_fini() functionCleaning Up Fault Management Resources
- ddi_fm_init() functionDeclaring Fault Management Capabilities
- ddi_fm_service_impact() functionService Impact Function
- ddi_get_cred() function
- Data Sharing in ioctl
- drv_getparm Argument Changes
- ddi_get_driver_private() function
- GLDv2 Driver Requirements
- scsi_device Structure
- ddi_get_instance() functiongld_mac_info Structure
- ddi_get_lbolt() functiondrv_getparm Argument Changes
- ddi_get_pid() functiondrv_getparm Argument Changes
- ddi_get_time() functiondrv_getparm Argument Changes
- DDI_INFO_DEVT2DEVINFOgetinfo Entry Point
- DDI_INFO_DEVT2INSTANCEgetinfo Entry Point
- ddi_intr_add_handler() function
- Registering Interrupts
- Interrupt Initialization and Destruction Functions
- MSI-X Interrupts
- ddi_intr_add_softint() functionSoft Interrupt Functions
- ddi_intr_alloc() function
- Interrupt Request Interfaces
- Interrupt Initialization and Destruction Functions
- MSI-X Interrupts
- ddi_intr_block_disable() functionInterrupt Initialization and Destruction Functions
- ddi_intr_block_enable() functionInterrupt Initialization and Destruction Functions
- DDI_INTR_CLAIMEDInterrupt Handler Functionality
- ddi_intr_clr_mask() function
- Clearing Interrupt Masks
- Interrupt Initialization and Destruction Functions
- ddi_intr_disable() function
- Interrupt Initialization and Destruction Functions
- MSI-X Interrupts
- ddi_intr_dup_handler() function
- Interrupt Initialization and Destruction Functions
- MSI-X Interrupts
- ddi_intr_enable() function
- Interrupt Initialization and Destruction Functions
- MSI-X Interrupts
- ddi_intr_free() function
- Interrupt Initialization and Destruction Functions
- MSI-X Interrupts
- ddi_intr_get_cap() functionInterrupt Capability Functions
- ddi_intr_get_hilevel_pri() function
- Handling High-Level Interrupts
- Priority Management Functions
- ddi_intr_get_navail() functionInterrupt Capability Functions
- ddi_intr_get_nintrs() functionInterrupt Capability Functions
- ddi_intr_get_pending() function
- Checking for Pending Interrupts
- Interrupt Initialization and Destruction Functions
- ddi_intr_get_pri() function
- Handling High-Level Interrupts
- Priority Management Functions
- ddi_intr_get_softint_pri() functionSoft Interrupt Functions
- ddi_intr_get_supported_types() functionInterrupt Capability Functions
- ddi_intr_hilevel() functionHigh-Level Interrupts
- ddi_intr_remove_handler() function
- Interrupt Initialization and Destruction Functions
- MSI-X Interrupts
- ddi_intr_remove_softint() functionSoft Interrupt Functions
- ddi_intr_set_cap() functionInterrupt Initialization and Destruction Functions
- ddi_intr_set_mask() function
- Setting Interrupt Masks
- Interrupt Initialization and Destruction Functions
- ddi_intr_set_nreq() functionInterrupt Request Interfaces
- ddi_intr_set_pri() functionPriority Management Functions
- ddi_intr_set_softint_pri() function
- Changing Soft Interrupt Priority
- Soft Interrupt Functions
- ddi_intr_trigger_softint() function
- Soft Interrupt Functions
- High-Level Interrupts
- DDI_INTR_UNCLAIMEDInterrupt Handler Functionality
- ddi_log_sysevent() function
- Using ddi_log_sysevent to Log
Events
- Using ddi_log_sysevent to Log
Events
- ddi_model_convert_from() functionData Sharing in ioctl
- ddi_prop_free() functionDriver Source File
- ddi_prop_get_int() functionHBA Configuration Properties
- ddi_prop_lookup() functionLooking Up Properties
- ddi_prop_lookup_string() functionDriver Source File
- ddi_prop_op() functionprop_op Entry Point
- ddi_regs_map_setup() functionddi_device_acc_attr Structure
- ddi_removing_power() functiondetach Entry Point
- DDI_RESUME
- detach() functiondetach Entry Point
- ddi_set_driver_private() functionscsi_device Structure
- DDI_SUSPEND
- detach() functiondetach Entry Point
- ddi_umem_alloc() functionAllocating Kernel Memory for User Access
- ddi_umem_free() functionFreeing Kernel Memory Exported for User Access
- DDX moduleThe X Window System Frame Buffer Specific DDX Module
- deadman kernel featureUsing the Deadman Feature
- DEBUG symbol
- Use ASSERT to Catch Invalid
Assumptions
- Compiling and Linking the Driver
- debugging
- ASSERT() macroUse ASSERT to Catch Invalid
Assumptions
- coding hintsDebugging Preparation Techniques
- common tasksUseful Debugging Tasks With kmdb and mdb
- conditional compilationUse Conditional Compilation to
Toggle Costly Debugging Features
- console frame buffer driversDeveloping, Testing, and Debugging Console Frame
Buffer Drivers
- DEBUG symbolUse ASSERT to Catch Invalid
Assumptions
- detecting kernel memory leaksDetecting Kernel Memory Leaks
- displaying kernel data structuresObtaining Kernel Data Structure Information
- kmdb debuggerUsing the kmdb Kernel Debugger
- kmem_flagsSetting kmem_flags Debugging Flags
- mdb debuggerUsing the mdb Modular Debugger
- moddebugLoading and Unloading Test Modules
- postmortemPostmortem Debugging
- preparing for disastersAvoiding Data Loss on a Test System
- setting up a serial connectionTesting With a Serial Connection
- setting up a SPARC test systemSetting Up a Target System on the SPARC Platform
- setting up an x86 test systemSetting Up a Target System on the x86 Platform
- system registersExploring System Registers With kmdb
- system fileSetting Up Test Modules
- toolsDebugging Tools
- using kernel variablesModifying Kernel Variables
- using the SPARC PROM for device debuggingPROM on SPARC Machines
- writing mdb commandsWriting Debugger Commands With mdb
- delay() functiondelay and timeout Argument
Changes
- changes todelay and timeout Argument
Changes
- dependencyPower Management Dependencies
- deprecated device access functionsDeprecated User Application Kernel
and Device Access Functions
- deprecated DMA functionsDeprecated Direct Memory Access (DMA)
Functions
- deprecated interrupt functionsDeprecated Interrupt Functions
- deprecated memory allocation functionsDeprecated Memory Allocation and Deallocation
Functions
- deprecated power management functionsDeprecated Power Management Functions
- deprecated programmed I/O functionsDeprecated Programmed I/O Functions
- deprecated property functionsDeprecated Property Functions
- deprecated SCSI functionsDeprecated SCSI Functions
- deprecated time-related functionsDeprecated Time-Related Functions
- deprecated user application kernel functionsDeprecated User Application Kernel
and Device Access Functions
- deprecated user process information functionsDeprecated User Process Information
Functions
- deprecated user space access functionsDeprecated User Space Access Functions
- deprecated virtual memory functionsDeprecated Virtual Memory Functions
- descriptor tree
- Registering Drivers to Gain Device Access
- The Descriptor Tree
- dest_adcent argument, ddi_device_copy()
- changes toddi_device_copy Argument Changes
- detach() entry point
- active power managementActive Power Management
- description ofdetach Entry Point
- hot removalHot Removal
- network driversThe mac_register and mac_unregister Functions
- system power managementSystem Power Management
- detecting kernel memory leaks with mdbDetecting Kernel Memory Leaks
- dev_advcnt argument, ddi_device_zero()
- changes toddi_device_zero Argument Changes
- dev_datasz argument, ddi_device_copy()
- changes toddi_device_copy Argument Changes
- dev_datasz argument, ddi_device_zero()
- changes toddi_device_zero Argument Changes
- dev_info_t functionsDevice Information Tree Node (dev_info_t)
Functions
- dev_ops structure
- description ofdev_ops Structure
- dev_t functionsDevice (dev_t) Functions
- devfsadm commandInstalling Drivers with add_drv
- device
- alternate settingsHow USB Devices Appear to the System
- composite
- Managing Entire Devices
- Devices With Multiple Interfaces
- configurationsHow USB Devices Appear to the System
- endpointsHow USB Devices Appear to the System
- interface numberGetting Interface Numbers
- interfacesHow USB Devices Appear to the System
- quiesce
- Example Implementation of Interrupt Resource Management
- System Quiesce Entry Point
- resume
- Example Implementation of Interrupt Resource Management
- System Quiesce Entry Point
- splitting interfaces
- Multiple-Configuration Devices
- USB Audio Compatible Device Names
- device access functions
- block driversopen Entry Point (Block Drivers)
- character driversopen Entry Point (Character
Drivers)
- deprecatedDeprecated User Application Kernel
and Device Access Functions
- tableUser Application Kernel and Device Access
Functions
- device configuration
- entry pointsDevice Configuration Concepts
- device context managementWhat Is a Device Context?
- entry pointsEntry Points for Device Context Management
- modelContext Management Model
- operationContext Management Operation
- device directory
- recoveringRecovering the Device Directory
- device drivers
- See alsoloading drivers
- See alsolinking drivers
- See alsocompiling drivers
- 64-bit drivers
- Making
a Device Driver 64-Bit Ready
- I/O Control Support for 64-Bit Capable
Device Drivers
- access from within kernelLayered Driver Interface
(LDI)
- aliasesUpdating Driver Information
- binding to device node
- Compatible Device Names
- Binding a Driver to a Device
- bindingsChecking Device Driver Bindings
- block driverEntry Points for Block Device Drivers
- configuration descriptor cloudsHot Reinsertion
- contextDriver Context
- debuggingDebugging, Testing, and
Tuning Device Drivers
- coding hintsDebugging Preparation Techniques
- setting up a serial connectionTesting With a Serial Connection
- toolsDebugging Tools
- using the PROMPROM on SPARC Machines
- definitionWhat Is a Device Driver?
- entry pointsWhat Is a Device Driver Entry Point?
- error handlingError Handling
- header filesHeader Files
- hubd USB hub driverHot Insertion
- interface association nodesDevices With Interface-Association Descriptors
- loadable interfaceLoadable Driver Interfaces
- modifying information with update_drvUpdating Driver Information
- modifying permissionsUpdating Driver Information
- module configurationSource Files
- network driversDrivers for Network Devices
- offlining
- Hot Removal
- Hotplug Callbacks
- packagingDriver Packaging
- printing messagesReturning Errors
- purpose in kernelWhat Is the Kernel?
- source filesSource Files
- standard character driverEntry Points for Character Device Drivers
- testing
- Testing Drivers
- Criteria for Testing Drivers
- tuningTuning Drivers
- USB driverUSB Drivers
- usb_ia USB interface association driverDevices With Interface-Association Descriptors
- usb_mid USB multi-interface driver
- Getting Interface Numbers
- Hot Removal
- Devices With Interface-Association Descriptors
- Devices With Multiple Interfaces
- using statsKernel Statistics
- device ID functionsDevice ID Functions
- device information
- binding a driver to a deviceBinding a Driver to a Device
- binding a driver to a USB deviceCompatible Device Names
- compatible device namesCompatible Device Names
- di_link_next_by_lnode() functionDevice Information Library Interfaces
- di_link_next_by_node() functionDevice Information Library Interfaces
- di_link_private_get() functionDevice Information Library Interfaces
- di_link_private_set() functionDevice Information Library Interfaces
- di_link_spectype() functionDevice Information Library Interfaces
- di_link_tDevice Information Library Interfaces
- di_link_to_lnode() functionDevice Information Library Interfaces
- di_lnode_devinfo() functionDevice Information Library Interfaces
- di_lnode_devt() functionDevice Information Library Interfaces
- di_lnode_name() functionDevice Information Library Interfaces
- di_lnode_next() functionDevice Information Library Interfaces
- di_lnode_private_get() functionDevice Information Library Interfaces
- di_lnode_private_set() functionDevice Information Library Interfaces
- di_lnode_tDevice Information Library Interfaces
- di_node_tDevice Information Library Interfaces
- di_walk_link() functionDevice Information Library Interfaces
- di_walk_lnode() functionDevice Information Library Interfaces
- DINFOLYRDevice Information Library Interfaces
- LDIRetrieving Target Device Information
- lnodeDevice Information Library Interfaces
- nblocks propertyDevice Sizes
- Nblocks propertyDevice Sizes
- property valuesRetrieving Target Device Property Values
- self-identifyingDevice Identification
- tree structure
- Device Tree Components
- Device Tree Components
- device interrupts Seeinterrupts; interrupt handling
- device layering SeeLDI
- device memory
- D_DEVMAP flag in cb_opscb_ops Structure
- mapping
- Mapping
Device and Kernel Memory
- Entry Points for Memory Mapped Devices
- device nodeUSB Devices and the
Oracle Solaris Device Tree
- device number
- description ofDevices as Special Files
- device pollingInterrupt Handler Functionality
- chpoll() functionMultiplexing I/O on File Descriptors
- in character driversMultiplexing I/O on File Descriptors
- poll() functionMultiplexing I/O on File Descriptors
- device power management
- componentsPower Management Components
- definition ofPower Management Framework
- dependencyPower Management Dependencies
- entry pointspower Entry Point
- interfacesDevice Power Management Interfaces
- modelDevice Power Management Model
- pm_busy_component() function
- Device Power Management
- Busy-Idle State Transitions
- Power Management States
- pm_idle_component() function
- Device Power Management
- Busy-Idle State Transitions
- Busy-Idle State Transitions
- Power Management States
- pm_lower_power() functionMultiple Component pm-components Entry
- pm_raise_power() function
- Device Power Management
- Busy-Idle State Transitions
- Multiple Component pm-components Entry
- Multiple Power Management Components
- power levelsPower Levels
- power() entry point
- Active Power Management
- Device Power Management
- power() functionpower Entry Point
- state transitionsBusy-Idle State Transitions
- USB devicesDevice Power Management
- usb_create_pm_components() functionDevice Power Management
- device registers
- mappingattach Entry Point
- device state in power managementHardware State
- device tree
- displayingDisplaying the Device Tree
- navigating, in debuggerObtaining Device Tree Information
- overviewDevice Tree Components
- purpose in kernelOracle Solaris Kernel
- device usage
- Kernel Interfaces
- SeeLDI
- device-dependency
- power.conf entryPower Management Dependencies
- device-dependency-property
- power.conf entryPower Management Dependencies
- devmap_ entry point
- devmap_access() functiondevmap_access Entry Point
- devmap_ entry points
- devmap() functionThe devmap(9E) Entry Point
- devmap_access() functiondevmap_unload Entry Point
- devmap_contextmgt()functiondevmap_contextmgt Entry
Point
- devmap_dup() functiondevmap_dup Entry Point
- devmap_map() functiondevmap_map Entry Point
- devmap_unmap() functiondevmap_unmap Entry Point
- devmap_ functions
- devmap_devmem_setup() functionAssociating Device Memory With User Mappings
- devmap_load() functiondevmap_load Entry Point
- devmap_umem_setup() functionExporting Kernel Memory to Applications
- devmap_unload() functiondevmap_unload Entry Point
- diagnosis engine
- definitionWhat Is Predictive Self-Healing?
- disaster recoveryRecovering the Device Directory
- disk
- I/O controlsDisk ioctls
- performanceDisk Performance
- disk driver testingTesting Disk Drivers
- DKI SeeDDI/DKI
- DL_ETHER
- network statisticsGLDv2 Network Statistics
- DLIOCRAW
- ioctl() functionGLDv2 I/O Control Functions
- DLPI (Data Link Provider Interface) Seenetwork drivers, GLDv2
- DLPI primitives
- DL_GET_STATISTICS_REQGLDv2 Network Statistics
- DMA
- buffer allocationAllocating Private DMA Buffers
- burst sizesDetermining Maximum Burst Sizes
- callbacksCanceling DMA Callbacks
- cookie
- DMA Software Components: Handles, Windows, and Cookies
- DMA Model
- freeing handleFreeing the DMA Handle
- freeing resourcesFreeing the DMA Resources
- handle
- Allocating a DMA Handle
- DMA Software Components: Handles, Windows, and Cookies
- DMA Model
- objectDMA Model
- object lockingObject Locking
- operationsDMA Operations
- physical addressesTypes of Host Platform DMA
- private buffer allocationAllocating Private DMA Buffers
- register structureDevice Register Structure
- resource allocationAllocating DMA Resources
- restrictionsDMA Attributes
- transfers
- DMA Transfers (Synchronous)
- DMA Operations
- virtual addressesTypes of Host Platform DMA
- windows
- DMA Windows
- DMA Software Components: Handles, Windows, and Cookies
- DMA functionsDirect Memory Access (DMA) Functions
- deprecatedDeprecated Direct Memory Access (DMA)
Functions
- driver binding nameBinding a Driver to a Device
- driver module entry points Seeentry points
- driver.conf files Seehardware configuration files
- drv_getparm() function
- changes todrv_getparm Argument Changes
- drv_usecwait(9F)Delays
- DTrace
- task queuesTask Queue DTrace SDT Probes
- dump() entry point
- block driversdump Entry Point (Block Drivers)
- DVMA
- SBus slots supportingUltra 2 SBus Address Bits
- virtual addressesTypes of Host Platform DMA
- dynamic memory allocationDynamic Memory Allocation