Go to main content
Index
Numbers and Symbols
- /dev directory
- Device Names
- Devices Directories
- /devices/pseudo directory
- Building, Installing, and Using Quote Of The Day Version 2
- Adding the Template Driver
- /devices directory
- Device Names
- Devices Directories
- /var/adm/messages file
- Building, Installing, and Using Quote Of The Day Version 1
- Testing the Template Driver
- _info() entry pointDefining the Module Information Entry Point
- _init() entry pointInitializing and Unloading
A
- add_drv command
- Adding the Template Driver
- Adding, Updating, and Removing a Driver
- use in modifying existing driversDevice Driver Coding Tips
- alternate kernels
- use in testingDevice Driver Testing Tips
- ASSERT() kernel function
- Device Driver Coding Tips
- Building, Installing, and Using Quote Of The Day Version 2
- Checking Data Validity
- Writing Quote Of The Day Version 2
- attach() entry point
- Device Driver Testing Tips
- Attaching and Detaching
- Defining the Device Attach Entry Point
- Writing the Autoconfiguration Entry Points
- Installing a Driver
B
- blk deviceCharacter and Block Devices
- block deviceCharacter and Block Devices
- boot commandDriver Directory Organization
- bzero() kernel functionReporting and Setting Device Size and Re-initializing the Device
C
- cat commandReading and Writing the Device
- cb_ops driver structure
- Writing New Data
- Defining the Character and Block Operations Structure
- Writing the Driver Data Structures
- Device Drivers
- cc commandCompiling with Oracle Developer Studio
- character deviceCharacter and Block Devices
- close() entry point
- Opening the Device, Closing the Device, and Getting Module Information
- Defining the Close Device Entry Point
- Writing the User Context Entry Points
- cmn_err() kernel function
- Device Driver Coding Tips
- Displaying Data Stored in Kernel Memory
- Testing the Template Driver
- Defining the Module Initialization Entry Point
- commands
- add_drv
- Device Driver Coding Tips
- Adding the Template Driver
- Adding, Updating, and Removing a Driver
- bootDriver Directory Organization
- catReading and Writing the Device
- ccCompiling with Oracle Developer Studio
- dmesgAttaching and Detaching
- echoReading and Writing the Device
- gccCompiling with the GNU C Compiler
- kernelDriver Directory Organization
- ld
- Defining the Module Unload Entry Point
- Compiling with Oracle Developer Studio
- Structural Differences Between Kernel Modules and
User Programs
- mknodDevices Directories
- modinfo
- Building, Installing, and Using Quote Of The Day Version 2
- Adding the Template Driver
- Adding, Updating, and Removing a Driver
- modloadAdding the Template Driver
- modunloadRemoving the Template Driver
- moreBuilding, Installing, and Using Quote Of The Day Version 2
- prtconf
- Building, Installing, and Using Quote Of The Day Version 2
- Adding the Template Driver
- Adding, Updating, and Removing a Driver
- Building a Driver
- Device Tree
- Devices Directories
- prtpiclDevice Tree
- rem_drv
- Removing the Template Driver
- Loading and Unloading a Driver
- Adding, Updating, and Removing a Driver
- syslogd
- Building, Installing, and Using Quote Of The Day Version 1
- Testing the Template Driver
- update_drvAdding, Updating, and Removing a Driver
- compilingBuilding a Driver
- condition variablesManaging Thread Synchronization
- conditional compilationDevice Driver Coding Tips
- condvar() kernel functionsLock and Condition Variable Members of the State Structure
- configuration files
- Writing the Device Configuration File
- Writing a Configuration File
- crash dumps
- use in testingDevice Driver Testing Tips
- cv_broadcast() kernel function
- Writing New Data
- Waiting on Signals
- cv_destroy() kernel functionCreating and Destroying Locks and Condition Variables
- cv_destroy() kernel functionChecking for Changes, Cleaning Up, and Detaching
- cv_init() kernel function
- Creating and Destroying Locks and Condition Variables
- Attaching, Allocating Memory, and Initializing a
Mutex and a Condition Variable
- cv_signal() kernel functionWaiting on Signals
- cv_wait() kernel functionWaiting on Signals
- cv_wait_sig() kernel function
- Waiting on Signals
- Lock and Condition Variable Members of the State Structure
D
- /devices/pseudo directoryCharacter and Block Devices
- /devices directory
- Adding, Updating, and Removing a Driver
- Devices Directories
- 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 functionManaging Thread Synchronization
- ddi_copyin() 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 Platforms
- 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 Platforms
- ddi_create_minor_node() kernel functionDefining the Device Attach Entry Point
- ddi_create_minor_node() kernel function
- Attaching, Allocating Memory, and Initializing a
Mutex and a Condition Variable
- Attaching and Detaching
- 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 functionReporting and Setting Device Size and Re-initializing the Device
- ddi_model_convert_from() kernel function
- 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
- Defining the Device Detach Entry Point
- Defining the Device Attach Entry Point
- 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
- instancesDevice 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 Platforms
- 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
E
- /etc/driver_aliases fileAdding, Updating, and Removing a Driver
- /etc/name_to_major file
- Building, Installing, and Using Quote Of The Day Version 2
- Adding the Template Driver
- Adding, Updating, and Removing a Driver
- echo commandReading and Writing the Device
- entry points
- _fini()
- Initializing and Unloading
- Defining the Module Unload Entry Point
- Writing the Loadable Module Configuration Entry Points
- _info()
- Device Driver Testing Tips
- Defining the Module Information Entry Point
- Writing the Loadable Module Configuration Entry Points
- Installing a Driver
- _init()
- Device Driver Testing Tips
- Initializing and Unloading
- Defining the Module Initialization Entry Point
- Writing the Loadable Module Configuration Entry Points
- Installing a Driver
- attach()
- Device Driver Testing Tips
- Attaching and Detaching
- Defining the Device Attach Entry Point
- Writing the Autoconfiguration Entry Points
- Installing a Driver
- autoconfigurationWriting the Autoconfiguration Entry Points
- close()
- Opening the Device, Closing the Device, and Getting Module Information
- Defining the Close Device Entry Point
- Writing the User Context Entry Points
- detach()
- Attaching and Detaching
- Defining the Device Detach Entry Point
- Writing the Autoconfiguration Entry Points
- Defining the Module Unload Entry Point
- devmap()User and Kernel Address Spaces on x86 and SPARC Platforms
- getinfo()
- Opening the Device, Closing the Device, and Getting Module Information
- Defining the Get Driver Information Entry Point
- Writing the Autoconfiguration Entry Points
- ioctl()
- Exercising the Driver's I/O Controls
- Reporting and Setting Device Size and Re-initializing the Device
- Writing New Data
- Devices as Files
- loadable module configurationWriting the Loadable Module Configuration Entry Points
- open()
- Opening the Device, Closing the Device, and Getting Module Information
- Defining the Open Device Entry Point
- Writing the User Context Entry Points
- prop_op()
- Defining the Report Driver Property Information Entry Point
- Writing the Autoconfiguration Entry Points
- read()
- Reading the Data
- Defining the Read Device Entry Point
- Writing the User Context Entry Points
- user contextWriting the User Context Entry Points
- write()
- Writing New Data
- Defining the Write Device Entry Point
- Writing the User Context Entry Points
F
- _fini() entry pointInitializing and Unloading
- _fini() entry point
- Defining the Module Unload Entry Point
- Writing the Loadable Module Configuration Entry Points
- _info() entry pointDevice Driver Testing Tips
- _init() entry pointDevice Driver Testing Tips
- files
- /etc/name_to_major
- Building, Installing, and Using Quote Of The Day Version 2
- Adding the Template Driver
- Adding, Updating, and Removing a Driver
- /var/adm/messages
- Building, Installing, and Using Quote Of The Day Version 1
- Testing the Template Driver
- driver.confWriting a Configuration File
- systemDriver Directory Organization
- functions
- kstat()Device Driver Debugging and Tuning Tips
- printf()Device Driver Coding Tips
- signal()
- Reporting and Setting Device Size and Re-initializing the Device
- Writing New Data
- Waiting on Signals
G
- gcc commandCompiling with the GNU C Compiler
- getinfo() entry point
- Opening the Device, Closing the Device, and Getting Module Information
- Defining the Get Driver Information Entry Point
- Writing the Autoconfiguration Entry Points
- getminor() kernel function
- Reading the Data
- Opening the Device, Closing the Device, and Getting Module Information
- GNU CCompiling with the GNU C Compiler
H
- hotpluggingDevice Driver Coding Tips
I
- _info() entry point
- Writing the Loadable Module Configuration Entry Points
- Installing a Driver
- _init() entry point
- Defining the Module Initialization Entry Point
- Writing the Loadable Module Configuration Entry Points
- Installing a Driver
- I/O controls
- Exercising the Driver's I/O Controls
- Reporting and Setting Device Size and Re-initializing the Device
- instance number
- Defining the Get Driver Information Entry Point
- Defining the Device Detach Entry Point
- Defining the Device Attach Entry Point
- Device Numbers
- interrupts
- avoiding problemsDevice Driver Coding Tips
- ioctl() entry point
- Exercising the Driver's I/O Controls
- Reporting and Setting Device Size and Re-initializing the Device
- Writing New Data
- Devices as Files
- ioctl() requests
- avoiding problemsDevice Driver Coding Tips
K
- kernelOracle Solaris Operating System Definition
- address space
- User and Kernel Address Spaces on x86 and SPARC Platforms
- Execution Differences Between Kernel Modules and
User Programs
- privilege See Alsokernel mode
- kernel functions
- ASSERT()
- Device Driver Coding Tips
- Building, Installing, and Using Quote Of The Day Version 2
- Checking Data Validity
- Writing Quote Of The Day Version 2
- bzero()Reporting and Setting Device Size and Re-initializing the Device
- cmn_err()
- Device Driver Coding Tips
- Displaying Data Stored in Kernel Memory
- Testing the Template Driver
- Defining the Module Initialization Entry Point
- condvar()Lock and Condition Variable Members of the State Structure
- cv_broadcast()
- Writing New Data
- Waiting on Signals
- cv_destroy()
- Creating and Destroying Locks and Condition Variables
- Checking for Changes, Cleaning Up, and Detaching
- cv_init()
- Creating and Destroying Locks and Condition Variables
- Attaching, Allocating Memory, and Initializing a
Mutex and a Condition Variable
- cv_signal()Waiting on Signals
- cv_wait()Waiting on Signals
- cv_wait_sig()
- Waiting on Signals
- Lock and Condition Variable Members of the State Structure
- ddi_copyin()
- 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 Platforms
- ddi_copyout()
- 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 Platforms
- ddi_create_minor_node()
- 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()
- Attaching and Detaching
- Defining the Device Attach Entry Point
- Device Numbers
- ddi_get_soft_state()
- Reading the Data
- Opening the Device, Closing the Device, and Getting Module Information
- Attaching and Detaching
- Managing Device State
- ddi_model_convert_from()
- 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()Writing a Configuration File
- ddi_prop_lookup()Writing a Configuration File
- ddi_prop_op()
- Defining the Report Driver Property Information Entry Point
- Writing the Autoconfiguration Entry Points
- ddi_remove_minor_node()
- Checking for Changes, Cleaning Up, and Detaching
- Attaching and Detaching
- Defining the Device Detach Entry Point
- Writing the Autoconfiguration Entry Points
- ddi_report_dev()Attaching and Detaching
- ddi_soft_state()Defining the Device Attach Entry Point
- ddi_soft_state_fini()
- Initializing and Unloading
- Managing Device State
- ddi_soft_state_free()
- Attaching and Detaching
- Managing Device State
- ddi_soft_state_init()
- Initializing and Unloading
- Managing Device State
- ddi_soft_state_zalloc()
- Attaching and Detaching
- Managing Device State
- ddi_umem_alloc()Allocating and Freeing Kernel Memory
- ddi_umem_free()
- Allocating and Freeing Kernel Memory
- Checking for Changes, Cleaning Up, and Detaching
- getminor()
- Reading the Data
- Opening the Device, Closing the Device, and Getting Module Information
- kmem_alloc()Allocating and Freeing Kernel Memory
- kmem_zalloc()Allocating and Freeing Kernel Memory
- memcpy()Reporting and Setting Device Size and Re-initializing the Device
- mod_info()
- Defining the Module Information Entry Point
- Writing the Loadable Module Configuration Entry Points
- mod_install()
- Initializing and Unloading
- Defining the Module Initialization Entry Point
- Writing the Loadable Module Configuration Entry Points
- mod_remove()
- Initializing and Unloading
- Defining the Module Unload Entry Point
- Writing the Loadable Module Configuration Entry Points
- mutex()Lock and Condition Variable Members of the State Structure
- mutex_destroy()
- Creating and Destroying Locks and Condition Variables
- Checking for Changes, Cleaning Up, and Detaching
- mutex_init()
- Creating and Destroying Locks and Condition Variables
- Attaching, Allocating Memory, and Initializing a
Mutex and a Condition Variable
- mutex_owned()Device Driver Coding Tips
- nochpoll()Defining the Character and Block Operations Structure
- nodev()
- Defining the Device Operations Structure
- Defining the Character and Block Operations Structure
- nulldev()
- Defining the Device Operations Structure
- Writing the User Context Entry Points
- strlcpy()
- Reporting and Setting Device Size and Re-initializing the Device
- Attaching, Allocating Memory, and Initializing a
Mutex and a Condition Variable
- strncpy()Attaching, Allocating Memory, and Initializing a
Mutex and a Condition Variable
- uiomove()
- Writing New Data
- Managing Thread Synchronization
- Writing Quote Of The Day Version 3
- Reading the Data
- kernel modeOracle Solaris Operating System Definition
- kernel modules
- use in testingDevice Driver Testing Tips
- kernel statisticsDevice Driver Debugging and Tuning Tips
- kernel structures
- uio
- Writing New Data
- Reading the Data
- kernel commandDriver Directory Organization
- kmdb kernel debugger
- Device Driver Debugging and Tuning Tips
- Device Driver Testing Tips
- kmem_alloc() kernel functionAllocating and Freeing Kernel Memory
- kmem_zalloc() kernel functionAllocating and Freeing Kernel Memory
- kstat() functionDevice Driver Debugging and Tuning Tips
L
- ld command
- Defining the Module Unload Entry Point
- Compiling with Oracle Developer Studio
- Structural Differences Between Kernel Modules and
User Programs
- linking
- Defining the Module Unload Entry Point
- Building a Driver
- Structural Differences Between Kernel Modules and
User Programs
M
- major number
- Device Numbers
- Devices Directories
- mdb modular debuggerDevice Driver Debugging and Tuning Tips
- memcpy() kernel functionReporting and Setting Device Size and Re-initializing the Device
- metadeviceCharacter and Block Devices
- minor number
- Defining the Device Attach Entry Point
- Device Numbers
- Devices Directories
- mknod() system callDevices Directories
- mknod commandDevices Directories
- mmap() system callUser and Kernel Address Spaces on x86 and SPARC Platforms
- mod_info() kernel function
- Defining the Module Information Entry Point
- Writing the Loadable Module Configuration Entry Points
- mod_install() kernel function
- Initializing and Unloading
- Defining the Module Initialization Entry Point
- Writing the Loadable Module Configuration Entry Points
- mod_remove() kernel function
- Initializing and Unloading
- Defining the Module Unload Entry Point
- Writing the Loadable Module Configuration Entry Points
- moddir kernel variableDriver Directory Organization
- modinfo command
- Building, Installing, and Using Quote Of The Day Version 2
- Adding the Template Driver
- Adding, Updating, and Removing a Driver
- modinfo driver structureDefining the Module Information Entry Point
- modldrv driver structure
- Defining the Module Linkage Structures
- Writing the Driver Data Structures
- modlinkage driver structure
- Defining the Module Linkage Structures
- Writing the Driver Data Structures
- Defining the Module Initialization Entry Point
- modload commandAdding the Template Driver
- modunload commandRemoving the Template Driver
- more commandBuilding, Installing, and Using Quote Of The Day Version 2
- mutex() kernel functionLock and Condition Variable Members of the State Structure
- mutex_destroy() kernel functionCreating and Destroying Locks and Condition Variables
- mutex_destroy() kernel functionChecking for Changes, Cleaning Up, and Detaching
- mutex_init() kernel functionCreating and Destroying Locks and Condition Variables
- mutex_init() kernel functionAttaching, Allocating Memory, and Initializing a
Mutex and a Condition Variable
- mutex_owned() kernel functionDevice Driver Coding Tips
- mutexesManaging Thread Synchronization
- avoiding problemsDevice Driver Coding Tips
N
- naming
- unique prefix for driver symbolsDevice Driver Coding Tips
- naming conventionsDevice Driver Coding Tips
- nexus deviceDevice Tree
- nochpoll() kernel functionDefining the Character and Block Operations Structure
- nodev() kernel function
- Defining the Device Operations Structure
- Defining the Character and Block Operations Structure
- nulldev() kernel function
- Defining the Device Operations Structure
- Writing the User Context Entry Points
O
- open() entry point
- Opening the Device, Closing the Device, and Getting Module Information
- Defining the Open Device Entry Point
- Writing the User Context Entry Points
- Oracle Developer StudioCompiling with Oracle Developer Studio
P
- PCI ID numbersAdding, Updating, and Removing a Driver
- power managementDevice Driver Coding Tips
- prefix
- unique prefix for driver symbolsDevice Driver Coding Tips
- prefixes
- Declaring the Autoconfiguration Entry Points
- Writing a Driver Module
- printf() functionDevice Driver Coding Tips
- prop_op() entry point
- Defining the Report Driver Property Information Entry Point
- Writing the Autoconfiguration Entry Points
- protected modeOracle Solaris Operating System Definition
- prtconf command
- Building, Installing, and Using Quote Of The Day Version 2
- Adding the Template Driver
- Adding, Updating, and Removing a Driver
- Building a Driver
- Device Tree
- Devices Directories
- prtpicl commandDevice Tree
Q
- QOTD_BUSY condition
- Locking Rules for Quote Of The Day Version 3
- Managing Thread Synchronization
R
- raw deviceCharacter and Block Devices
- read() entry point
- Reading the Data
- Defining the Read Device Entry Point
- Writing the User Context Entry Points
- read() system callDevices as Files
- rem_drv command
- Removing the Template Driver
- Loading and Unloading a Driver
- Adding, Updating, and Removing a Driver
- restricted modeOracle Solaris Operating System Definition
S
- serial connections
- use in testingDevice Driver Testing Tips
- signal() function
- Reporting and Setting Device Size and Re-initializing the Device
- Writing New Data
- Waiting on Signals
- snooping kernel variableDevice Driver Testing Tips
- soft stateManaging Device State
- SPARC
- address spaceUser and Kernel Address Spaces on x86 and SPARC Platforms
- compilingBuilding a Driver
- special filesDevices as Files
- state structures
- Managing Device State
- Writing Quote Of The Day Version 2
- strlcpy() kernel function
- Reporting and Setting Device Size and Re-initializing the Device
- Attaching, Allocating Memory, and Initializing a
Mutex and a Condition Variable
- strncpy() kernel functionAttaching, Allocating Memory, and Initializing a
Mutex and a Condition Variable
- syslogd command
- Building, Installing, and Using Quote Of The Day Version 1
- Testing the Template Driver
- system calls
- mknod()Devices Directories
- mmap()User and Kernel Address Spaces on x86 and SPARC Platforms
- read()Devices as Files
- system crash dumps
- use in testingDevice Driver Testing Tips
- system configuration information fileDriver Directory Organization
T
- testing device driversDevice Driver Testing Tips
- thread synchronizationManaging Thread Synchronization
- tuning device drivers
- tipsDevice Driver Debugging and Tuning Tips
U
- /usr/kernel directoryDriver Directory Organization
- uio kernel structure
- Writing New Data
- Reading the Data
- uiomove() kernel functionManaging Thread Synchronization
- uiomove() kernel function
- Writing New Data
- Writing Quote Of The Day Version 3
- Reading the Data
- update_drv commandAdding, Updating, and Removing a Driver
- user modeOracle Solaris Operating System Definition
V
- volatile keywordDevice Driver Coding Tips
W
- write() entry point
- Writing New Data
- Defining the Write Device Entry Point
- Writing the User Context Entry Points
X
- x86
- address spaceUser and Kernel Address Spaces on x86 and SPARC Platforms
- compilingBuilding a Driver