D
- data loss
- avoiding while testingDevice Driver Testing Tips
- data model
- converting
- Writing Quote Of The Day Version 3
- Writing a Driver Module
- ddi_copyin() kernel function
- Reporting and Setting Device Size and Re-initializing
the Device
- Managing Thread Synchronization
- Writing Quote Of The Day Version 3
- User and Kernel Address Spaces on x86 and SPARC Machines
- ddi_copyout() kernel function
- Reporting and Setting Device Size and Re-initializing
the Device
- Writing Quote Of The Day Version 3
- User and Kernel Address Spaces on x86 and SPARC Machines
- ddi_create_minor_node() kernel function
- Attaching, Allocating Memory, and Initializing a
Mutex and a Condition Variable
- Attaching and Detaching
- Defining the Device Attach Entry Point
- Writing the Autoconfiguration Entry Points
- ddi_get_instance() kernel function
- Attaching and Detaching
- Defining the Device Attach Entry Point
- Device Numbers
- ddi_get_soft_state() kernel function
- Reading the Data
- Opening the Device, Closing the Device, and Getting
Module Information
- Attaching and Detaching
- Managing Device State
- ddi_model_convert_from() kernel function
- Reporting and Setting Device Size and Re-initializing
the Device
- Writing Quote Of The Day Version 3
- Writing a Driver Module
- ddi_prop_get_int() kernel functionWriting a Configuration File
- ddi_prop_lookup() kernel functionWriting a Configuration File
- ddi_prop_op() kernel function
- Defining the Report Driver Property Information Entry
Point
- Writing the Autoconfiguration Entry Points
- ddi_remove_minor_node() kernel function
- Checking for Changes, Cleaning Up, and Detaching
- Attaching and Detaching
- Defining the Device Detach Entry Point
- Writing the Autoconfiguration Entry Points
- ddi_report_dev() kernel functionAttaching and Detaching
- ddi_soft_state() kernel functionDefining the Device Attach Entry Point
- ddi_soft_state_fini() kernel function
- Initializing and Unloading
- Managing Device State
- ddi_soft_state_free() kernel function
- Attaching and Detaching
- Managing Device State
- ddi_soft_state_init() kernel function
- Initializing and Unloading
- Managing Device State
- ddi_soft_state_zalloc() kernel function
- Attaching and Detaching
- Managing Device State
- ddi_umem_alloc() kernel functionAllocating and Freeing Kernel Memory
- ddi_umem_free() kernel function
- Allocating and Freeing Kernel Memory
- Checking for Changes, Cleaning Up, and Detaching
- deadman kernel featureDevice Driver Testing Tips
- debugging device drivers
- tipsDevice Driver Debugging and Tuning Tips
- detach() entry point
- Attaching and Detaching
- Defining the Device Detach Entry Point
- Writing the Autoconfiguration Entry Points
- Defining the Module Unload Entry Point
- dev_info device structure
- Defining the Get Driver Information Entry Point
- Defining the Device Detach Entry Point
- Defining the Device Attach Entry Point
- dev_ops driver structure
- Defining the Device Operations Structure
- Writing the Driver Data Structures
- Device Drivers
- devfs devices file systemDevices Directories
- devfsadmd devices file system administration commandDevice Names
- device driversDevice Drivers
- addingAdding, Updating, and Removing a Driver
- coding tipsDevice Driver Coding Tips
- compilingBuilding a Driver
- condition variablesManaging Thread Synchronization
- conditional compilationDevice Driver Coding Tips
- debugging tipsDevice Driver Debugging and Tuning Tips
- development guidelinesTips for Developing Device
Drivers
- directoriesDriver Directory Organization
- addingDriver Directory Organization
- entry points
- Overview of the Template Driver Example
- Typical Device Driver Entry Points
- See alsoentry points
- See alsoentry points
- how usedEntry Points for Different Types of Drivers
- I/O controls
- Exercising the Driver's I/O Controls
- Reporting and Setting Device Size and Re-initializing
the Device
- installing
- Device Driver Testing Tips
- Installing a Driver
- linkingBuilding a Driver
- loading
- Adding the Template Driver
- Loading and Unloading a Driver
- Driver Directory Organization
- mutexesManaging Thread Synchronization
- naming conventionsDevice Driver Coding Tips
- recommended housekeepingDevice Driver Coding Tips
- removing
- Removing the Template Driver
- Adding, Updating, and Removing a Driver
- structures Seedriver structures
- test areasTesting a Driver
- testingDevice Driver Testing Tips
- thread synchronizationManaging Thread Synchronization
- tuningDevice Driver Debugging and Tuning Tips
- unloading
- Removing the Template Driver
- Loading and Unloading a Driver
- updatingAdding, Updating, and Removing a Driver
- device instance pointer (dip)
- Defining the Get Driver Information Entry Point
- Defining the Device Detach Entry Point
- Defining the Device Attach Entry Point
- device numberDevice Numbers
- device structures
- dev_info
- Defining the Get Driver Information Entry Point
- Defining the Device Detach Entry Point
- Defining the Device Attach Entry Point
- device treeDevice Tree
- devices
- blkCharacter and Block Devices
- block
- Character and Block Devices
- Devices as Files
- character
- Writing the Template Driver
- Character and Block Devices
- Devices as Files
- configuration files
- Writing the Device Configuration File
- Writing a Configuration File
- device treeDevice Tree
- directories
- Device Names
- Devices Directories
- exclusive accessLocking Rules for Quote Of The Day Version 3
- file system
- devfsDevices Directories
- devfsadmdDevice Names
- instances
- Defining the Get Driver Information Entry Point
- Defining the Device Detach Entry Point
- Defining the Device Attach Entry Point
- Device Numbers
- md metadeviceCharacter and Block Devices
- namesDevice Names
- nexus
- Device Tree
- Entry Points for Different Types of Drivers
- numbers
- Defining the Device Attach Entry Point
- Device Numbers
- Devices Directories
- prefixes
- Declaring the Autoconfiguration Entry Points
- Writing a Driver Module
- properties
- Defining the Report Driver Property Information Entry
Point
- Writing a Configuration File
- pseudo
- Template Driver Example
- Entry Points for Different Types of Drivers
- ramdisk
- Modifying Data Stored in Kernel Memory
- Entry Points for Different Types of Drivers
- rawCharacter and Block Devices
- reading
- Reading the Device
- Building, Installing, and Using Quote Of The Day
Version??2
- Reading and Writing the Device
- special filesDevices as Files
- stateManaging Device State
- writing
- Writing the Device
- Writing New Data
- Modifying Data Stored in Kernel Memory
- Reading and Writing the Device
- devmap() entry pointUser and Kernel Address Spaces on x86 and SPARC Machines
- dmesg commandAttaching and Detaching
- driver structures
- cb_ops
- Writing New Data
- Defining the Character and Block Operations Structure
- Writing the Driver Data Structures
- Device Drivers
- character and block operations structureDefining the Character and Block Operations Structure
- dev_ops
- Defining the Device Operations Structure
- Writing the Driver Data Structures
- Device Drivers
- device operations structureDefining the Device Operations Structure
- modinfoDefining the Module Information Entry Point
- modldrv
- Defining the Module Linkage Structures
- Writing the Driver Data Structures
- modlinkage
- Defining the Module Linkage Structures
- Writing the Driver Data Structures
- Defining the Module Initialization Entry Point
- module linkage structuresDefining the Module Linkage Structures
- driver.conf fileWriting a Configuration File
- drivers Seedevice drivers
- DTrace analyzerDevice Driver Debugging and Tuning Tips