D
- .dict dictionary files
Message IDs and Dictionary Files
- 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
gld_stats Structure
GLDv2 Declarations and Data Structures
- modldrv structure
modldrv Structure
- data transfers
- character drivers
I/O Request Handling
- DDI function tables
Summary
of
Oracle Solaris
DDI/DKI Services
- DDI-compliant drivers
- byte ordering
Endianness
- compliance testing
DDI/DKI Compliance Testing
- DDI/DKI See also
LDI- and disk performance
Disk Performance
- design considerations
DDI/DKI Facilities
- overview
DDI/DKI Interfaces
- purpose in kernel
Oracle Solaris Kernel
- ddi_cb_register() function
Callback Interfaces
- ddi_cb_unregister() function
Callback Interfaces
- 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_dma_attr structure
ddi_dma_attr
ddi_dma_attr Structure
- 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 Standard I/O Controller Errors
Queueing an Error Event
- ddi_fm_fini() function
Cleaning Up Fault Management Resources
- ddi_fm_init() function
Declaring Fault Management Capabilities
- ddi_fm_service_impact() function
Service 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() 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
Registering Interrupts
Interrupt Initialization and Destruction Functions
MSI-X Interrupts
- ddi_intr_add_softint() function
Soft Interrupt Functions
- ddi_intr_alloc() function
Interrupt Request Interfaces
Interrupt Initialization and Destruction Functions
MSI-X Interrupts
- 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
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() function
Interrupt Capability Functions
- ddi_intr_get_hilevel_pri() function
Handling High-Level Interrupts
Priority Management Functions
- ddi_intr_get_navail() function
Interrupt Capability Functions
- ddi_intr_get_nintrs() function
Interrupt 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() 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
Interrupt Initialization and Destruction Functions
MSI-X Interrupts
- ddi_intr_remove_softint() function
Soft Interrupt Functions
- ddi_intr_set_cap() function
Interrupt Initialization and Destruction Functions
- ddi_intr_set_mask() function
Setting Interrupt Masks
Interrupt Initialization and Destruction Functions
- ddi_intr_set_nreq() function
Interrupt Request Interfaces
- ddi_intr_set_pri() function
Priority 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_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
Using the Deadman Feature
- DEBUG symbol
Use ASSERT to Catch Invalid
Assumptions
Compiling and Linking the Driver
- 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
- 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
- system file
Setting Up Test Modules
- 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
Deprecated User Application Kernel
and Device Access Functions
- deprecated DMA functions
Deprecated Direct Memory Access (DMA)
Functions
- deprecated interrupt functions
Deprecated Interrupt Functions
- deprecated memory allocation functions
Deprecated Memory Allocation and Deallocation
Functions
- deprecated power management functions
Deprecated Power Management Functions
- deprecated programmed I/O functions
Deprecated Programmed I/O Functions
- deprecated property functions
Deprecated Property Functions
- deprecated SCSI functions
Deprecated SCSI Functions
- deprecated time-related functions
Deprecated Time-Related Functions
- deprecated user application kernel functions
Deprecated User Application Kernel
and Device Access Functions
- deprecated user process information functions
Deprecated User Process Information
Functions
- deprecated user space access functions
Deprecated User Space Access Functions
- deprecated virtual memory functions
Deprecated Virtual Memory Functions
- descriptor tree
Registering Drivers to Gain Device Access
The Descriptor Tree
- dest_adcent argument, ddi_device_copy()
- changes to
ddi_device_copy Argument Changes
- detach() entry point
- active power management
Active Power Management
- description of
detach Entry Point
- hot removal
Hot Removal
- network drivers
The mac_register and mac_unregister 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
Managing Entire Devices
Devices With Multiple Interfaces
- 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
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 drivers
open Entry Point (Block Drivers)
- character drivers
open Entry Point (Character
Drivers)
- deprecated
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 directory
- recovering
Recovering the Device Directory
- device drivers
- See also
loading drivers - See also
linking drivers - See also
compiling drivers
- 64-bit drivers
Making
a Device Driver 64-Bit Ready
I/O Control Support for 64-Bit Capable
Device Drivers
- access from within kernel
Layered Driver Interface
(LDI)
- aliases
Updating Driver Information
- binding to device node
Compatible Device Names
Binding a Driver to a Device
- 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
Hot Removal
Hotplug Callbacks
- 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
Testing Drivers
Criteria for 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
Getting Interface Numbers
Hot Removal
Devices With Interface-Association Descriptors
Devices With Multiple Interfaces
- using stats
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
Mapping
Device and Kernel Memory
Entry Points for Memory Mapped Devices
- device node
USB Devices and the
Oracle Solaris Device Tree
- device number
- description of
Devices as Special Files
- device polling
Interrupt Handler Functionality- chpoll() function
Multiplexing I/O on File Descriptors
- in character drivers
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
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() function
Multiple 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 levels
Power Levels
- power() entry point
Active Power Management
Device Power Management
- power() function
power Entry Point
- state transitions
Busy-Idle State Transitions
- USB devices
Device Power Management
- usb_create_pm_components() function
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
Oracle Solaris Kernel
- device usage
Kernel Interfaces- See
LDI
- device-dependency
- power.conf entry
Power Management Dependencies
- device-dependency-property
- power.conf entry
Power Management Dependencies
- devmap_ entry point
- devmap_access() function
devmap_access Entry Point
- devmap_ entry points
- devmap() function
The devmap(9E) Entry Point
- devmap_access() function
devmap_unload Entry Point
- devmap_contextmgt()function
devmap_contextmgt Entry
Point
- devmap_dup() function
devmap_dup 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?
- 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 Software Components: Handles, Windows, and Cookies
DMA Model
- freeing handle
Freeing the DMA Handle
- freeing resources
Freeing the DMA Resources
- handle
Allocating a DMA Handle
DMA Software Components: Handles, Windows, and Cookies
DMA Model
- 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 Transfers (Synchronous)
DMA Operations
- virtual addresses
Types of Host Platform DMA
- windows
DMA Windows
DMA Software Components: Handles, Windows, and Cookies
- DMA functions
Direct Memory Access (DMA) Functions- deprecated
Deprecated Direct Memory Access (DMA)
Functions
- driver binding name
Binding a Driver to a Device
- driver module entry points See
entry points
- driver.conf files See
hardware configuration files
- drv_getparm() function
- changes to
drv_getparm Argument Changes
- drv_usecwait(9F)
Delays
- DTrace
- task queues
Task Queue DTrace SDT Probes
- dump() entry point
- block drivers
dump Entry Point (Block Drivers)
- DVMA
- SBus slots supporting
Ultra 2 SBus Address Bits
- virtual addresses
Types of Host Platform DMA
- dynamic memory allocation
Dynamic Memory Allocation