D
- data alignment for SPARC, SPARC Data Alignment
- data sharing
- using devmap(), Data Sharing in devmap()
- using ioctl(), Data Sharing in ioctl()
- using mmap(), Data Sharing in mmap()
- data storage classes, Storage Classes of Driver Data
- data structures
- dev_ops structure, dev_ops Structure
- GLDv2
- GLDv2 Declarations and Data Structures
- gld_stats Structure
- modldrv structure, modldrv Structure
- data transfers, character drivers, I/O Request Handling
- ddi_cb_register() function, Callback Interfaces
- ddi_cb_unregister() function, Callback Interfaces
- DDI-compliant drivers
- byte ordering, Endianness
- compliance testing, DDI/DKI Compliance Testing
- ddi_create_minor_node() function, Creating Minor Device Nodes
- ddi_device_copy() function, ddi_device_copy() Argument Changes
- ddi_device_zero() function, ddi_device_zero() Argument Changes
- ddi_devid_free() function, Retrieving Target Device Information
- DDI/DKI
- See also LDI
- design considerations, DDI/DKI Facilities
- and disk performance, Disk Performance
- overview, DDI/DKI Interfaces
- purpose in kernel, What Is the Kernel?
- ddi_dma_attr structure
- ddi_dma_attr Structure
- ddi_dma_attr
- ddi_dma_cookie structure, ddi_dma_cookie Structure Changes
- ddi_dma_getwin() function, DMA Software Components: Handles, Windows, and Cookies
- ddi_dma_mem_alloc() function, ddi_dma_mem_alloc() Argument Changes
- ddi_dma_nextseg() function, DMA Software Components: Handles, Windows, and Cookies
- ddi_driver_major() function
- Block Device Autoconfiguration
- Block Device Autoconfiguration
- ddi_enter_critical() function, Timing-Critical Sections
- ddi_eventcookie_t, Receiving Asynchronous Device Event Notification
- ddi_fm_capable() function, Getting the Fault Management Capability Bit Mask
- ddi_fm_ereport_post() function
- Reporting Errors
- Reporting Errors
- ddi_fm_fini() function, Cleaning Up Fault Management Resources
- ddi_fm_init() function, Declaring Fault Management Capabilities
- ddi_fm_service_impact() function, Reporting Errors
- DDI function tables, Summary of Oracle Solaris DDI/DKI Services
- ddi_get_cred() function
- drv_getparm() Argument Changes
- Data Sharing in ioctl()
- ddi_get_driver_private() function
- scsi_device Structure
- GLDv2 Driver Requirements
- ddi_get_instance() function, gld_mac_info Structure
- ddi_get_lbolt() function, drv_getparm() Argument Changes
- ddi_get_pid() function, drv_getparm() Argument Changes
- ddi_get_time() function, drv_getparm() Argument Changes
- DDI_INFO_DEVT2DEVINFO, getinfo() Entry Point
- DDI_INFO_DEVT2INSTANCE, getinfo() Entry Point
- ddi_intr_add_handler() function
- MSI-X Interrupts
- Interrupt Initialization and Destruction Functions
- Registering Interrupts
- ddi_intr_add_softint() function, Soft Interrupt Functions
- ddi_intr_alloc() function
- MSI-X Interrupts
- Interrupt Initialization and Destruction Functions
- Interrupt Request Interfaces
- ddi_intr_block_disable() function, Interrupt Initialization and Destruction Functions
- ddi_intr_block_enable() function, Interrupt Initialization and Destruction Functions
- DDI_INTR_CLAIMED, Interrupt Handler Functionality
- ddi_intr_clr_mask() function
- Interrupt Initialization and Destruction Functions
- Interrupt Function Examples
- ddi_intr_disable() function
- MSI-X Interrupts
- Interrupt Initialization and Destruction Functions
- ddi_intr_dup_handler() function
- MSI-X Interrupts
- Interrupt Initialization and Destruction Functions
- ddi_intr_enable() function
- MSI-X Interrupts
- Interrupt Initialization and Destruction Functions
- ddi_intr_free() function
- MSI-X Interrupts
- Interrupt Initialization and Destruction Functions
- ddi_intr_get_cap() function, Interrupt Capability Functions
- ddi_intr_get_hilevel_pri() function
- Priority Management Functions
- Handling High-Level Interrupts
- ddi_intr_get_navail() function, Interrupt Capability Functions
- ddi_intr_get_nintrs() function, Interrupt Capability Functions
- ddi_intr_get_pending() function
- Interrupt Initialization and Destruction Functions
- Interrupt Function Examples
- ddi_intr_get_pri() function
- Priority Management Functions
- Handling High-Level Interrupts
- ddi_intr_get_softint_pri() function, Soft Interrupt Functions
- ddi_intr_get_supported_types() function, Interrupt Capability Functions
- ddi_intr_hilevel() function, High-Level Interrupts
- ddi_intr_remove_handler() function
- MSI-X Interrupts
- Interrupt Initialization and Destruction Functions
- ddi_intr_remove_softint() function, Soft Interrupt Functions
- ddi_intr_set_cap() function, Interrupt Initialization and Destruction Functions
- ddi_intr_set_mask() function
- Interrupt Initialization and Destruction Functions
- Interrupt Function Examples
- ddi_intr_set_nreq() function, Interrupt Request Interfaces
- ddi_intr_set_pri() function, Priority Management Functions
- ddi_intr_set_softint_pri() function
- Soft Interrupt Functions
- Interrupt Function Examples
- ddi_intr_trigger_softint() function
- High-Level Interrupts
- Soft Interrupt Functions
- DDI_INTR_UNCLAIMED, Interrupt Handler Functionality
- ddi_log_sysevent() function
- Using ddi_log_sysevent() to Log Events
- Using ddi_log_sysevent() to Log Events
- ddi_model_convert_from() function, Data Sharing in ioctl()
- ddi_prop_free() function, Driver Source File
- ddi_prop_get_int() function, HBA Configuration Properties
- ddi_prop_lookup() function, Looking Up Properties
- ddi_prop_lookup_string() function, Driver Source File
- ddi_prop_op() function, prop_op() Entry Point
- ddi_regs_map_setup() function, ddi_device_acc_attr Structure
- ddi_removing_power() function, detach() Entry Point
- DDI_RESUME, detach() function, detach() Entry Point
- ddi_set_driver_private() function, scsi_device Structure
- DDI_SUSPEND, detach() function, detach() Entry Point
- ddi_umem_alloc() function, Allocating Kernel Memory for User Access
- ddi_umem_free() function, Freeing Kernel Memory Exported for User Access
- DDX module, The X Window System Frame Buffer Specific DDX Module
- deadman kernel feature, Enable the Deadman Feature to Avoid a Hard Hang
- DEBUG symbol
- Compiling and Linking the Driver
- Use ASSERT() to Catch Invalid Assumptions
- debugging
- ASSERT() macro, Use ASSERT() to Catch Invalid Assumptions
- coding hints, Debugging Preparation Techniques
- common tasks, Useful Debugging Tasks With kmdb and mdb
- conditional compilation, Use Conditional Compilation to Toggle Costly Debugging Features
- console frame buffer drivers, Developing, Testing, and Debugging Console Frame Buffer Drivers
- DEBUG symbol, Use ASSERT() to Catch Invalid Assumptions
- detecting kernel memory leaks, Detecting Kernel Memory Leaks
- displaying kernel data structures, Obtaining Kernel Data Structure Information
- system file, Setting Up Test Modules
- kmdb debugger, Using the kmdb Kernel Debugger
- kmem_flags, Setting kmem_flags Debugging Flags
- mdb debugger, Using the mdb Modular Debugger
- moddebug, Loading and Unloading Test Modules
- postmortem, Postmortem Debugging
- preparing for disasters, Avoiding Data Loss on a Test System
- setting up a serial connection, Testing With a Serial Connection
- setting up a SPARC test system, Setting Up a Target System on the SPARC Platform
- setting up an x86 test system, Setting Up a Target System on the x86 Platform
- system registers, Exploring System Registers With kmdb
- tools, Debugging Tools
- using kernel variables, Modifying Kernel Variables
- using the SPARC PROM for device debugging, PROM on SPARC Machines
- writing mdb commands, Writing Debugger Commands With mdb
- delay() function, delay() and timeout() Argument Changes
- changes to, delay() and timeout() Argument Changes
- dependency, Power Management Dependencies
- deprecated device access functions, User Application Kernel and Device Access Functions
- deprecated DMA functions, Direct Memory Access (DMA) Functions
- deprecated interrupt functions, Interrupt Functions
- deprecated memory allocation functions, Memory Allocation and Deallocation Functions
- deprecated power management functions, Power Management Functions
- deprecated programmed I/O functions, Programmed I/O Functions
- deprecated property functions, Property Functions
- deprecated SCSI functions, SCSI Functions
- deprecated time-related functions, Time-Related Functions
- deprecated user application kernel functions, User Application Kernel and Device Access Functions
- deprecated user process information functions, User Process Information Functions
- deprecated user space access functions, User Space Access Functions
- deprecated virtual memory functions, Virtual Memory Functions
- descriptor tree
- The Descriptor Tree
- Registering Drivers to Gain Device Access
- dest_adcent argument, ddi_device_copy(), changes to, ddi_device_copy() Argument Changes
- detach() entry point
- active power management, Device Power Management
- description of, detach() Entry Point
- hot removal, Hot Removal
- network drivers, GLDv3 MAC Registration Functions
- system power management, System Power Management
- detecting kernel memory leaks with mdb, Detecting Kernel Memory Leaks
- dev_advcnt argument, ddi_device_zero(), changes to, ddi_device_zero() Argument Changes
- dev_datasz argument, ddi_device_copy(), changes to, ddi_device_copy() Argument Changes
- dev_datasz argument, ddi_device_zero(), changes to, ddi_device_zero() Argument Changes
- dev_info_t functions, Device Information Tree Node (dev_info_t) Functions
- dev_ops structure, description of, dev_ops Structure
- dev_t functions, Device (dev_t) Functions
- devfsadm command, Installing Drivers with add_drv
- device
- alternate settings, How USB Devices Appear to the System
- composite
- Devices With Multiple Interfaces
- Managing Entire Devices
- configurations, How USB Devices Appear to the System
- endpoints, How USB Devices Appear to the System
- interface number, Getting Interface Numbers
- interfaces, How USB Devices Appear to the System
- quiesce
- System Quiesce Entry Point
- Example Implementation of Interrupt Resource Management
- resume
- System Quiesce Entry Point
- Example Implementation of Interrupt Resource Management
- splitting interfaces
- Devices With Multiple Interfaces
- Multiple-Configuration Devices
- device access functions
- block drivers, open() Entry Point (Block Drivers)
- character drivers, open() Entry Point (Character Drivers)
- deprecated, User Application Kernel and Device Access Functions
- table, User Application Kernel and Device Access Functions
- device configuration, entry points, Device Configuration Concepts
- device context management, What Is a Device Context?
- entry points, Entry Points for Device Context Management
- model, Context Management Model
- operation, Context Management Operation
- device-dependency, power.conf entry, Power Management Dependencies
- device-dependency-property, power.conf entry, Power Management Dependencies
- device directory, recovering, Recovering the Device Directory
- device drivers
- See also compiling drivers
- See also linking drivers
- See also loading drivers
- 64-bit drivers
- I/O Control Support for 64-Bit Capable Device Drivers
- Making a Device Driver 64-Bit Ready
- access from within kernel, Layered Driver Interface (LDI)
- aliases, Updating Driver Information
- binding to device node
- Binding a Driver to a Device
- Compatible Device Names
- bindings, Checking Device Driver Bindings
- block driver, Entry Points for Block Device Drivers
- configuration descriptor clouds, Hot Reinsertion
- context, Driver Context
- debugging, Debugging, Testing, and Tuning Device Drivers
- coding hints, Debugging Preparation Techniques
- setting up a serial connection, Testing With a Serial Connection
- tools, Debugging Tools
- using the PROM, PROM on SPARC Machines
definition, What Is a Device Driver?
- entry points, What Is a Device Driver Entry Point?
- error handling, Error Handling
- header files, Header Files
- hubd USB hub driver, Hot Insertion
- interface association nodes, Devices With Interface-Association Descriptors
- loadable interface, Loadable Driver Interfaces
- modifying information with update_drv, Updating Driver Information
- modifying permissions, Updating Driver Information
- module configuration, Source Files
- network drivers, Drivers for Network Devices
- offlining
- Hotplug Callbacks
- Hot Removal
- packaging, Driver Packaging
- printing messages, Returning Errors
- purpose in kernel, What Is the Kernel?
- source files, Source Files
- standard character driver, Entry Points for Character Device Drivers
- testing
- Criteria for Testing Drivers
- Testing Drivers
- tuning, Tuning Drivers
- USB driver, USB Drivers
- usb_ia USB interface association driver, Devices With Interface-Association Descriptors
- usb_mid USB multi-interface driver
- Devices With Multiple Interfaces
- Devices With Interface-Association Descriptors
- Hot Removal
- Getting Interface Numbers
- using kstats, Kernel Statistics
- device ID functions, Device ID Functions
- device information
- binding a driver to a device, Binding a Driver to a Device
- binding a driver to a USB device, Compatible Device Names
- compatible device names, Compatible Device Names
- di_link_next_by_lnode() function, Device Information Library Interfaces
- di_link_next_by_node() function, Device Information Library Interfaces
- di_link_private_get() function, Device Information Library Interfaces
- di_link_private_set() function, Device Information Library Interfaces
- di_link_spectype() function, Device Information Library Interfaces
- di_link_t, Device Information Library Interfaces
- di_link_to_lnode() function, Device Information Library Interfaces
- di_lnode_devinfo() function, Device Information Library Interfaces
- di_lnode_devt() function, Device Information Library Interfaces
- di_lnode_name() function, Device Information Library Interfaces
- di_lnode_next() function, Device Information Library Interfaces
- di_lnode_private_get() function, Device Information Library Interfaces
- di_lnode_private_set() function, Device Information Library Interfaces
- di_lnode_t, Device Information Library Interfaces
- di_node_t, Device Information Library Interfaces
- di_walk_link() function, Device Information Library Interfaces
- di_walk_lnode() function, Device Information Library Interfaces
- DINFOLYR, Device Information Library Interfaces
- LDI, Retrieving Target Device Information
- lnode, Device Information Library Interfaces
- nblocks property, Device Sizes
- Nblocks property, Device Sizes
- property values, Retrieving Target Device Property Values
- self-identifying, Device Identification
- tree structure
- Device Tree Components
- Device Tree Components
- device interrupts, See interrupts; interrupt handling
- device layering, See LDI
- device memory
- D_DEVMAP flag in cb_ops, cb_ops Structure
- mapping
- Entry Points for Memory Mapped Devices
- Mapping Device and Kernel Memory
- device node, USB Devices and the Oracle Solaris Device Tree
- device number, description of, Devices as Special Files
- device polling, Interrupt Handler Functionality
- in character drivers, Multiplexing I/O on File Descriptors
- chpoll() function, Multiplexing I/O on File Descriptors
- poll() function, Multiplexing I/O on File Descriptors
- device power management
- components, Power Management Components
- definition of, Power Management Framework
- dependency, Power Management Dependencies
- entry points, power() Entry Point
- interfaces, Device Power Management Interfaces
- model, Device Power Management Model
- pm_busy_component() function
- Power Management States
- Busy-Idle State Transitions
- Device Power Management
- pm_idle_component() function
- Power Management States
- Busy-Idle State Transitions
- Busy-Idle State Transitions
- Device Power Management
- pm_lower_power() function, Power Levels
- pm_raise_power() function
- Multiple Power Management Components
- Power Levels
- Busy-Idle State Transitions
- Device Power Management
- power() entry point
- Device Power Management
- Device Power Management
- power() function, power() Entry Point
- power levels, Power Levels
- state transitions, Busy-Idle State Transitions
- usb_create_pm_components() function, Device Power Management
- USB devices, Device Power Management
- device registers, mapping, attach() Entry Point
- device state in power management, Hardware State
- device tree
- displaying, Displaying the Device Tree
- navigating, in debugger, Obtaining Device Tree Information
- overview, Device Tree Components
- purpose in kernel, What Is the Kernel?
- device usage, Kernel Interfaces
- See LDI
- /devices directory
- description of, Devices as Special Files
- displaying the device tree, /devices Directory
- devmap_ entry point, devmap_access() function, devmap_access() Entry Point
- devmap_ entry points
- devmap_access() function, devmap_unload() Entry Point
- devmap_contextmgt()function, devmap_contextmgt() Entry Point
- devmap_dup() function, devmap_dup() Entry Point
- devmap() function, The devmap(9E) Entry Point
- devmap_map() function, devmap_map() Entry Point
- devmap_unmap() function, devmap_unmap() Entry Point
- devmap_ functions
- devmap_devmem_setup() function, Associating Device Memory With User Mappings
- devmap_load() function, devmap_load() Entry Point
- devmap_umem_setup() function, Exporting Kernel Memory to Applications
- devmap_unload() function, devmap_unload() Entry Point
- diagnosis engine, definition, What Is Predictive Self-Healing?
- .dict dictionary files, Message IDs and Dictionary Files
- disaster recovery, Recovering the Device Directory
- disk
- I/O controls, Disk ioctls
- performance, Disk Performance
- disk driver testing, Testing Disk Drivers
- DKI, See DDI/DKI
- DL_ETHER, network statistics, GLDv2 Network Statistics
- DLIOCRAW, ioctl() function, GLDv2 I/O Control Functions
- DLPI (Data Link Provider Interface), See network drivers, GLDv2
- DLPI primitives, DL_GET_STATISTICS_REQ, GLDv2 Network Statistics
- DMA
- buffer allocation, Allocating Private DMA Buffers
- burst sizes, Determining Maximum Burst Sizes
- callbacks, Canceling DMA Callbacks
- cookie
- DMA Model
- DMA Software Components: Handles, Windows, and Cookies
- freeing handle, Freeing the DMA Handle
- freeing resources, Freeing the DMA Resources
- handle
- DMA Model
- DMA Software Components: Handles, Windows, and Cookies
- Allocating a DMA Handle
- object, DMA Model
- object locking, Object Locking
- operations, DMA Operations
- physical addresses, Types of Host Platform DMA
- private buffer allocation, Allocating Private DMA Buffers
- register structure, Device Register Structure
- resource allocation, Allocating DMA Resources
- restrictions, DMA Attributes
- transfers
- DMA Operations
- DMA Transfers (Synchronous)
- virtual addresses, Types of Host Platform DMA
- windows
- DMA Software Components: Handles, Windows, and Cookies
- DMA Windows
- DMA functions, Direct Memory Access (DMA) Functions
- deprecated, Direct Memory Access (DMA) Functions
- driver binding name, Binding a Driver to a Device
- driver.conf files, See hardware configuration files
- driver module entry points, See entry points
- drv_getparm() function, changes to, drv_getparm() Argument Changes
- drv_usecwait(9F), Delays
- DTrace
- definition, DTrace for Dynamic Instrumentation
- task queues, Task Queue DTrace SDT Probes
- dump() entry point, block drivers, dump() Entry Point (Block Drivers)
- DVMA
- SBus slots supporting, Physical SBus Addresses
- virtual addresses, Types of Host Platform DMA
- dynamic memory allocation, Dynamic Memory Allocation