Go to main content
Index
Numbers and Symbols
- /var/adm/messages file
Building, Installing, and Using Quote Of The Day Version 1
Testing the Template Driver
- _info() entry point
Defining the Module Information Entry Point
- _init() entry point
Initializing and Unloading
A
- add_drv command
Adding the Template Driver
Adding, Updating, and Removing a Driver
- use in modifying existing drivers
Device Driver Coding Tips
- alternate kernels
- use in testing
Device 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 device
Character and Block Devices
- block device
Character and Block Devices
- boot command
Driver Directory Organization
- bzero() kernel function
Reporting and Setting Device Size and Re-initializing the Device
C
- cat command
Reading 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 command
Compiling with Oracle Developer Studio
- character device
Character 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
- boot
Driver Directory Organization
- cat
Reading and Writing the Device
- cc
Compiling with Oracle Developer Studio
- dmesg
Attaching and Detaching
- echo
Reading and Writing the Device
- fsck
Device Driver Testing Tips
- gcc
Compiling with the GNU C Compiler
- kernel
Driver Directory Organization
- ld
Defining the Module Unload Entry Point
Compiling with Oracle Developer Studio
Structural Differences Between Kernel Modules and
User Programs
- mknod
Devices Directories
- modinfo
Building, Installing, and Using Quote Of The Day Version 2
Adding the Template Driver
Adding, Updating, and Removing a Driver
- modload
Adding the Template Driver
- modunload
Removing the Template Driver
- more
Building, 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
- prtpicl
Device 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_drv
Adding, Updating, and Removing a Driver
- compiling
Building a Driver
- condition variables
Managing Thread Synchronization
- conditional compilation
Device Driver Coding Tips
- condvar() kernel functions
Lock and Condition Variable Members of the State Structure
- configuration files
Writing the Device Configuration File
Writing a Configuration File
- crash dumps
- use in testing
Device Driver Testing Tips
- cv_broadcast() kernel function
Writing New Data
Waiting on Signals
- cv_destroy() kernel function
Creating and Destroying Locks and Condition Variables
- cv_destroy() kernel function
Checking 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 function
Waiting on Signals
- cv_wait() kernel function
Waiting on Signals
- cv_wait_sig() kernel function
Waiting on Signals
Lock and Condition Variable Members of the State Structure
D
- /dev directory
Device Names
Devices Directories
- /devices/pseudo directory
Building, Installing, and Using Quote Of The Day Version 2
Adding the Template Driver
Character and Block Devices
- /devices directory
Adding, Updating, and Removing a Driver
Device Names
Devices Directories
Devices Directories
- data loss
- avoiding while testing
Device 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 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 function
Defining the Device Attach Entry Point
- ddi_create_minor_node() kernel function
Attaching, Allocating Memory, and Initializing a Mutex and a
Condition Variable
- ddi_create_minor_node() kernel function
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 function
Writing Quote Of The Day Version 3
- ddi_model_convert_from() kernel function
Reporting and Setting Device Size and Re-initializing the Device
- ddi_model_convert_from() kernel function
Writing a Driver Module
- ddi_prop_get_int() kernel function
Writing a Configuration File
- ddi_prop_lookup() kernel function
Writing 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
- ddi_remove_minor_node() kernel function
Attaching and Detaching
Defining the Device Detach Entry Point
Writing the Autoconfiguration Entry Points
- ddi_report_dev() kernel function
Attaching and Detaching
- ddi_soft_state() kernel function
Defining 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 function
Allocating and Freeing Kernel Memory
- ddi_umem_free() kernel function
Allocating and Freeing Kernel Memory
Checking for Changes, Cleaning Up, and Detaching
- deadman kernel feature
Device Driver Testing Tips
- debug tips for device drivers
Device 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 system
Devices Directories
- devfsadmd devices file system administration command
Device Names
- device drivers
Device Drivers- adding
Adding, Updating, and Removing a Driver
- coding tips
Device Driver Coding Tips
- compiling
Building a Driver
- condition variables
Managing Thread Synchronization
- conditional compilation
Device Driver Coding Tips
- debugging tips
Device Driver Debugging and Tuning Tips
- development guidelines
Tips for Developing Device Drivers
- directories
Driver Directory Organization- adding
Driver Directory Organization
- entry points
Overview of the Template Driver Example
Typical Device Driver Entry Points- See Also
entry points - See Also
entry points
- how used
Entry 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
- linking
Building a Driver
- loading
Adding the Template Driver
Loading and Unloading a Driver
Driver Directory Organization
- mutexes
Managing Thread Synchronization
- naming conventions
Device Driver Coding Tips
- recommended housekeeping
Device Driver Coding Tips
- removing
Removing the Template Driver
Adding, Updating, and Removing a Driver
- structures See
driver structures
- test areas
Testing a Driver
- testing
Device Driver Testing Tips
- thread synchronization
Managing Thread Synchronization
- tuning
Device Driver Debugging and Tuning Tips
- unloading
Removing the Template Driver
Loading and Unloading a Driver
- updating
Adding, 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 number
Device 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 tree
Device Tree
- devices
- blk
Character 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 tree
Device Tree
- directories
Device Names
Devices Directories
- exclusive access
Locking Rules for Quote Of The Day Version 3
- file system
- devfs
Devices Directories
- devfsadmd
Device Names
- instances
Device Numbers
- md metadevice
Character and Block Devices
- names
Device 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
- raw
Character and Block Devices
- reading
Reading the Device
Building, Installing, and Using Quote Of The Day Version 2
Reading and Writing the Device
- special files
Devices as Files
- state
Managing Device State
- writing
Writing the Device
Writing New Data
Modifying Data Stored in Kernel Memory
Reading and Writing the Device
- devmap() entry point
User and Kernel Address Spaces on x86 and SPARC Platforms
- dmesg command
Attaching 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 structure
Defining the Character and Block Operations Structure
- dev_ops
Defining the Device Operations Structure
Writing the Driver Data Structures
Device Drivers
- device operations structure
Defining the Device Operations Structure
- modinfo
Defining 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 structures
Defining the Module Linkage Structures
- driver.conf file
Writing a Configuration File
- drivers See
device drivers
- DTrace analyzer
Device Driver Debugging and Tuning Tips
E
- /etc/driver_aliases file
Adding, 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 command
Reading 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
- autoconfiguration
Writing 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 configuration
Writing 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 context
Writing the User Context Entry Points
- write()
Writing New Data
Defining the Write Device Entry Point
Writing the User Context Entry Points
F
- _fini() entry point
Initializing and Unloading
- _fini() entry point
Defining the Module Unload Entry Point
Writing the Loadable Module Configuration Entry Points
- _info() entry point
Device Driver Testing Tips
- _init() entry point
Device 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.conf
Writing a Configuration File
- system
Driver Directory Organization
- fsck command
Device Driver Testing Tips
- 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 command
Compiling 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 C
Compiling with the GNU C Compiler
H
- hotplugging
Device 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 problems
Device 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 problems
Device Driver Coding Tips
K
- kernel
Oracle 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 Also
kernel 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 mode
Oracle Solaris Operating System Definition
- kernel modules
- use in testing
Device Driver Testing Tips
- kernel statistics
Device Driver Debugging and Tuning Tips
- kernel structures
- uio
Writing New Data
Reading the Data
- kernel command
Driver Directory Organization
- kmdb kernel debugger
Device Driver Debugging and Tuning Tips
Device Driver Testing Tips
- kmem_alloc() kernel function
Allocating and Freeing Kernel Memory
- kmem_zalloc() kernel function
Allocating and Freeing Kernel Memory
- kstat() function
Device 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 debugger
Device Driver Debugging and Tuning Tips
- memcpy() kernel function
Reporting and Setting Device Size and Re-initializing the Device
- metadevice
Character and Block Devices
- minor number
Defining the Device Attach Entry Point
Device Numbers
Devices Directories
- mknod() system call
Devices Directories
- mknod command
Devices Directories
- mmap() system call
User 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 variable
Driver 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 structure
Defining 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 command
Adding the Template Driver
- modunload command
Removing the Template Driver
- more command
Building, Installing, and Using Quote Of The Day Version 2
- mutex() kernel function
Lock and Condition Variable Members of the State Structure
- mutex_destroy() kernel function
Creating and Destroying Locks and Condition Variables
- mutex_destroy() kernel function
Checking for Changes, Cleaning Up, and Detaching
- mutex_init() kernel function
Creating and Destroying Locks and Condition Variables
- mutex_init() kernel function
Attaching, Allocating Memory, and Initializing a Mutex and a
Condition Variable
- mutex_owned() kernel function
Device Driver Coding Tips
- mutexes
Managing Thread Synchronization- avoiding problems
Device Driver Coding Tips
N
- naming
- unique prefix for driver symbols
Device Driver Coding Tips
- naming conventions
Device Driver Coding Tips
- nexus device
Device Tree
- nochpoll() kernel function
Defining 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 Studio
Compiling with Oracle Developer Studio
P
- PCI ID numbers
Adding, Updating, and Removing a Driver
- power management
Device Driver Coding Tips
- prefix
- unique prefix for driver symbols
Device Driver Coding Tips
- prefixes
Declaring the Autoconfiguration Entry Points
Writing a Driver Module
- printf() function
Device Driver Coding Tips
- prop_op() entry point
Defining the Report Driver Property Information Entry Point
Writing the Autoconfiguration Entry Points
- protected mode
Oracle 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 command
Device Tree
Q
- QOTD_BUSY condition
Locking Rules for Quote Of The Day Version 3
Managing Thread Synchronization
R
- raw device
Character and Block Devices
- read() entry point
Reading the Data
Defining the Read Device Entry Point
Writing the User Context Entry Points
- read() system call
Devices as Files
- rem_drv command
Removing the Template Driver
Loading and Unloading a Driver
Adding, Updating, and Removing a Driver
- restricted mode
Oracle Solaris Operating System Definition
S
- serial connections
- use in testing
Device Driver Testing Tips
- signal() function
Reporting and Setting Device Size and Re-initializing the Device
Writing New Data
Waiting on Signals
- snooping kernel variable
Device Driver Testing Tips
- soft state
Managing Device State
- SPARC
- address space
User and Kernel Address Spaces on x86 and SPARC Platforms
- compiling
Building a Driver
- special files
Devices 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 function
Attaching, 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 testing
Device Driver Testing Tips
- system configuration information file
Driver Directory Organization
T
- testing device drivers
Device Driver Testing Tips
- thread synchronization
Managing Thread Synchronization
- tuning tips for device drivers
Device Driver Debugging and Tuning Tips
U
- /usr/kernel directory
Driver Directory Organization
- uio kernel structure
Writing New Data
Reading the Data
- uiomove() kernel function
Writing New Data
Managing Thread Synchronization
Writing Quote Of The Day Version 3
Reading the Data
- update_drv command
Adding, Updating, and Removing a Driver
- user mode
Oracle Solaris Operating System Definition
V
- volatile keyword
Device 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 space
User and Kernel Address Spaces on x86 and SPARC Platforms
- compiling
Building a Driver