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