Go to main content
Index
Numbers and Symbols
- /devices directory
- description ofDevices as Special Files
- displaying the device tree/devices Directory
- /etc/driver_aliases fileChecking Device Driver Bindings
- /var/adm/messages fileAdditional Suggestions for Testing Console Frame
Buffer Drivers
- 64-bit device drivers
- Making a Device Driver 64-Bit Ready
- I/O Control Support for 64-Bit Capable
Device Drivers
- _fini() entry point
- required implementationLoadable Module Entry Points
- _info() entry point
- required implementationLoadable Module Entry Points
- _init() entry point
- required implementationLoadable Module Entry Points
A
- add_drv command
- Checking Device Driver Bindings
- How to Build and Load the Layered Driver
- description ofInstalling Drivers with add_drv
- device nameCompatible Device Names Shown by the Print Configuration
Command
- address spaces
- description ofVirtual Memory
- agent
- definitionWhat Is Predictive Self-Healing?
- allocb()functionRequest Features and Fields
- alternate access mechanismsProgrammed I/O Functions
- aphysio() functionDMA Transfers (Asynchronous)
- aread() entry point
- asynchronous data transfersDifferences Between Synchronous and Asynchronous
I/O
- ASSERT() macro
- Use ASSERT to Catch Invalid
Assumptions
- Compiling and Linking the Driver
- associating kernel memory with user applicationsAssociating Kernel Memory With User Mappings
- asynchronous communication drivers
- testingAsynchronous Communication Drivers
- asynchronous data transfers
- block driversAsynchronous Data Transfers (Block Drivers)
- character driversDifferences Between Synchronous and Asynchronous
I/O
- USBSynchronous and Asynchronous Transfers and Callbacks
- attach() entry point
- Device Power Management
- Registering Drivers to Gain Device Access
- active power managementActive Power Management
- description ofattach Entry Point
- network drivers
- GLDv2 Network Device Driver Framework
- The mac_register and mac_unregister Functions
- system power managementSystem Power Management
- auto-request sense modeAuto-Request Sense Mode
- autoconfiguration
- of block devicesBlock Device Autoconfiguration
- of character devicesCharacter Device Autoconfiguration
- of SCSI HBA driversAutoconfiguration Entry Points
- of SCSI target driversAutoconfiguration for SCSI Target Drivers
- overviewDriver Loading and Unloading
- routinesAutoconfiguration Entry Points
- Automated System Recovery Unit (ASRU)
- definitionDiagnosis, Suspect Lists, and Fault Events
- autoshutdown thresholdAutoshutdown Threshold
- autovectored interruptsDevice Interrupts
- avoiding data loss while testingAvoiding Data Loss on a Test System
- awrite() entry point
- asynchronous data transfersDifferences Between Synchronous and Asynchronous
I/O
B
- binary compatibility
- description ofDDI/DKI Interfaces
- potential problemsModify Routines That Handle Data Sharing
- binding a driver to a deviceBinding a Driver to a Device
- binding a driver to a USB deviceCompatible Device Names
- biodone() functionSynchronous Data Transfers (Block Drivers)
- blittingVIS_CONSDISPLAY Macro
- block driver
- autoconfiguration ofBlock Device Autoconfiguration
- buf structurebuf Structure
- cb_ops structurecb_ops Structure
- overviewEntry Points for Block Device Drivers
- slice numberBlock Device Autoconfiguration
- block driver entry pointsBlock Driver Roadmap
- close() functionclose Entry Point (Block Drivers)
- open() functionopen Entry Point (Block Drivers)
- strategy() functionstrategy Entry Point
- booting the kmdb debugger
- on SPARC systemsBooting kmdb With an Alternate Kernel on the SPARC Platform
- on x86 systemsBooting kmdb With an Alternate Kernel on the x86 Platform
- buf structure
- changes tobuf Structure Changes
- description ofbuf Structure
- buffer allocation, DMAAllocating Private DMA Buffers
- buffered I/O functionsBuffered I/O Functions
- burst sizes, DMADetermining Maximum Burst Sizes
- bus
- architecturesBus Architectures
- PCI architecturesPCI Local Bus
- SBus architectureSBus Architecture
- SCSIIntroduction to Target Drivers
- bus nexus device drivers
- description ofDevice Tree Components
- bus-master DMA
- Performing Bus-Master DMA Transfers
- Bus-Master DMA
- byte orderingEndianness and Portability
C
- .conf files Seehardware configuration files
- cache
- description ofCPU and System I/O Cache
- callback functions
- description ofCallback Functions
- example ofDMA Callback Example
- cb_ops structure
- description ofcb_ops Structure
- cc commandCompiling and Linking the Driver
- cfgadm_usb commandMultiple-Configuration Devices
- character device driver
- aphysio() functionDMA Transfers (Asynchronous)
- autoconfigurationCharacter Device Autoconfiguration
- cb_ops structurecb_ops Structure
- close() entry pointclose Entry Point (Character
Drivers)
- data transfersI/O Request Handling
- device pollingMultiplexing I/O on File Descriptors
- entry points forCharacter Driver Roadmap
- I/O control mechanismMiscellaneous I/O Control
- memory mappingMapping Device Memory
- minphys() functionminphys Entry Point
- open() entry pointopen Entry Point (Character
Drivers)
- overviewEntry Points for Character Device Drivers
- physio() functionDMA Transfers (Synchronous)
- strategy() entry pointstrategy Entry Point
- checksumming
- Hardware Checksumming: MAC Layer
- Hardware Checksumming: Hardware
- Hardware Checksum Offload
- cloning SCSI HBA driverTransport Structure Cloning
- close() entry point
- block driversclose Entry Point (Block Drivers)
- description ofclose Entry Point (Character
Drivers)
- cmn_err() functionWrite a Short Message to the Layered Device
- debuggingUse cmn_err to Log Driver
Activity
- description ofReturning Errors
- example ofprint Entry Point (Block
Drivers)
- compatible property
- description ofDevice Node Names
- compiling driversCompiling and Linking the Driver
- condition variable functionsKernel Thread Control and Synchronization
Functions
- cv_broadcast()Signaling the Condition
- cv_destroy()Initializing Condition Variables
- cv_init()Initializing Condition Variables
- cv_timedwait()cv_wait and cv_timedwait Functions
- cv_timedwait_sig()cv_timedwait_sig Function
- cv_wait()Waiting for the Condition
- cv_wait_sig()cv_wait_sig Function
- condition variables
- and mutex locksCondition Variables in Thread Synchronization
- routinesInitializing Condition Variables
- configuration
- testing device driversTesting Drivers
- configuration descriptor cloudsHot Reinsertion
- configuration entry points
- attach() functionattach Entry Point
- detach() functiondetach Entry Point
- getinfo() functiongetinfo Entry Point
- configuration files, hardware Seehardware configuration files
- console frame buffer driversConsole Frame Buffer Drivers
- debuggingDeveloping, Testing, and Debugging Console Frame
Buffer Drivers
- kernel terminal emulatorOracle Solaris Consoles and the Kernel Terminal Emulator
- polled I/O interfaces
- Implementing Polled I/O in Console Frame Buffer Drivers
- Polled I/O Interfaces
- standalone mode
- Implementing Polled I/O in Console Frame Buffer Drivers
- Polled I/O Interfaces
- video mode change callback interface
- Frame Buffer Specific Configuration Module
- VIS_DEVINIT Macro
- Video Mode Change Callback Interface
- visual I/O interfacesConsole Visual I/O Interfaces
- context management Seedevice context management
- context of device driverDriver Context
- cookies
- DMADMA Model
- copying data
- copyin() functionUser Addresses
- copyout() functionUser Addresses
- CPR (CheckPoint and Resume)System Power Management
- crash dumps, savingCapture System Crash Dumps
- crash commandPostmortem Debugging
- csi_arq_status structure
- changes tocsi_arq_status Structure
Changes
- cv_timedwait() function
- changes tocv_timedwait and cv_timedwait_sig Argument Changes
- cv_timedwait_sig() function
- changes tocv_timedwait and cv_timedwait_sig Argument Changes
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 and Portability
- 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 Structure
- 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() functionPriority Management Functions
- ddi_intr_get_hilevel_pri() functionHandling High-Level Interrupts
- 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() functionSoft Interrupt Functions
- ddi_intr_set_softint_pri() functionChanging Soft Interrupt Priority
- ddi_intr_trigger_softint() functionSoft Interrupt Functions
- ddi_intr_trigger_softint() functionHigh-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 Systems
- 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 Systems
- 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 and Limits
- 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 in Chip Access
- 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
E
- eeprom(1M) commandAdditional Suggestions for Testing Console Frame
Buffer Drivers
- EHCI (Enhanced Host Controller Interface)USB Client Drivers
- ENA (Error Numeric Association)Queueing an Error Event
- entry points
- attach() function
- Device Power Management
- Registering Drivers to Gain Device Access
- attach Entry Point
- attach Entry Point
- active power managementActive Power Management
- system power managementSystem Power Management
- definitionWhat Is a Device Driver Entry Point?
- detach() function
- Active Power Management
- detach Entry Point
- detach Entry Point
- hot removalHot Removal
- system power managementSystem Power Management
- device context managementEntry Points for Device Context Management
- for block drivers
- Block Driver Roadmap
- Block Driver Roadmap
- for character drivers
- Character Driver Roadmap
- Character Driver Roadmap
- for device configurationDevice Configuration Concepts
- for device power managementpower Entry Point
- for network driversGLDv2 Entry Points
- ioctl() functionMiscellaneous I/O Control
- power() function
- Active Power Management
- Device Power Management
- power Entry Point
- probe() functionprobe Entry Point
- quiesce() functionSystem Quiesce Entry Point
- SCSA HBA summarySCSA HBA Entry Point Summary
- system power managementEntry Points Used by System Power Management
- ereport
- definitionWhat Is Predictive Self-Healing?
- ereport event
- definitionWhat Is Predictive Self-Healing?
- error handlingFunctionality Testing
- error messages, printing
- print Entry Point (Block
Drivers)
- Returning Errors
- Ethernet V2 SeeDL_ETHER
- event registry
- Queueing an Error Event
- Message IDs and Dictionary Files
- events
- asynchronous notificationReceiving Asynchronous Device Event Notification
- attributesDefining Event Attributes
- description ofIntroduction to Events
- hotplug notificationHotplug Callbacks
- Eversholt fault tree (eft) rulesQueueing an Error Event
- exporting device memory to user applicationsAssociating Device Memory With User Mappings
- external registersInternal Sequencing Logic
- system fileSetting Up Test Modules
F
- _fini() entry point
- example of_fini Example
- network driversThe mac_init_ops and mac_fini_ops Functions
- fault
- definitionWhat Is Predictive Self-Healing?
- fault event
- definitionWhat Is Predictive Self-Healing?
- fault management
- pci_ereport_setup() functionDeclaring Fault Management Capabilities
- .dict dictionary filesMessage IDs and Dictionary Files
- .po message filesMessage IDs and Dictionary Files
- access or DMA handle errorService Impact Function
- agentWhat Is Predictive Self-Healing?
- Automated System Recovery Unit (ASRU)Diagnosis, Suspect Lists, and Fault Events
- DDI_FM_* I/O controller errorsReporting Standard I/O Controller Errors
- 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_SERVICE_* service impact valuesService Impact Function
- diagnosis engineWhat Is Predictive Self-Healing?
- eft diagnosis engineReporting Standard I/O Controller Errors
- ENA (Error Numeric Association)Queueing an Error Event
- ereport
- Error Handling
- What Is Predictive Self-Healing?
- ereport events
- Queueing an Error Event
- What Is Predictive Self-Healing?
- error handlingError Handling
- event registry
- Reporting Standard I/O Controller Errors
- Queueing an Error Event
- Message IDs and Dictionary Files
- Eversholt fault tree (eft) rulesQueueing an Error Event
- faultWhat Is Predictive Self-Healing?
- fault event
- System Topology
- What Is Predictive Self-Healing?
- fault management capabilitiesDeclaring Fault Management Capabilities
- fault management capabilities, declaringDeclaring Fault Management Capabilities
- fault management capability bit maskGetting the Fault Management Capability Bit Mask
- fault management capability propertiesDeclaring Fault Management Capabilities
- fault management resources, cleaning upCleaning Up Fault Management Resources
- fault manager daemon fmdOracle Solaris Fault Manager
- fault messagesMessage IDs and Dictionary Files
- Field Replaceable Unit (FRU)Diagnosis, Suspect Lists, and Fault Events
- fmadm commandResponse Agents
- fmdump commandDiagnosis, Suspect Lists, and Fault Events
- I/O Fault ServicesHardening Oracle Solaris Drivers
- interfacesFault Management Functions
- list suspect
- Message IDs and Dictionary Files
- Diagnosis, Suspect Lists, and Fault Events
- pci_ereport_post() functionDetecting and Reporting PCI-Related Errors
- pci_ereport_seetup() functionDetecting and Reporting PCI-Related Errors
- pci_ereport_teardown() function
- Detecting and Reporting PCI-Related Errors
- Cleaning Up Fault Management Resources
- response agentResponse Agents
- retire agentResponse Agents
- suspect listDiagnosis, Suspect Lists, and Fault Events
- topology of systemSystem Topology
- Fault Management Architecture (FMA) Seefault management
- faults
- latent fault, definition ofPeriodic Health Checks
- fbconfig() moduleFrame Buffer Specific Configuration Module
- fbconfig(1M) commandTesting the Video Mode Change Callback Function
- FDDI (Fibre Distributed Data Interface)TPR and FDDI: SNAP Processing
- Fibre Channel
- supported HBA interfacesSupported Fibre Channel HBA API
- fibre distributed data interface SeeDL_FDDI
- Field Replaceable Unit (FRU)
- definitionDiagnosis, Suspect Lists, and Fault Events
- file system I/OFile I/O
- first-party DMA
- Performing First-Party DMA Transfers
- First-Party DMA
- flags argument, ddi_dma_mem_alloc()
- changes toddi_dma_mem_alloc Argument
Changes
- flow of control for power managementPower Management Flow of Control
- fmadm commandResponse Agents
- fmd fault manager daemonOracle Solaris Fault Manager
- fmdump commandDiagnosis, Suspect Lists, and Fault Events
- freemsg() functionRequest Features and Fields
- functions
- Seeindividual functions
- See AlsoLDI functions
- See Alsodevice power management
- See Alsocondition variable functions
- Seespecific function name
- fuser command
- display device usage informationDevice User Command Interfaces
G
- getinfo() entry pointgetinfo Entry Point
- GCCCompiling and Linking the Driver
- gcc commandCompiling and Linking the Driver
- generic device nameGeneric Device Names
- getmajor() functionBlock Device Autoconfiguration
- getrbuf() function
- changes togetrbuf Argument Changes
- getting major numbers
- example ofBlock Device Autoconfiguration
- GLD (Generic LAN Driver) Seenetwork drivers
- gld() entry pointGLDv2 Network Device Driver Framework
- gld() functionsGLDv2 Network Device Driver Framework
- gld(9F) function
- network driverGLDv2 Driver Requirements
- gld_intr() functiongld_intr Function
- gld_mac_alloc() functiongld_mac_alloc Function
- gld_mac_free() functiongld_mac_free Function
- gld_mac_info structureGLDv2 Network Device Driver Framework
- description ofgld_mac_info Structure
- GLDv2 argumentsGLDv2 Function Arguments
- network driversGLDv2 Driver Requirements
- used in gld_intr() functiongld_intr Function
- gld_recv() functiongld_recv Function
- gld_register() functiongld_register Function
- gld_sched() functiongld_sched Function
- gld_stats structure
- network driverGLDv2 Network Statistics
- gld_unregister() functiongld_unregister Function
- gldm_get_stats()
- description ofGLDv2 Network Statistics
- gldm_private structuregld_mac_info Structure
- GLDv2 data structures
- gld_mac_infogld_mac_info Structure
- gld_statsgld_stats Structure
- GLDv2 entry points
- gldm_get_stats()gldm_get_stats Entry
Point
- gldm_intr()gldm_intr Entry Point
- gldm_ioctl()gldm_ioctl Entry Point
- gldm_reset()gldm_reset Entry Point
- gldm_send()gldm_send Entry Point
- gldm_set_mac_addr()gldm_set_mac_addr Entry
Point
- gldm_set_multicast()gldm_set_multicast Entry
Point
- gldm_set_promiscuous()gldm_set_promiscuous Entry
Point
- gldm_start()gldm_start Entry Point
- gldm_stop()gldm_stop Entry Point
- GLDv2 ioctl functionsGLDv2 I/O Control Functions
- GLDv2 network statisticsGLDv2 Network Statistics
- GLDv2 service routines
- gld_intr() functiongld_intr Function
- gld_mac_alloc() functiongld_mac_alloc Function
- gld_mac_free() functiongld_mac_free Function
- gld_recv() functiongld_recv Function
- gld_register() functiongld_register Function
- gld_sched() functiongld_sched Function
- gld_unregister() functiongld_unregister Function
- GLDv2 symbols
- GLD_BADARGGLDv2 Return Values
- GLD_FAILUREGLDv2 Return Values
- GLD_MAC_PROMISC_MULTIGLDv2 Function Arguments
- GLD_MAC_PROMISC_NONEGLDv2 Function Arguments
- GLD_MAC_PROMISC_PHYSGLDv2 Function Arguments
- GLD_MULTI_DISABLEgldm_set_multicast Entry
Point
- GLD_MULTI_ENABLEgldm_set_multicast Entry
Point
- GLD_NOLINKgldm_send Entry Point
- GLD_NORESOURCESgld_sched Function
- GLD_NOTSUPPORTEDgldm_set_mac_addr Entry
Point
- GLD_SUCCESSGLDv2 Return Values
- graphics devices
- device context management ofContext Management Model
H
- handle, DMA
- Freeing the DMA Handle
- Allocating a DMA Handle
- DMA Model
- hardening driversHardening Oracle Solaris Drivers
- hardware checksumming
- Hardware Checksumming: MAC Layer
- Hardware Checksumming: Hardware
- Hardware Checksum Offload
- hardware configuration files
- Writing a Hardware Configuration File
- Configuration Files
- PCI devicesPCI Hardware Configuration Files
- SBus devicesSBus Hardware Configuration Files
- SCSI target devicesHardware Configuration File
- where to placeCopying the Driver to a Module Directory
- hardware contextWhat Is a Device Context?
- hardware state in power managementHardware State
- HBA driver SeeSCSI HBA driver
- header files for device driversHeader Files
- high-level mutexes
- interruptsHigh-Level Mutexes
- host bus adapter transport layerSCSA Interface
- hot-plug Seehotplugging
- hotpluggable drivers Seehotplugging
- hotpluggingHotplugging and Device Drivers
- and SCSI HBA driver
- Dynamic Reconfiguration
- Hotplugging and Device Drivers
- USB deviceHotplugging USB Devices
- hub driverUSB Client Drivers
- hubd USB hub driverHot Insertion
I
- _info() entry point
- example of_info Example
- _init() entry point
- example of_init Function
- network driversThe mac_init_ops and mac_fini_ops Functions
- I/O
- asynchronous data transfers
- Asynchronous Data Transfers (Block Drivers)
- Differences Between Synchronous and Asynchronous
I/O
- byte streamEntry Points for Character Device Drivers
- disk controlsDisk ioctls
- DMA transfersDMA Transfers (Synchronous)
- file system structureFile I/O
- miscellaneous control ofMiscellaneous I/O Control
- multiplexingMultiplexing I/O on File Descriptors
- polled I/O interfaces
- Implementing Polled I/O in Console Frame Buffer Drivers
- Polled I/O Interfaces
- programmed transfersProgrammed I/O Transfers
- scatter/gather structuresVectored I/O
- synchronous data transfers
- Synchronous Data Transfers (Block Drivers)
- Differences Between Synchronous and Asynchronous
I/O
- visual I/O interfacesConsole Visual I/O Interfaces
- IEEE 802.3Ethernet V2 and ISO 8802-3 (IEEE 802.3)
- IEEE 802.5TPR and FDDI: SNAP Processing
- ILP32
- use in devmap()Data Sharing in devmap
- use in ioctl()Data Sharing in ioctl
- use in mmap()Data Sharing in mmap
- ILP64
- use in mmap()Data Sharing in mmap
- instance numbersDevice Instances and Instance Numbers
- interface association nodesDevices With Interface-Association Descriptors
- internal mode registersInternal Sequencing Logic
- internal sequencing logicInternal Sequencing Logic
- interrupt functionsInterrupt Functions
- interrupt handlers
- functionalityInterrupt Handler Functionality
- registeringRegistering Interrupts
- interrupt handlingInterrupt Handlers
- callback handler functionCallback Interfaces
- clearing masksClearing Interrupt Masks
- ddi_cb_register() functionCallback Interfaces
- ddi_cb_unregister() functionCallback Interfaces
- ddi_intr_add_handler() functionInterrupt Initialization and Destruction Functions
- ddi_intr_add_handler() function
- Registering Interrupts
- 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_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() functionInterrupt Initialization and Destruction Functions
- ddi_intr_dup_handler() functionMSI-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() functionPriority Management Functions
- ddi_intr_get_hilevel_pri() functionHandling High-Level Interrupts
- ddi_intr_get_navail() functionInterrupt Capability Functions
- ddi_intr_get_nintrs() functionInterrupt Capability Functions
- ddi_intr_get_pending() functionInterrupt Initialization and Destruction Functions
- ddi_intr_get_pending() functionChecking for Pending Interrupts
- 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() functionInterrupt Initialization and Destruction Functions
- ddi_intr_remove_handler() functionMSI-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() functionSoft Interrupt Functions
- ddi_intr_set_softint_pri() functionChanging Soft Interrupt Priority
- ddi_intr_trigger_softint() functionSoft Interrupt Functions
- ddi_intr_trigger_softint() functionHigh-Level Interrupts
- gld_intr() functiongld_intr Function
- high-level interrupts
- Handling High-Level Interrupts
- Software Interrupts
- High-Level Interrupts
- overviewInterrupt Handling
- pending interruptsChecking for Pending Interrupts
- setting masksSetting Interrupt Masks
- software interrupts
- Handling High-Level Interrupts
- Changing Soft Interrupt Priority
- Software Interrupts
- interrupt property
- definitionInterrupt Handling
- Interrupt Resource ManagementInterrupt Resource Management
- interrupts
- allocatingInterrupt Request Interfaces
- callback supportCallback Interfaces
- capability functionsInterrupt Capability Functions
- changing soft interrupt priority exampleInterrupt Function Examples
- checking pending interrupts exampleInterrupt Function Examples
- clearing interrupt masks exampleInterrupt Function Examples
- common problems withInterrupt Issues
- description ofInterrupt Handler Overview
- handling high-level interrupts examplesHigh-Level Interrupt Handling Example
- handling low-level interrupts exampleHigh-level Interrupt Routine
- high-level mutexesHigh-Level Mutexes
- initialization and destruction functionsInterrupt Initialization and Destruction Functions
- interrupt handling exampleInterrupt Handler Functionality
- legacy definedDevice Interrupts
- message-signaled definedDevice Interrupts
- MSI definedDevice Interrupts
- MSI implementationMSI Interrupts
- MSI-X definedDevice Interrupts
- MSI-X implementationMSI-X Interrupts
- network driversGLDv2 Driver Requirements
- priority levelsHigh-Level Interrupts
- priority management functionsPriority Management Functions
- registering legacy interrupt exampleRegistering a Legacy Interrupt
- registering legacy interruptsRegistering Legacy Interrupts
- registering MSI interruptsRegistering MSI Interrupts
- registering MSI interrupts exampleRegistering a Set of MSI Interrupts
- removing legacy interrupt exampleRemoving a Legacy Interrupt
- removing MSI interrupts exampleRemoving MSI Interrupts
- requestingInterrupt Request Interfaces
- setting interrupt masks exampleInterrupt Function Examples
- soft interrupt functionsSoft Interrupt Functions
- software interruptsHandling High-Level Interrupts
- types ofDevice Interrupts
- using legacyLegacy Interrupts
- writing handlersInterrupt Handlers
- ioctl() function
- character driversioctl Entry Point (Character
Drivers)
- commandsWell Known ioctl Interfaces
- DLIOCRAWGLDv2 I/O Control Functions
- ioctl(9E) driver entry pointSPARC Platform Console Communication
- iovec structureVectored I/O
- IRM SeeInterrupt Resource Management
- ISO 8802-3Ethernet V2 and ISO 8802-3 (IEEE 802.3)
- ISO 9314-2TPR and FDDI: SNAP Processing
- ISR (interrupt service routine)Interrupt Handler Functionality
K
- _KERNEL symbolCompiling and Linking the Driver
- kernel
- debugger Seekmdb debugger
- device treeOracle Solaris Kernel
- memory
- allocationDynamic Memory Allocation
- associating with user applicationsAssociating Kernel Memory With User Mappings
- detecting leaks with mdbDetecting Kernel Memory Leaks
- module directoryCopying the Driver to a Module Directory
- overviewWhat Is the Kernel?
- kernel data structuresObtaining Kernel Data Structure Information
- kernel logging functionsKernel Logging and Printing Functions
- kernel statistics Seestats
- kernel statistics functionsKernel Statistics Functions
- kernel terminal emulatorOracle Solaris Consoles and the Kernel Terminal Emulator
- kernel thread functionsKernel Thread Control and Synchronization
Functions
- kernel variables
- settingSetting Kernel Variables
- use with debuggersModifying Kernel Variables
- usingSetting Up Test Modules
- kmdb debuggerUsing the kmdb Kernel Debugger
- booting on SPARC systemsBooting kmdb With an Alternate Kernel on the SPARC Platform
- booting on x86 systemsBooting kmdb With an Alternate Kernel on the x86 Platform
- macroskmdb Macros for Driver Developers
- setting breakpointsSetting Breakpoints in kmdb
- kmdb kernel debuggerUsing the Deadman Feature
- kmem_alloc() functionDynamic Memory Allocation
- kmem_flags kernel variableSetting kmem_flags Debugging Flags
- kmem_free() functionRetrieving Target Device Information
- kstats Seenetwork statistics
- functionsKernel Statistics Functions
- task queuesTask Queue Kernel Statistics Counters
L
- latent fault
- definition ofPeriodic Health Checks
- layered driver handle SeeLDI
- Layered Driver Interface SeeLDI
- layered identifier SeeLDI
- ld commandCompiling and Linking the Driver
- LDILayered Driver Interface (LDI)
- definitionOracle Solaris Kernel
- device accessKernel Interfaces
- device consumerLDI Overview
- device informationKernel Interfaces
- device layeringUser Interfaces
- device usage
- Device User Command Interfaces
- Print System Configuration Command Interfaces
- User Interfaces
- Kernel Interfaces
- event notification interfacesReceiving Asynchronous Device Event Notification
- fuser commandDevice User Command Interfaces
- kernel device consumerLDI Overview
- layered driverLDI Overview
- layered driver handle
- Driver Source File
- Layered Driver Handles – Target Devices
- layered identifier
- Driver Source File
- Layered Identifiers – Kernel Device Consumers
- libdevinfo interfacesUser Interfaces
- prtconf commandPrint System Configuration Command Interfaces
- target device
- Layered Driver Handles – Target Devices
- LDI Overview
- LDI functions
- ldi_add_event_handler() functionReceiving Asynchronous Device Event Notification
- ldi_aread() functionAccessing Target Devices
- ldi_awrite() functionAccessing Target Devices
- ldi_close() function
- Driver Source File
- Opening and Closing Target Devices
- ldi_devmap() functionAccessing Target Devices
- ldi_dump() functionAccessing Target Devices
- ldi_get_dev() functionRetrieving Target Device Information
- ldi_get_devid() functionRetrieving Target Device Information
- ldi_get_eventcookie() functionReceiving Asynchronous Device Event Notification
- ldi_get_minor_name() functionRetrieving Target Device Information
- ldi_get_otyp() functionRetrieving Target Device Information
- ldi_get_size() functionRetrieving Target Device Information
- ldi_getmsg() functionAccessing Target Devices
- ldi_ident_from_dev() functionDriver Source File
- ldi_ident_from_dev() functionLayered Identifiers – Kernel Device Consumers
- ldi_ident_from_dip() functionLayered Identifiers – Kernel Device Consumers
- ldi_ident_from_stream() functionLayered Identifiers – Kernel Device Consumers
- ldi_ident_release() function
- Driver Source File
- Layered Identifiers – Kernel Device Consumers
- ldi_ioctl() functionAccessing Target Devices
- ldi_open_by_dev() functionOpening and Closing Target Devices
- ldi_open_by_devid() functionOpening and Closing Target Devices
- ldi_open_by_name() function
- Driver Source File
- Opening and Closing Target Devices
- ldi_poll() functionAccessing Target Devices
- ldi_prop_exists() functionRetrieving Target Device Property Values
- ldi_prop_get_int() functionRetrieving Target Device Property Values
- ldi_prop_get_int64() functionRetrieving Target Device Property Values
- ldi_prop_lookup_byte_array() functionRetrieving Target Device Property Values
- ldi_prop_lookup_int64_array() functionRetrieving Target Device Property Values
- ldi_prop_lookup_int_array() functionRetrieving Target Device Property Values
- ldi_prop_lookup_string() functionRetrieving Target Device Property Values
- ldi_prop_lookup_string_array() functionRetrieving Target Device Property Values
- ldi_putmsg() functionAccessing Target Devices
- ldi_read() functionAccessing Target Devices
- ldi_remove_event_handler() functionReceiving Asynchronous Device Event Notification
- ldi_strategy() functionAccessing Target Devices
- ldi_write() function
- Driver Source File
- Accessing Target Devices
- LDI types
- ldi_callback_id_tReceiving Asynchronous Device Event Notification
- ldi_handle_tLayered Driver Handles – Target Devices
- ldi_ident_tLayered Identifiers – Kernel Device Consumers
- leaf devices
- description ofDevice Tree Components
- legacy interrupts
- definedDevice Interrupts
- usingLegacy Interrupts
- length argument, ddi_dma_mem_alloc()
- changes toddi_dma_mem_alloc Argument
Changes
- libdevinfo()
- displaying the device treelibdevinfo Library
- libdevinfo device information libraryUser Interfaces
- linking driversCompiling and Linking the Driver
- lint command
- 64-bit environmentGeneral Conversion Steps
- list suspect
- definitionDiagnosis, Suspect Lists, and Fault Events
- lnodeDevice Information Library Interfaces
- loadable module functionsModule Functions
- loading driversCompiling and Linking the Driver
- add_drv commandInstalling Drivers with add_drv
- hardware configuration fileWriting a Hardware Configuration File
- loading modules
- Copying the Driver to a Module Directory
- Loadable Module Entry Points
- loading test modulesLoading and Unloading Test Modules
- locking primitives, types ofLocking Primitives
- locks
- manipulatingKernel Thread Control and Synchronization
Functions
- mutexMutual-Exclusion Locks
- readers/writerReaders/Writer Locks
- scheme forChoosing a Locking Scheme
- LP64
- use in devmap()Data Sharing in devmap
- use in ioctl()Data Sharing in ioctl
- lso_basic_tcp_ipv4() structureLarge Segment (or Send) Offload
- LUN bitsBuilding a Command
M
- mac_alloc() functionThe mac_alloc and mac_free Functions
- mac_callbacks MAC entry points structureGLDv3 MAC Registration Data Structures
- mac_capab_lso() structureLarge Segment (or Send) Offload
- mac_fini_ops() functionThe mac_init_ops and mac_fini_ops Functions
- mac_hcksum_get() function
- Hardware Checksumming: Hardware
- Hardware Checksum Offload
- mac_hcksum_set() function
- Hardware Checksumming: MAC Layer
- Hardware Checksum Offload
- mac_init_ops() functionThe mac_init_ops and mac_fini_ops Functions
- mac_link_update() functionGLDv3 State Change Notifications
- mac_lso_get() function
- Large Segment Offload
- Large Segment (or Send) Offload
- mac_register() functionThe mac_register and mac_unregister Functions
- mac_register MAC registration information structure
- GLDv3 MAC Registration Data Structures
- The mac_alloc and mac_free Functions
- mac_rx() functionReceive Data Path
- mac_tx_update() function
- GLDv3 State Change Notifications
- Flow Control
- mac_unregister() functionThe mac_register and mac_unregister Functions
- major numbers
- description ofDevices as Special Files
- example ofBlock Device Autoconfiguration
- makedevice() functionBlock Device Autoconfiguration
- mapsize argument, rmallocmap()
- changes tormallocmap and rmallocmap_wait Argument Changes
- mc_getcapab() entry pointGLDv3 Capabilities
- mc_getprop() entry pointGLDv3 Properties
- mc_getstat() entry pointGLDv3 Network Statistics
- mc_propinfo() entry pointGLDv3 Properties
- mc_setprop() entry pointGLDv3 Properties
- mc_tx() entry pointTransmit Data Path
- mc_unicst() entry pointReceive Data Path
- mdb
- detecting kernel memory leaksDetecting Kernel Memory Leaks
- writing commandsWriting Debugger Commands With mdb
- mdb debuggerUsing the mdb Modular Debugger
- navigating device tree withObtaining Device Tree Information
- retrieving soft state informationRetrieving Driver Soft State Information
- runningGetting Started With the Modular Debugger
- memory allocation
- description ofDynamic Memory Allocation
- memory allocation functions
- Memory Allocation and Deallocation Functions
- Memory Allocation and Deallocation Functions
- deprecatedDeprecated Memory Allocation and Deallocation
Functions
- memory leaks, detecting with mdbDetecting Kernel Memory Leaks
- memory management unit
- description ofVirtual Memory
- memory mapping
- device context management ofContext Management Model
- device memory management
- Mapping Device Memory
- Mapping Device and Kernel Memory
- Entry Points for Memory Mapped Devices
- memory model
- SPARCSystem Memory Model
- store buffersStore Buffers
- message-signaled interrupts
- definedDevice Interrupts
- minor device nodeCreating Minor Device Nodes
- modifying permissions ofUpdating Driver Information
- minor numbersDevices as Special Files
- minphys() functionminphys Entry Point
- bulk requestsBulk Requests
- mmap() function
- driver notificationAssociating User Mappings With Driver Notifications
- mod_install() function
- network driversThe mac_init_ops and mac_fini_ops Functions
- mod_remove() function
- network driversThe mac_init_ops and mac_fini_ops Functions
- moddebug kernel variableSetting the moddebug Kernel Variable
- modinfo command
- Loading and Unloading Test Modules
- Change the Target Device
- modldrv structure
- description ofmodldrv Structure
- modlinkage structure
- description ofmodlinkage Structure
- modload commandLoading and Unloading Test Modules
- modular debugger Seemdb debugger
- module directoryCopying the Driver to a Module Directory
- module functionsModule Functions
- module_info structure
- network driversGLDv2 Driver Requirements
- modunload commandLoading and Unloading Test Modules
- description ofLoading and Unloading Drivers
- mount() function
- block driversopen Entry Point (Block Drivers)
- msgb() structure
- Isochronous Requests
- Bulk Requests
- MSI interrupts
- definedDevice Interrupts
- implementationMSI Interrupts
- MSI-X interrupts
- definedDevice Interrupts
- implementationMSI-X Interrupts
- multiplexing I/OMultiplexing I/O on File Descriptors
- multiprocessor considerationsDevice Context Switched to User Process A
- multithreading
- and condition variablesInitializing Condition Variables
- and locking primitivesLocking Primitives
- D_MP flag in cb_ops structurecb_ops Structure
- execution environmentMultithreaded Execution Environment
- thread synchronizationCondition Variables in Thread Synchronization
- mutex
- functionsSetting Up Mutexes
- locksMutual-Exclusion Locks
- manipulatingKernel Thread Control and Synchronization
Functions
- related panicsPotential Locking Pitfalls
- routinesMutual-Exclusion Locks
- mutex_enter() functionHigh-Level Interrupts
- mutex_exit() functionHigh-Level Interrupts
- mutex_init() functionRegistering Drivers to Gain Device Access
- mutex_owned() function
- example ofUse mutex_owned to Validate and Document Locking Requirements
- mutual-exclusion locks Seemutex
N
- name property
- description ofBinding a Driver to a Device
- naming
- unique prefix for driver symbols
- Use a Unique Prefix to Avoid Kernel Symbol Collisions
- What Is a Device Driver Entry Point?
- nblocks property
- deprecatedDevice Sizes
- Nblocks property
- definitionDevice Sizes
- nblocks property
- use in block device driversBlock Device Autoconfiguration
- Nblocks property
- use in block device driversBlock Device Autoconfiguration
- nbytes argument, uiomove()
- changes touiomove Argument Changes
- network drivers
- _fini() entry pointThe mac_init_ops and mac_fini_ops Functions
- _init() entry pointThe mac_init_ops and mac_fini_ops Functions
- attach() entry point
- GLDv2 Network Device Driver Framework
- The mac_register and mac_unregister Functions
- detach() entry pointThe mac_register and mac_unregister Functions
- DL_ETHEREthernet V2 and ISO 8802-3 (IEEE 802.3)
- DL_FDDITPR and FDDI: SNAP Processing
- DL_TPRTPR and FDDI: SNAP Processing
- entry points
- Summary of GLDv3 Interfaces
- GLDv3 MAC Registration Data Structures
- Ethernet V2 packet processingEthernet V2 and ISO 8802-3 (IEEE 802.3)
- FDDI (Fibre Distributed Data Interface)TPR and FDDI: SNAP Processing
- gld() entry pointGLDv2 Network Device Driver Framework
- gld() functionsGLDv2 Network Device Driver Framework
- gld_mac_info structure
- GLDv2 DLPI Primitives
- GLDv2 Network Device Driver Framework
- gld_register() functionGLDv2 DLPI Primitives
- GLDv2GLDv2 Network Device Driver Framework
- hardware checksumming
- Hardware Checksumming: MAC Layer
- Hardware Checksumming: Hardware
- Hardware Checksum Offload
- IEEE 802.3Ethernet V2 and ISO 8802-3 (IEEE 802.3)
- IEEE 802.5TPR and FDDI: SNAP Processing
- ISO 8802-3Ethernet V2 and ISO 8802-3 (IEEE 802.3)
- ISO 9314-2TPR and FDDI: SNAP Processing
- lso_basic_tcp_ipv4() structureLarge Segment (or Send) Offload
- MAC type identifierGLDv3 MAC Registration Data Structures
- MAC version numberThe mac_alloc and mac_free Functions
- mac_alloc() functionThe mac_alloc and mac_free Functions
- mac_callbacks structureGLDv3 MAC Registration Data Structures
- mac_capab_lso() structureLarge Segment (or Send) Offload
- mac_fini_ops() functionThe mac_init_ops and mac_fini_ops Functions
- mac_hcksum_get() function
- Hardware Checksumming: Hardware
- Hardware Checksum Offload
- mac_hcksum_set() function
- Hardware Checksumming: MAC Layer
- Hardware Checksum Offload
- mac_init_ops() functionThe mac_init_ops and mac_fini_ops Functions
- mac_link_update() functionGLDv3 State Change Notifications
- mac_lso_get() function
- Large Segment Offload
- Large Segment (or Send) Offload
- mac_register() functionThe mac_register and mac_unregister Functions
- mac_register structure
- GLDv3 MAC Registration Data Structures
- The mac_alloc and mac_free Functions
- mac_rx() functionReceive Data Path
- mac_tx_update() function
- GLDv3 State Change Notifications
- Flow Control
- mac_unregister() functionThe mac_register and mac_unregister Functions
- mc_getcapab() entry pointGLDv3 Capabilities
- mc_getprop() entry pointGLDv3 Properties
- mc_getstat() entry pointGLDv3 Network Statistics
- mc_propinfo() entry pointGLDv3 Properties
- mc_setprop() entry pointGLDv3 Properties
- mc_tx() entry pointTransmit Data Path
- mc_unicst() entry pointReceive Data Path
- mod_install() functionThe mac_init_ops and mac_fini_ops Functions
- mod_remove() functionThe mac_init_ops and mac_fini_ops Functions
- open() entry pointGLDv2 DLPI Providers
- SAP (Service Access Point)Ethernet V2 and ISO 8802-3 (IEEE 802.3)
- SNAP processingTPR and FDDI: SNAP Processing
- source routingTPR: Source Routing
- testingTesting Network Drivers
- TPR (Token Passing Ring)TPR and FDDI: SNAP Processing
- network statistics
- DL_ETHERGLDv2 Network Statistics
- gld_statsGLDv2 Network Statistics
- gldm_get_stats()GLDv2 Network Statistics
- kstat structuresGLDv2 Network Statistics
- nexus Seebus nexus device drivers
- nexus driverUSB Client Drivers
- no-involuntary-power-cycles propertyDevice Power State Transitions
- nvlist_alloc structure
- description ofDefining Event Attributes
O
- object lockingObject Locking
- offlining
- Hot Removal
- Hotplug Callbacks
- OHCI (Open Host Controller Interface)USB Client Drivers
- open() entry point
- block driversopen Entry Point (Block Drivers)
- character driversDevice Access (Character Drivers)
- network driversGLDv2 DLPI Providers
- Oracle Developer StudioCompiling and Linking the Driver
P
- .po message filesMessage IDs and Dictionary Files
- packagingDriver Packaging
- partial store orderingPartial Store Ordering (PSO)
- PCI busPCI Local Bus
- configuration address spacePCI Address Domain
- configuration base address registersPCI Configuration Base Address Registers
- hardware configuration filesPCI Hardware Configuration Files
- I/O address spacePCI I/O Address Space
- memory address spacePCI Memory Address Space
- PCI configuration functions
- alternate access mechanismsProgrammed I/O Functions
- PCI devicesPCI Local Bus
- pci_ereport_post() functionDetecting and Reporting PCI-Related Errors
- pci_ereport_setup() function
- Detecting and Reporting PCI-Related Errors
- Declaring Fault Management Capabilities
- pci_ereport_teardown() function
- Detecting and Reporting PCI-Related Errors
- Cleaning Up Fault Management Resources
- physical DMATypes of Host Platform DMA
- physio() function
- description ofDMA Transfers (Synchronous)
- pipe
- alternate settingModifying or Getting the Alternate Setting
- pipes
- closingClosing Pipes
- default control
- The Default Pipe
- Registering Drivers to Gain Device Access
- flushingFlushing Pipes
- mutex initializationRegistering Drivers to Gain Device Access
- openingOpening Pipes
- policySynchronous and Asynchronous Transfers and Callbacks
- USB device communicationDevice Communication
- USB devicesHow USB Devices Appear to the System
- use before attach()Before the Client Driver Is Attached
- pixel depth modeOracle Solaris Consoles and the Kernel Terminal Emulator
- pm_busy_component() function
- Active Power Management
- Device Power Management
- pm_idle_component() function
- Active Power Management
- Device Power Management
- pm_lower_power() functionActive Power Management
- pm_raise_power() function
- Active Power Management
- Device Power Management
- polled I/O interfaces
- Implementing Polled I/O in Console Frame Buffer Drivers
- Polled I/O Interfaces
- postmortem debuggingPostmortem Debugging
- power cycleDevice Power State Transitions
- power management
- See Alsosystem power management
- See Alsodevice power management
- flow of controlPower Management Flow of Control
- USB devicesPower Management
- power management functionsPower Management Functions
- deprecatedDeprecated Power Management Functions
- power() entry point
- Active Power Management
- Device Power Management
- Predictive Self-Healing
- What Is Predictive Self-Healing?
- See Alsofault management
- prefix
- unique prefix for driver symbols
- Use a Unique Prefix to Avoid Kernel Symbol Collisions
- What Is a Device Driver Entry Point?
- print() entry point
- block driversprint Entry Point (Block
Drivers)
- printing functionsKernel Logging and Printing Functions
- printing messagesReturning Errors
- probe() entry point
- description ofprobe Entry Point
- SCSI target driversprobe Entry Point (SCSI
Target Drivers)
- processor issues
- SPARC
- SPARC Multiply and Divide Instructions
- SPARC Register Windows
- SPARC Processor Issues
- x86x86 Processor Issues
- programmed I/OProgrammed I/O Transfers
- programmed I/O functionsProgrammed I/O Functions
- deprecatedDeprecated Programmed I/O Functions
- PROM commandsOpen Boot PROM 3
- prop_op() entry point
- description ofprop_op Entry Point
- properties
- class propertyHardware Configuration File
- ddi_prop_opprop_op Entry Point
- device node name propertyBinding a Driver to a Device
- LDIRetrieving Target Device Property Values
- nblocks propertyDevice Sizes
- Nblocks propertyDevice Sizes
- nblocks propertyBlock Device Autoconfiguration
- Nblocks propertyBlock Device Autoconfiguration
- no-involuntary-power-cyclesDevice Power State Transitions
- overview
- Device Properties
- Device Properties
- pm-hardware-state property
- attach Entry Point (SCSI
Target Drivers)
- attach Entry Point
- Hardware State
- prtconfLooking Up Properties
- reg propertyHardware State
- removable-mediaPower Management Dependencies
- reporting device propertiesprop_op Entry Point
- SCSI HBA propertiesHBA Configuration Properties
- SCSI target driverx86 Target Driver Configuration Properties
- size propertyCharacter Device Autoconfiguration
- types ofDevice Properties
- property functionsProperty Functions
- prtconf command
- displaying device namesCompatible Device Names
- displaying interfacesUSB Audio Compatible Device Names
- displaying kernel device usage informationPrint System Configuration Command Interfaces
- displaying propertiesLooking Up Properties
- displaying the bound driverUSB Mouse Compatible Device Names
- displaying the device treeprtconf Command
- pseudo device driverWhat Is a Device Driver?
Q
- queuingSupport for Queuing
- quiesce a device
- Example Implementation of Interrupt Resource Management
- System Quiesce Entry Point
- quiesce() entry pointSystem Quiesce Entry Point
R
- read() entry point
- synchronous data transfersDifferences Between Synchronous and Asynchronous
I/O
- readers/writer locksReaders/Writer Locks
- manipulatingKernel Thread Control and Synchronization
Functions
- real_length argument, ddi_dma_mem_alloc()
- changes toddi_dma_mem_alloc Argument
Changes
- recovering the device directoryRecovering the Device Directory
- reg propertyDevice Properties
- register structure, DMADevice Register Structure
- removable-mediaPower Management Dependencies
- resource map functionsResource Map Management Functions
- resume a device
- Example Implementation of Interrupt Resource Management
- System Quiesce Entry Point
- retire agent
- definitionResponse Agents
- rmallocmap() function
- changes tormallocmap and rmallocmap_wait Argument Changes
- rmallocmap_wait() function
- changes tormallocmap and rmallocmap_wait Argument Changes
S
- S_IFCHRCreating Minor Device Nodes
- SAP (Service Access Point)Ethernet V2 and ISO 8802-3 (IEEE 802.3)
- saving crash dumpsCapture System Crash Dumps
- SBus
- address bitsPhysical SBus Addresses
- geographical addressingSBus Architecture
- hardware configuration filesSBus Hardware Configuration Files
- physical address spaceSBus Physical Address Space
- slots supporting DVMAUltra 2 SBus Address Bits
- scatter-gather
- DMA enginesDMA Software Components: Handles, Windows, and Cookies
- I/OVectored I/O
- scheduling tasksQueueing Tasks
- SCSA
- SCSI Interface
- Introduction to Target Drivers
- global data definitionsSCSI Options
- HBA transport layerSCSA Interface
- interfacesSCSA HBA Entry Point Summary
- SCSI
- architectureSun Common SCSI Architecture Overview
- busIntroduction to Target Drivers
- SCSI functionsSCSI Functions
- deprecatedDeprecated SCSI Functions
- SCSI HBA driver
- abort and reset managementtran_abort Entry Point
- and hotplugging
- Dynamic Reconfiguration
- Hotplugging and Device Drivers
- autoconfigurationAutoconfiguration Entry Points
- capability managementtran_getcap Entry Point
- cloningTransport Structure Cloning
- command state structurePer-Command Structure
- command timeoutTimeout Handler
- command transportCommand Transport
- configuration propertiesHBA Configuration Properties
- data structuresSCSA HBA Data Structures
- DMA resourcesAllocation of DMA Resources
- driver instance initializationtran_tgt_init Entry Point
- entry points summarySCSA HBA Entry Point Summary
- header filesDeclarations and Structures
- initializing a transport structureTransport Structure
- installationSCSI HBA Driver Specific Issues
- interrupt handlingInterrupt Handler and Command Completion
- overview
- SCSA Interface
- SCSI Interface
- propertiesx86 Target Driver Configuration Properties
- resource allocationtran_init_pkt Entry Point
- SCSI HBA driver entry points
- by categoryEntry Points for SCSA HBA Drivers
- tran_abort() functiontran_abort Entry Point
- tran_dmafree() functiontran_dmafree Entry Point
- tran_getcap() functiontran_getcap Entry Point
- tran_init_pkt() functiontran_init_pkt Entry Point
- tran_reset() functiontran_reset Entry Point
- tran_reset_notify() functiontran_reset_notify Entry
Point
- tran_setcap() functiontran_setcap Entry Point
- tran_start() functiontran_start Entry Point
- tran_sync_pkt() functiontran_sync_pkt Entry Point
- tran_tgt_free() functiontran_tgt_free Entry Point
- tran_tgt_init() functiontran_tgt_init Entry Point
- tran_tgt_probe() functiontran_tgt_probe Entry Point
- SCSI target driver
- auto-request sense modeAuto-Request Sense Mode
- autoconfiguration ofAutoconfiguration for SCSI Target Drivers
- building a commandBuilding a Command
- callback routineCommand Completion
- data structuresDeclarations and Data Structures
- initializing a command descriptor blockBuilding a Command
- overviewIntroduction to Target Drivers
- properties
- x86 Target Driver Configuration Properties
- attach Entry Point (SCSI
Target Drivers)
- Hardware Configuration File
- resource allocationResource Allocation
- reusing packetsReuse of Packets
- SCSI routinesSCSA Functions
- transporting a commandTransporting a Command
- scsi_ structures
- scsi_address structurescsi_address Structure
- scsi_device structurescsi_device Structure
- scsi_hba_tran structurescsi_hba_tran Structure
- scsi_pkt structurescsi_pkt Structure (HBA)
- scsi_ functions
- scsi_alloc_consistent_buf()functionscsi_alloc_consistent_buf Function
- scsi_destroy_pkt() functionscsi_destroy_pkt Function
- scsi_dmafree() functionReuse of Packets
- scsi_free_consistent_buf() functionscsi_free_consistent_buf Function
- scsi_ifgetcap() functionSetting Target Capabilities
- scsi_ifsetcap() functionSetting Target Capabilities
- scsi_init_pkt() functionscsi_init_pkt Function
- scsi_probe() functiontran_tgt_probe Entry Point
- scsi_setup_cdb() functionBuilding a Command
- scsi_sync_pkt() function
- Reuse of Packets
- scsi_sync_pkt Function
- scsi_transport() functionTransporting a Command
- scsi_unprobe() functiontran_tgt_probe Entry Point
- summarySCSA Functions
- scsi_alloc_consistent_buf() function
- changes toscsi_alloc_consistent_buf Argument
Changes
- scsi_device structurescsi_device Structure
- scsi_hba_ functions
- scsi_hba_pkt_free() functiontran_destroy_pkt Entry
Point
- scsi_hba_ functions
- scsi_hba_attach_setup() functionHBA Configuration Properties
- scsi_hba_lookup_capstr() functiontran_getcap Entry Point
- scsi_hba_pkt_alloc() functionAllocation and Initialization of a scsi_pkt9S Structure
- scsi_hba_probe() functiontran_tgt_probe Entry Point
- summary listSCSA HBA Functions
- scsi_hba_tran structures
- scsi_pkt structurePer-Target Instance Data
- scsi_pkt structurescsi_pkt Structure
(Target Drivers)
- changes toscsi_pkt Structure Changes
- segmap() entry point
- description of
- Mapping Device Memory
- The segmap(9E) Entry Point
- driver notificationAssociating User Mappings With Driver Notifications
- self-identifying devicesDevice Identification
- serial connectionTesting With a Serial Connection
- serviceability
- add new deviceDriver Serviceability
- detect faulty deviceDriver Serviceability
- perform periodic health checksDriver Serviceability
- remove faulty deviceDriver Serviceability
- report faultsDriver Serviceability
- single device nodeUSB Devices and the Oracle Solaris Device Tree
- size propertyCharacter Device Autoconfiguration
- slice number for block devicesBlock Device Autoconfiguration
- SNAP (Sub-Net Access Protocol)TPR and FDDI: SNAP Processing
- snoop command
- network driversGLDv2 I/O Control Functions
- soft interruptsSoftware Interrupts
- soft state information
- LDIDriver Source File
- retrieving in mdbRetrieving Driver Soft State Information
- USBRegistering Drivers to Gain Device Access
- software interrupts
- changing priorityChanging Soft Interrupt Priority
- software state functionsDevice Software State Functions
- Solaris kernel Seekernel
- source compatibility
- description ofDDI/DKI Interfaces
- source files for device driversSource Files
- SPARC processor
- byte orderingSPARC Byte Ordering
- data alignmentSPARC Data Alignment
- floating point operationsSPARC Processor Issues
- multiply and divide instructionsSPARC Multiply and Divide Instructions
- register windowsSPARC Register Windows
- structure member alignmentMember Alignment in SPARC Structures
- special files
- description ofDevices as Special Files
- src_advcnt argument, ddi_device_copy()
- changes toddi_device_copy Argument Changes
- standalone mode
- Implementing Polled I/O in Console Frame Buffer Drivers
- Console Visual I/O Interfaces
- state structure
- Driver Source File
- Driver Soft-State Management
- Software State Management
- stats
- definitionKernel Statistics
- Ethernet driversKernel Statistics for Oracle Solaris Ethernet Drivers
- functionsKernel Statistics Functions
- structure membersKernel Statistics Structure Members
- structuresKernel Statistics Structures
- storage classes
- driver dataStorage Classes of Driver Data
- store buffersStore Buffers
- strategy() entry point
- block driversstrategy Entry Point
- character driversstrategy Entry Point
- streaming accessUsing ddi_dma_mem_alloc(9F)
- STREAMS Seenetwork drivers, GLDv2
- cb_ops structurecb_ops Structure
- driversEntry Points for STREAMS Device Drivers
- suspect list
- definitionDiagnosis, Suspect Lists, and Fault Events
- synchronous data transfers
- block driversSynchronous Data Transfers (Block Drivers)
- character driversDifferences Between Synchronous and Asynchronous
I/O
- USBSynchronous and Asynchronous Transfers and Callbacks
- system callsWhat Is the Kernel?
- system global state functionsSystem Global State
- system power management
- description ofSystem Power Management
- entry pointsEntry Points Used by System Power Management
- modelSystem Power Management Model
- policyAutomatic Power Management for Systems
- saving hardware stateHardware State
- USB devicesSystem Power Management
- system registers
- reading and writingExploring System Registers With kmdb
T
- tagged queuingSupport for Queuing
- tape drivers
- testingTesting Specific Types of Drivers
- task queuesQueueing Tasks
- definitionIntroduction to Task Queues
- interfaces
- Task Queue Management Functions
- Task Queue Interfaces
- tem (terminal emulator module)
- x86 Platform Console Communication
- See Alsokernel terminal emulator
- tem-support DDI property
- SPARC Platform Console Communication
- Oracle Solaris Consoles and the Kernel Terminal Emulator
- test modulesSetting Up Test Modules
- testing
- asynchronous communication driversAsynchronous Communication Drivers
- configurationsConfiguration Testing
- console frame buffer driversDeveloping, Testing, and Debugging Console Frame
Buffer Drivers
- DDI complianceDDI/DKI Compliance Testing
- device driversCriteria for Testing Drivers
- disk driversTesting Disk Drivers
- functionalityFunctionality Testing
- installation and packagingInstallation and Packaging Testing
- network driversTesting Network Drivers
- tape driversTesting Tape Drivers
- testing debuggers
- avoiding data lossAvoiding Data Loss on a Test System
- testing device driversTesting Drivers
- third-party DMA
- Performing Third-Party DMA Transfers
- Third-Party DMA
- thread synchronization
- condition variablesCondition Variables in Thread Synchronization
- mutex locksMutual-Exclusion Locks
- mutex_initSetting Up Mutexes
- per instance mutex
- attach Entry Point
- attach Entry Point
- readers/writer locksReaders/Writer Locks
- threads
- preemption ofLocking Primitives
- task queuesQueueing Tasks
- ticks argument, delay()
- changes todelay and timeout Argument
Changes
- ticks argument, timeout()
- changes todelay and timeout Argument
Changes
- time-related functionsTime-Related Functions
- deprecatedDeprecated Time-Related Functions
- timeout() functiondelay and timeout Argument
Changes
- changes todelay and timeout Argument
Changes
- timeout argument, cv_timedwait()
- changes tocv_timedwait and cv_timedwait_sig Argument Changes
- tip connectionTesting With a Serial Connection
- total store orderingTotal Store Ordering (TSO)
- TPR (Token Passing Ring)TPR and FDDI: SNAP Processing
- trace
- definitiontrace for Dynamic Instrumentation
- tran_abort() entry point
- SCSI HBA driverstran_abort Entry Point
- tran_destroy_pkt() entry point
- SCSI HBA driverstran_destroy_pkt Entry
Point
- tran_dmafree() entry point
- SCSI HBA driverstran_dmafree Entry Point
- tran_getcap() entry point
- SCSI HBA driverstran_getcap Entry Point
- tran_init_pkt() entry point
- SCSI HBA driverstran_init_pkt Entry Point
- tran_reset() entry point
- SCSI HBA driverstran_reset Entry Point
- tran_reset_notify() entry point
- SCSI HBA driverstran_reset_notify Entry
Point
- tran_setcap() entry point
- SCSI HBA driverstran_setcap Entry Point
- tran_start() entry point
- SCSI HBA driverstran_start Entry Point
- tran_sync_pkt() entry point
- SCSI HBA driverstran_sync_pkt Entry Point
- tuning device driversTuning Drivers
- statsKernel Statistics
- tracetrace for Dynamic Instrumentation
U
- UHCI (Universal Host Controller Interface)USB Client Drivers
- uiomove() exampleProgrammed I/O Transfers
- uiomove() function
- changes touiomove Argument Changes
- example ofProgrammed I/O Transfers
- unloading driversLoading and Unloading Drivers
- unloading test modulesLoading and Unloading Test Modules
- untagged queuingSupport for Queuing
- update_drv command
- Checking Device Driver Bindings
- Change the Target Device
- description ofUpdating Driver Information
- USB device
- alternate settingsHow USB Devices Appear to the System
- compatible device namesCompatible Device Names
- composite
- Managing Entire Devices
- Devices With Multiple Interfaces
- configuration descriptorsThe Descriptor Tree
- current configurationHow USB Devices Appear to the System
- endpointsHow USB Devices Appear to the System
- bulkUSB Endpoints
- controlUSB Endpoints
- defaultThe Default Pipe
- interruptUSB Endpoints
- isochronousUSB Endpoints
- hotpluggingHotplugging USB Devices
- callbacksHotplug Callbacks
- insertionHot Insertion
- reinsertionHot Reinsertion
- removalHot Removal
- interface numberGetting Interface Numbers
- interfacesHow USB Devices Appear to the System
- multiple configurationsHow USB Devices Appear to the System
- power managementPower Management
- activeActive Power Management
- deviceDevice Power Management
- passivePassive Power Management
- systemSystem Power Management
- remote wakeupDevice Power Management
- splitting interfaces
- Multiple-Configuration Devices
- USB Audio Compatible Device Names
- statesDevice State Management
- USB driversUSB Client Drivers
- asynchronous transfer callbacksSynchronous and Asynchronous Transfers and Callbacks
- bulk data transfer requestsBulk Requests
- control data transfer requestsControl Requests
- data transfer
- callback status flags
- Request Features and Fields
- Synchronous and Asynchronous Transfers and Callbacks
- completion reasons
- Request Features and Fields
- Synchronous and Asynchronous Transfers and Callbacks
- data transfer requestsRequest Structures
- descriptor tree
- Registering Drivers to Gain Device Access
- The Descriptor Tree
- event notificationHotplug Callbacks
- hubd USB hub driverHot Insertion
- interfacesUSB Client Drivers
- interrupt data transfer requestsInterrupt Requests
- isochronous data transfer requestsIsochronous Requests
- message blocksRequest Features and Fields
- mutex initializationRegistering Drivers to Gain Device Access
- pipes
- Device Communication
- Registering Drivers to Gain Device Access
- How USB Devices Appear to the System
- closingClosing Pipes
- default control
- The Default Pipe
- Registering Drivers to Gain Device Access
- Before the Client Driver Is Attached
- flushingFlushing Pipes
- openingOpening Pipes
- registeringRegistering Drivers to Gain Device Access
- registering for eventsHotplug Callbacks
- set alternateModifying or Getting the Alternate Setting
- set configurationMultiple-Configuration Devices
- synchronous control requestsControl Requests
- 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
- versioningRegistering Drivers to Gain Device Access
- USB functions
- cfgadm_usb commandMultiple-Configuration Devices
- usb_alloc_bulk_req() functionRequest Initialization
- usb_alloc_ctrl_req() functionRequest Initialization
- usb_alloc_intr_req() functionRequest Initialization
- usb_alloc_isoc_req() functionRequest Initialization
- usb_client_attach() functionRegistering Drivers to Gain Device Access
- usb_client_detach() functionRegistering Drivers to Gain Device Access
- usb_clr_feature() functionClearing a USB Condition
- usb_create_pm_components() function
- Active Power Management
- Device Power Management
- usb_free_bulk_req() functionRequest Initialization
- usb_free_ctrl_req() functionRequest Initialization
- usb_free_descr_tree() functionRegistering Drivers to Gain Device Access
- usb_free_dev_data() functionRegistering Drivers to Gain Device Access
- usb_free_intr_req() functionRequest Initialization
- usb_free_isoc_req() functionRequest Initialization
- usb_get_addr() functionGetting the Bus Address of a Device
- usb_get_alt_if() functionModifying or Getting the Alternate Setting
- usb_get_cfg() functionMultiple-Configuration Devices
- usb_get_current_frame_number() functionIsochronous Requests
- usb_get_dev_data() function
- The Default Pipe
- Registering Drivers to Gain Device Access
- Registering Drivers to Gain Device Access
- The Descriptor Tree
- usb_get_if_number() functionGetting Interface Numbers
- usb_get_max_pkts_per_isoc_request() functionIsochronous Requests
- usb_get_status() functionGetting Device, Interface, or Endpoint Status
- usb_get_string_descr() functionRetrieving a String Descriptor
- usb_handle_remote_wakeup() function
- Active Power Management
- Device Power Management
- usb_lookup_ep_data() function
- Opening Pipes
- A Hierarchical USB Descriptor Tree
- usb_owns_device() functionManaging Entire Devices
- usb_parse_data() functionThe Descriptor Tree
- usb_pipe_bulk_xfer() function
- Request Transfer Setup
- Data Transfer
- usb_pipe_close() function
- Isochronous Requests
- Closing Pipes
- usb_pipe_ctrl_xfer() function
- Request Transfer Setup
- Data Transfer
- usb_pipe_ctrl_xfer_wait() function
- Control Requests
- Request Transfer Setup
- usb_pipe_drain_reqs() functionFlushing Pipes
- usb_pipe_get_max_bulk_transfer_ size() functionBulk Requests
- usb_pipe_get_private() functionPipe Private Data Facility
- usb_pipe_get_state() function
- Flushing Pipes
- Pipe States
- usb_pipe_intr_xfer() function
- Interrupt Requests
- Request Transfer Setup
- Data Transfer
- usb_pipe_isoc_xfer() function
- Request Transfer Setup
- Data Transfer
- usb_pipe_open() function
- Synchronous and Asynchronous Transfers and Callbacks
- Opening Pipes
- usb_pipe_reset() function
- Flushing Pipes
- Pipe States
- usb_pipe_set_private() functionPipe Private Data Facility
- usb_pipe_stop_intr_polling() function
- Interrupt Requests
- Request Transfer Setup
- usb_pipe_stop_isoc_polling() function
- Isochronous Requests
- Request Transfer Setup
- usb_print_descr_tree() functionRegistering Drivers to Gain Device Access
- usb_register_hotplug_cbs() functionHotplug Callbacks
- usb_set_alt_if() functionModifying or Getting the Alternate Setting
- usb_set_cfg() functionMultiple-Configuration Devices
- usb_unregister_hotplug_cbs() functionHotplug Callbacks
- USB structures
- usb_alloc_intr_requestInterrupt Requests
- usb_bulk_request
- Bulk Requests
- Request Initialization
- usb_callback_flags
- Request Features and Fields
- Synchronous and Asynchronous Transfers and Callbacks
- usb_completion_reason
- Request Features and Fields
- Synchronous and Asynchronous Transfers and Callbacks
- usb_ctrl_request
- Control Requests
- Request Initialization
- usb_intr_requestRequest Initialization
- usb_isoc_request
- Isochronous Requests
- Request Initialization
- usb_request_attributesRequest Features and Fields
- USB 2.0 specificationUSBA 2.0 Framework
- 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
- USBA (Solaris USB Architecture)USB Drivers
- USBA 2.0 frameworkUSB Drivers
- user application kernel functions
- deprecatedDeprecated User Application Kernel and Device Access Functions
- tableUser Application Kernel and Device Access
Functions
- user process event functionsUser Process Event Functions
- user process information functionsUser Process Information Functions
- deprecatedDeprecated User Process Information
Functions
- user space access functionsUser Space Access Functions
- deprecatedDeprecated User Space Access Functions
- utility functions
- tableUtility Functions
V
- VGA text mode
- x86 Platform Console Communication
- Oracle Solaris Consoles and the Kernel Terminal Emulator
- vgatext modulex86 Platform Console Communication
- video mode
- Frame Buffer Specific Configuration Module
- Video Mode Change Callback Interface
- Console Visual I/O Interfaces
- SPARC Platform Console Communication
- virtual addresses
- description ofVirtual Memory
- virtual DMATypes of Host Platform DMA
- virtual memory
- address spacesVirtual Memory
- memory management unit (MMU)Virtual Memory
- virtual memory functions
- deprecatedDeprecated Virtual Memory Functions
- tableVirtual Memory Functions
- visual I/O interfacesConsole Visual I/O Interfaces
- volatile keywordDeclaring a Variable Volatile
W
- windows, DMADMA Windows
- write() function
- synchronous data transfersDifferences Between Synchronous and Asynchronous
I/O
- user address exampleUser Addresses
X
- x86 processor
- byte orderingx86 Byte Ordering
- data alignmentx86 Processor Issues
- floating point operationsx86 Processor Issues