Go to main content

Device Driver Tutorial

Exit Print View

Updated: April 2019
 
 

Index

Numbers and Symbols

/var/adm/messages file
index iconBuilding, Installing, and Using Quote Of The Day Version 1
index iconTesting the Template Driver
_info() entry pointindex iconDefining the Module Information Entry Point
_init() entry pointindex iconInitializing and Unloading

A

add_drv command
index iconAdding the Template Driver
index iconAdding, Updating, and Removing a Driver
use in modifying existing driversindex iconDevice Driver Coding Tips
alternate kernels
use in testingindex iconDevice Driver Testing Tips
ASSERT() kernel function
index iconDevice Driver Coding Tips
index iconBuilding, Installing, and Using Quote Of The Day Version 2
index iconChecking Data Validity
index iconWriting Quote Of The Day Version 2
attach() entry point
index iconDevice Driver Testing Tips
index iconAttaching and Detaching
index iconDefining the Device Attach Entry Point
index iconWriting the Autoconfiguration Entry Points
index iconInstalling a Driver

B

blk deviceindex iconCharacter and Block Devices
block deviceindex iconCharacter and Block Devices
boot commandindex iconDriver Directory Organization
bzero() kernel functionindex iconReporting and Setting Device Size and Re-initializing the Device

C

cat commandindex iconReading and Writing the Device
cb_ops driver structure
index iconWriting New Data
index iconDefining the Character and Block Operations Structure
index iconWriting the Driver Data Structures
index iconDevice Drivers
cc commandindex iconCompiling with Oracle Developer Studio
character deviceindex iconCharacter and Block Devices
close() entry point
index iconOpening the Device, Closing the Device, and Getting Module Information
index iconDefining the Close Device Entry Point
index iconWriting the User Context Entry Points
cmn_err() kernel function
index iconDevice Driver Coding Tips
index iconDisplaying Data Stored in Kernel Memory
index iconTesting the Template Driver
index iconDefining the Module Initialization Entry Point
commands
add_drv
index iconDevice Driver Coding Tips
index iconAdding the Template Driver
index iconAdding, Updating, and Removing a Driver
bootindex iconDriver Directory Organization
catindex iconReading and Writing the Device
ccindex iconCompiling with Oracle Developer Studio
dmesgindex iconAttaching and Detaching
echoindex iconReading and Writing the Device
fsckindex iconDevice Driver Testing Tips
gccindex iconCompiling with the GNU C Compiler
kernelindex iconDriver Directory Organization
ld
index iconDefining the Module Unload Entry Point
index iconCompiling with Oracle Developer Studio
index iconStructural Differences Between Kernel Modules and User Programs
mknodindex iconDevices Directories
modinfo
index iconBuilding, Installing, and Using Quote Of The Day Version 2
index iconAdding the Template Driver
index iconAdding, Updating, and Removing a Driver
modloadindex iconAdding the Template Driver
modunloadindex iconRemoving the Template Driver
moreindex iconBuilding, Installing, and Using Quote Of The Day Version 2
prtconf
index iconBuilding, Installing, and Using Quote Of The Day Version 2
index iconAdding the Template Driver
index iconAdding, Updating, and Removing a Driver
index iconBuilding a Driver
index iconDevice Tree
index iconDevices Directories
prtpiclindex iconDevice Tree
rem_drv
index iconRemoving the Template Driver
index iconLoading and Unloading a Driver
index iconAdding, Updating, and Removing a Driver
syslogd
index iconBuilding, Installing, and Using Quote Of The Day Version 1
index iconTesting the Template Driver
update_drvindex iconAdding, Updating, and Removing a Driver
compilingindex iconBuilding a Driver
condition variablesindex iconManaging Thread Synchronization
conditional compilationindex iconDevice Driver Coding Tips
condvar() kernel functionsindex iconLock and Condition Variable Members of the State Structure
configuration files
index iconWriting the Device Configuration File
index iconWriting a Configuration File
crash dumps
use in testingindex iconDevice Driver Testing Tips
cv_broadcast() kernel function
index iconWriting New Data
index iconWaiting on Signals
cv_destroy() kernel functionindex iconCreating and Destroying Locks and Condition Variables
cv_destroy() kernel functionindex iconChecking for Changes, Cleaning Up, and Detaching
cv_init() kernel function
index iconCreating and Destroying Locks and Condition Variables
index iconAttaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
cv_signal() kernel functionindex iconWaiting on Signals
cv_wait() kernel functionindex iconWaiting on Signals
cv_wait_sig() kernel function
index iconWaiting on Signals
index iconLock and Condition Variable Members of the State Structure

D

/dev directory
index iconDevice Names
index iconDevices Directories
/devices/pseudo directory
index iconBuilding, Installing, and Using Quote Of The Day Version 2
index iconAdding the Template Driver
index iconCharacter and Block Devices
/devices directory
index iconAdding, Updating, and Removing a Driver
index iconDevice Names
index iconDevices Directories
index iconDevices Directories
data loss
avoiding while testingindex iconDevice Driver Testing Tips
data model
converting
index iconWriting Quote Of The Day Version 3
index iconWriting a Driver Module
ddi_copyin() kernel function
index iconReporting and Setting Device Size and Re-initializing the Device
index iconManaging Thread Synchronization
index iconWriting Quote Of The Day Version 3
index iconUser and Kernel Address Spaces on x86 and SPARC Platforms
ddi_copyout() kernel function
index iconReporting and Setting Device Size and Re-initializing the Device
index iconWriting Quote Of The Day Version 3
index iconUser and Kernel Address Spaces on x86 and SPARC Platforms
ddi_create_minor_node() kernel functionindex iconDefining the Device Attach Entry Point
ddi_create_minor_node() kernel functionindex iconAttaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
ddi_create_minor_node() kernel function
index iconAttaching and Detaching
index iconWriting the Autoconfiguration Entry Points
ddi_get_instance() kernel function
index iconAttaching and Detaching
index iconDefining the Device Attach Entry Point
index iconDevice Numbers
ddi_get_soft_state() kernel function
index iconReading the Data
index iconOpening the Device, Closing the Device, and Getting Module Information
index iconAttaching and Detaching
index iconManaging Device State
ddi_model_convert_from() kernel functionindex iconWriting Quote Of The Day Version 3
ddi_model_convert_from() kernel functionindex iconReporting and Setting Device Size and Re-initializing the Device
ddi_model_convert_from() kernel functionindex iconWriting a Driver Module
ddi_prop_get_int() kernel functionindex iconWriting a Configuration File
ddi_prop_lookup() kernel functionindex iconWriting a Configuration File
ddi_prop_op() kernel function
index iconDefining the Report Driver Property Information Entry Point
index iconWriting the Autoconfiguration Entry Points
ddi_remove_minor_node() kernel functionindex iconChecking for Changes, Cleaning Up, and Detaching
ddi_remove_minor_node() kernel function
index iconAttaching and Detaching
index iconDefining the Device Detach Entry Point
index iconWriting the Autoconfiguration Entry Points
ddi_report_dev() kernel functionindex iconAttaching and Detaching
ddi_soft_state() kernel functionindex iconDefining the Device Attach Entry Point
ddi_soft_state_fini() kernel function
index iconInitializing and Unloading
index iconManaging Device State
ddi_soft_state_free() kernel function
index iconAttaching and Detaching
index iconManaging Device State
ddi_soft_state_init() kernel function
index iconInitializing and Unloading
index iconManaging Device State
ddi_soft_state_zalloc() kernel function
index iconAttaching and Detaching
index iconManaging Device State
ddi_umem_alloc() kernel functionindex iconAllocating and Freeing Kernel Memory
ddi_umem_free() kernel function
index iconAllocating and Freeing Kernel Memory
index iconChecking for Changes, Cleaning Up, and Detaching
deadman kernel featureindex iconDevice Driver Testing Tips
debug tips for device driversindex iconDevice Driver Debugging and Tuning Tips
detach() entry point
index iconAttaching and Detaching
index iconDefining the Device Detach Entry Point
index iconWriting the Autoconfiguration Entry Points
index iconDefining the Module Unload Entry Point
dev_info device structure
index iconDefining the Get Driver Information Entry Point
index iconDefining the Device Detach Entry Point
index iconDefining the Device Attach Entry Point
dev_ops driver structure
index iconDefining the Device Operations Structure
index iconWriting the Driver Data Structures
index iconDevice Drivers
devfs devices file systemindex iconDevices Directories
devfsadmd devices file system administration commandindex iconDevice Names
device driversindex iconDevice Drivers
addingindex iconAdding, Updating, and Removing a Driver
coding tipsindex iconDevice Driver Coding Tips
compilingindex iconBuilding a Driver
condition variablesindex iconManaging Thread Synchronization
conditional compilationindex iconDevice Driver Coding Tips
debugging tipsindex iconDevice Driver Debugging and Tuning Tips
development guidelinesindex iconTips for Developing Device Drivers
directoriesindex iconDriver Directory Organization
addingindex iconDriver Directory Organization
entry points
index iconOverview of the Template Driver Example
index iconTypical Device Driver Entry Points
  See Alsoindex iconentry points
  See Alsoindex iconentry points
how usedindex iconEntry Points for Different Types of Drivers
I/O controls
index iconExercising the Driver's I/O Controls
index iconReporting and Setting Device Size and Re-initializing the Device
installing
index iconDevice Driver Testing Tips
index iconInstalling a Driver
linkingindex iconBuilding a Driver
loading
index iconAdding the Template Driver
index iconLoading and Unloading a Driver
index iconDriver Directory Organization
mutexesindex iconManaging Thread Synchronization
naming conventionsindex iconDevice Driver Coding Tips
recommended housekeepingindex iconDevice Driver Coding Tips
removing
index iconRemoving the Template Driver
index iconAdding, Updating, and Removing a Driver
structures  Seeindex icondriver structures
test areasindex iconTesting a Driver
testingindex iconDevice Driver Testing Tips
thread synchronizationindex iconManaging Thread Synchronization
tuningindex iconDevice Driver Debugging and Tuning Tips
unloading
index iconRemoving the Template Driver
index iconLoading and Unloading a Driver
updatingindex iconAdding, Updating, and Removing a Driver
device instance
index iconDefining the Device Detach Entry Point
index iconDefining the Device Attach Entry Point
device instance pointer (dip)
index iconDefining the Get Driver Information Entry Point
index iconDefining the Device Detach Entry Point
index iconDefining the Device Attach Entry Point
device numberindex iconDevice Numbers
device structures
dev_info
index iconDefining the Get Driver Information Entry Point
index iconDefining the Device Detach Entry Point
index iconDefining the Device Attach Entry Point
device treeindex iconDevice Tree
devices
blkindex iconCharacter and Block Devices
block
index iconCharacter and Block Devices
index iconDevices as Files
character
index iconWriting the Template Driver
index iconCharacter and Block Devices
index iconDevices as Files
configuration files
index iconWriting the Device Configuration File
index iconWriting a Configuration File
device treeindex iconDevice Tree
directories
index iconDevice Names
index iconDevices Directories
exclusive accessindex iconLocking Rules for Quote Of The Day Version 3
file system
devfsindex iconDevices Directories
devfsadmdindex iconDevice Names
instancesindex iconDevice Numbers
md metadeviceindex iconCharacter and Block Devices
namesindex iconDevice Names
nexus
index iconDevice Tree
index iconEntry Points for Different Types of Drivers
numbers
index iconDefining the Device Attach Entry Point
index iconDevice Numbers
index iconDevices Directories
prefixes
index iconDeclaring the Autoconfiguration Entry Points
index iconWriting a Driver Module
properties
index iconDefining the Report Driver Property Information Entry Point
index iconWriting a Configuration File
pseudo
index iconTemplate Driver Example
index iconEntry Points for Different Types of Drivers
ramdisk
index iconModifying Data Stored in Kernel Memory
index iconEntry Points for Different Types of Drivers
rawindex iconCharacter and Block Devices
reading
index iconReading the Device
index iconBuilding, Installing, and Using Quote Of The Day Version 2
index iconReading and Writing the Device
special filesindex iconDevices as Files
stateindex iconManaging Device State
writing
index iconWriting the Device
index iconWriting New Data
index iconModifying Data Stored in Kernel Memory
index iconReading and Writing the Device
devmap() entry pointindex iconUser and Kernel Address Spaces on x86 and SPARC Platforms
dmesg commandindex iconAttaching and Detaching
driver structures
cb_ops
index iconWriting New Data
index iconDefining the Character and Block Operations Structure
index iconWriting the Driver Data Structures
index iconDevice Drivers
character and block operations structureindex iconDefining the Character and Block Operations Structure
dev_ops
index iconDefining the Device Operations Structure
index iconWriting the Driver Data Structures
index iconDevice Drivers
device operations structureindex iconDefining the Device Operations Structure
modinfoindex iconDefining the Module Information Entry Point
modldrv
index iconDefining the Module Linkage Structures
index iconWriting the Driver Data Structures
modlinkage
index iconDefining the Module Linkage Structures
index iconWriting the Driver Data Structures
index iconDefining the Module Initialization Entry Point
module linkage structuresindex iconDefining the Module Linkage Structures
driver.conf fileindex iconWriting a Configuration File
drivers  Seeindex icondevice drivers
DTrace analyzerindex iconDevice Driver Debugging and Tuning Tips

E

/etc/driver_aliases fileindex iconAdding, Updating, and Removing a Driver
/etc/name_to_major file
index iconBuilding, Installing, and Using Quote Of The Day Version 2
index iconAdding the Template Driver
index iconAdding, Updating, and Removing a Driver
echo commandindex iconReading and Writing the Device
entry points
_fini()
index iconInitializing and Unloading
index iconDefining the Module Unload Entry Point
index iconWriting the Loadable Module Configuration Entry Points
_info()
index iconDevice Driver Testing Tips
index iconDefining the Module Information Entry Point
index iconWriting the Loadable Module Configuration Entry Points
index iconInstalling a Driver
_init()
index iconDevice Driver Testing Tips
index iconInitializing and Unloading
index iconDefining the Module Initialization Entry Point
index iconWriting the Loadable Module Configuration Entry Points
index iconInstalling a Driver
attach()
index iconDevice Driver Testing Tips
index iconAttaching and Detaching
index iconDefining the Device Attach Entry Point
index iconWriting the Autoconfiguration Entry Points
index iconInstalling a Driver
autoconfigurationindex iconWriting the Autoconfiguration Entry Points
close()
index iconOpening the Device, Closing the Device, and Getting Module Information
index iconDefining the Close Device Entry Point
index iconWriting the User Context Entry Points
detach()
index iconAttaching and Detaching
index iconDefining the Device Detach Entry Point
index iconWriting the Autoconfiguration Entry Points
index iconDefining the Module Unload Entry Point
devmap()index iconUser and Kernel Address Spaces on x86 and SPARC Platforms
getinfo()
index iconOpening the Device, Closing the Device, and Getting Module Information
index iconDefining the Get Driver Information Entry Point
index iconWriting the Autoconfiguration Entry Points
ioctl()
index iconExercising the Driver's I/O Controls
index iconReporting and Setting Device Size and Re-initializing the Device
index iconWriting New Data
index iconDevices as Files
loadable module configurationindex iconWriting the Loadable Module Configuration Entry Points
open()
index iconOpening the Device, Closing the Device, and Getting Module Information
index iconDefining the Open Device Entry Point
index iconWriting the User Context Entry Points
prop_op()
index iconDefining the Report Driver Property Information Entry Point
index iconWriting the Autoconfiguration Entry Points
read()
index iconReading the Data
index iconDefining the Read Device Entry Point
index iconWriting the User Context Entry Points
user contextindex iconWriting the User Context Entry Points
write()
index iconWriting New Data
index iconDefining the Write Device Entry Point
index iconWriting the User Context Entry Points

F

_fini() entry pointindex iconInitializing and Unloading
_fini() entry point
index iconDefining the Module Unload Entry Point
index iconWriting the Loadable Module Configuration Entry Points
_info() entry pointindex iconDevice Driver Testing Tips
_init() entry pointindex iconDevice Driver Testing Tips
files
/etc/name_to_major
index iconBuilding, Installing, and Using Quote Of The Day Version 2
index iconAdding the Template Driver
index iconAdding, Updating, and Removing a Driver
/var/adm/messages
index iconBuilding, Installing, and Using Quote Of The Day Version 1
index iconTesting the Template Driver
driver.confindex iconWriting a Configuration File
systemindex iconDriver Directory Organization
fsck commandindex iconDevice Driver Testing Tips
functions
kstat()index iconDevice Driver Debugging and Tuning Tips
printf()index iconDevice Driver Coding Tips
signal()
index iconReporting and Setting Device Size and Re-initializing the Device
index iconWriting New Data
index iconWaiting on Signals

G

gcc commandindex iconCompiling with the GNU C Compiler
getinfo() entry point
index iconOpening the Device, Closing the Device, and Getting Module Information
index iconDefining the Get Driver Information Entry Point
index iconWriting the Autoconfiguration Entry Points
getminor() kernel function
index iconReading the Data
index iconOpening the Device, Closing the Device, and Getting Module Information
GNU Cindex iconCompiling with the GNU C Compiler

H

hotpluggingindex iconDevice Driver Coding Tips

I

_info() entry point
index iconWriting the Loadable Module Configuration Entry Points
index iconInstalling a Driver
_init() entry point
index iconDefining the Module Initialization Entry Point
index iconWriting the Loadable Module Configuration Entry Points
index iconInstalling a Driver
I/O controls
index iconExercising the Driver's I/O Controls
index iconReporting and Setting Device Size and Re-initializing the Device
instance number
index iconDefining the Get Driver Information Entry Point
index iconDefining the Device Detach Entry Point
index iconDefining the Device Attach Entry Point
index iconDevice Numbers
interrupts
avoiding problemsindex iconDevice Driver Coding Tips
ioctl() entry point
index iconExercising the Driver's I/O Controls
index iconReporting and Setting Device Size and Re-initializing the Device
index iconWriting New Data
index iconDevices as Files
ioctl() requests
avoiding problemsindex iconDevice Driver Coding Tips

K

kernelindex iconOracle Solaris Operating System Definition
address space
index iconUser and Kernel Address Spaces on x86 and SPARC Platforms
index iconExecution Differences Between Kernel Modules and User Programs
privilege  See Alsoindex iconkernel mode
kernel functions
ASSERT()
index iconDevice Driver Coding Tips
index iconBuilding, Installing, and Using Quote Of The Day Version 2
index iconChecking Data Validity
index iconWriting Quote Of The Day Version 2
bzero()index iconReporting and Setting Device Size and Re-initializing the Device
cmn_err()
index iconDevice Driver Coding Tips
index iconDisplaying Data Stored in Kernel Memory
index iconTesting the Template Driver
index iconDefining the Module Initialization Entry Point
condvar()index iconLock and Condition Variable Members of the State Structure
cv_broadcast()
index iconWriting New Data
index iconWaiting on Signals
cv_destroy()
index iconCreating and Destroying Locks and Condition Variables
index iconChecking for Changes, Cleaning Up, and Detaching
cv_init()
index iconCreating and Destroying Locks and Condition Variables
index iconAttaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
cv_signal()index iconWaiting on Signals
cv_wait()index iconWaiting on Signals
cv_wait_sig()
index iconWaiting on Signals
index iconLock and Condition Variable Members of the State Structure
ddi_copyin()
index iconReporting and Setting Device Size and Re-initializing the Device
index iconManaging Thread Synchronization
index iconWriting Quote Of The Day Version 3
index iconUser and Kernel Address Spaces on x86 and SPARC Platforms
ddi_copyout()
index iconReporting and Setting Device Size and Re-initializing the Device
index iconWriting Quote Of The Day Version 3
index iconUser and Kernel Address Spaces on x86 and SPARC Platforms
ddi_create_minor_node()
index iconAttaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
index iconAttaching and Detaching
index iconDefining the Device Attach Entry Point
index iconWriting the Autoconfiguration Entry Points
ddi_get_instance()
index iconAttaching and Detaching
index iconDefining the Device Attach Entry Point
index iconDevice Numbers
ddi_get_soft_state()
index iconReading the Data
index iconOpening the Device, Closing the Device, and Getting Module Information
index iconAttaching and Detaching
index iconManaging Device State
ddi_model_convert_from()
index iconReporting and Setting Device Size and Re-initializing the Device
index iconWriting Quote Of The Day Version 3
index iconWriting a Driver Module
ddi_prop_get_int()index iconWriting a Configuration File
ddi_prop_lookup()index iconWriting a Configuration File
ddi_prop_op()
index iconDefining the Report Driver Property Information Entry Point
index iconWriting the Autoconfiguration Entry Points
ddi_remove_minor_node()
index iconChecking for Changes, Cleaning Up, and Detaching
index iconAttaching and Detaching
index iconDefining the Device Detach Entry Point
index iconWriting the Autoconfiguration Entry Points
ddi_report_dev()index iconAttaching and Detaching
ddi_soft_state()index iconDefining the Device Attach Entry Point
ddi_soft_state_fini()
index iconInitializing and Unloading
index iconManaging Device State
ddi_soft_state_free()
index iconAttaching and Detaching
index iconManaging Device State
ddi_soft_state_init()
index iconInitializing and Unloading
index iconManaging Device State
ddi_soft_state_zalloc()
index iconAttaching and Detaching
index iconManaging Device State
ddi_umem_alloc()index iconAllocating and Freeing Kernel Memory
ddi_umem_free()
index iconAllocating and Freeing Kernel Memory
index iconChecking for Changes, Cleaning Up, and Detaching
getminor()
index iconReading the Data
index iconOpening the Device, Closing the Device, and Getting Module Information
kmem_alloc()index iconAllocating and Freeing Kernel Memory
kmem_zalloc()index iconAllocating and Freeing Kernel Memory
memcpy()index iconReporting and Setting Device Size and Re-initializing the Device
mod_info()
index iconDefining the Module Information Entry Point
index iconWriting the Loadable Module Configuration Entry Points
mod_install()
index iconInitializing and Unloading
index iconDefining the Module Initialization Entry Point
index iconWriting the Loadable Module Configuration Entry Points
mod_remove()
index iconInitializing and Unloading
index iconDefining the Module Unload Entry Point
index iconWriting the Loadable Module Configuration Entry Points
mutex()index iconLock and Condition Variable Members of the State Structure
mutex_destroy()
index iconCreating and Destroying Locks and Condition Variables
index iconChecking for Changes, Cleaning Up, and Detaching
mutex_init()
index iconCreating and Destroying Locks and Condition Variables
index iconAttaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
mutex_owned()index iconDevice Driver Coding Tips
nochpoll()index iconDefining the Character and Block Operations Structure
nodev()
index iconDefining the Device Operations Structure
index iconDefining the Character and Block Operations Structure
nulldev()
index iconDefining the Device Operations Structure
index iconWriting the User Context Entry Points
strlcpy()
index iconReporting and Setting Device Size and Re-initializing the Device
index iconAttaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
strncpy()index iconAttaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
uiomove()
index iconWriting New Data
index iconManaging Thread Synchronization
index iconWriting Quote Of The Day Version 3
index iconReading the Data
kernel modeindex iconOracle Solaris Operating System Definition
kernel modules
use in testingindex iconDevice Driver Testing Tips
kernel statisticsindex iconDevice Driver Debugging and Tuning Tips
kernel structures
uio
index iconWriting New Data
index iconReading the Data
kernel commandindex iconDriver Directory Organization
kmdb kernel debugger
index iconDevice Driver Debugging and Tuning Tips
index iconDevice Driver Testing Tips
kmem_alloc() kernel functionindex iconAllocating and Freeing Kernel Memory
kmem_zalloc() kernel functionindex iconAllocating and Freeing Kernel Memory
kstat() functionindex iconDevice Driver Debugging and Tuning Tips

L

ld command
index iconDefining the Module Unload Entry Point
index iconCompiling with Oracle Developer Studio
index iconStructural Differences Between Kernel Modules and User Programs
linking
index iconDefining the Module Unload Entry Point
index iconBuilding a Driver
index iconStructural Differences Between Kernel Modules and User Programs

M

major number
index iconDevice Numbers
index iconDevices Directories
mdb modular debuggerindex iconDevice Driver Debugging and Tuning Tips
memcpy() kernel functionindex iconReporting and Setting Device Size and Re-initializing the Device
metadeviceindex iconCharacter and Block Devices
minor number
index iconDefining the Device Attach Entry Point
index iconDevice Numbers
index iconDevices Directories
mknod() system callindex iconDevices Directories
mknod commandindex iconDevices Directories
mmap() system callindex iconUser and Kernel Address Spaces on x86 and SPARC Platforms
mod_info() kernel function
index iconDefining the Module Information Entry Point
index iconWriting the Loadable Module Configuration Entry Points
mod_install() kernel function
index iconInitializing and Unloading
index iconDefining the Module Initialization Entry Point
index iconWriting the Loadable Module Configuration Entry Points
mod_remove() kernel function
index iconInitializing and Unloading
index iconDefining the Module Unload Entry Point
index iconWriting the Loadable Module Configuration Entry Points
moddir kernel variableindex iconDriver Directory Organization
modinfo command
index iconBuilding, Installing, and Using Quote Of The Day Version 2
index iconAdding the Template Driver
index iconAdding, Updating, and Removing a Driver
modinfo driver structureindex iconDefining the Module Information Entry Point
modldrv driver structure
index iconDefining the Module Linkage Structures
index iconWriting the Driver Data Structures
modlinkage driver structure
index iconDefining the Module Linkage Structures
index iconWriting the Driver Data Structures
index iconDefining the Module Initialization Entry Point
modload commandindex iconAdding the Template Driver
modunload commandindex iconRemoving the Template Driver
more commandindex iconBuilding, Installing, and Using Quote Of The Day Version 2
mutex() kernel functionindex iconLock and Condition Variable Members of the State Structure
mutex_destroy() kernel functionindex iconCreating and Destroying Locks and Condition Variables
mutex_destroy() kernel functionindex iconChecking for Changes, Cleaning Up, and Detaching
mutex_init() kernel functionindex iconCreating and Destroying Locks and Condition Variables
mutex_init() kernel functionindex iconAttaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
mutex_owned() kernel functionindex iconDevice Driver Coding Tips
mutexesindex iconManaging Thread Synchronization
avoiding problemsindex iconDevice Driver Coding Tips

N

naming
unique prefix for driver symbolsindex iconDevice Driver Coding Tips
naming conventionsindex iconDevice Driver Coding Tips
nexus deviceindex iconDevice Tree
nochpoll() kernel functionindex iconDefining the Character and Block Operations Structure
nodev() kernel function
index iconDefining the Device Operations Structure
index iconDefining the Character and Block Operations Structure
nulldev() kernel function
index iconDefining the Device Operations Structure
index iconWriting the User Context Entry Points

O

open() entry point
index iconOpening the Device, Closing the Device, and Getting Module Information
index iconDefining the Open Device Entry Point
index iconWriting the User Context Entry Points
Oracle Developer Studioindex iconCompiling with Oracle Developer Studio

P

PCI ID numbersindex iconAdding, Updating, and Removing a Driver
power managementindex iconDevice Driver Coding Tips
prefix
unique prefix for driver symbolsindex iconDevice Driver Coding Tips
prefixes
index iconDeclaring the Autoconfiguration Entry Points
index iconWriting a Driver Module
printf() functionindex iconDevice Driver Coding Tips
prop_op() entry point
index iconDefining the Report Driver Property Information Entry Point
index iconWriting the Autoconfiguration Entry Points
protected modeindex iconOracle Solaris Operating System Definition
prtconf command
index iconBuilding, Installing, and Using Quote Of The Day Version 2
index iconAdding the Template Driver
index iconAdding, Updating, and Removing a Driver
index iconBuilding a Driver
index iconDevice Tree
index iconDevices Directories
prtpicl commandindex iconDevice Tree

Q

QOTD_BUSY condition
index iconLocking Rules for Quote Of The Day Version 3
index iconManaging Thread Synchronization

R

raw deviceindex iconCharacter and Block Devices
read() entry point
index iconReading the Data
index iconDefining the Read Device Entry Point
index iconWriting the User Context Entry Points
read() system callindex iconDevices as Files
rem_drv command
index iconRemoving the Template Driver
index iconLoading and Unloading a Driver
index iconAdding, Updating, and Removing a Driver
restricted modeindex iconOracle Solaris Operating System Definition

S

serial connections
use in testingindex iconDevice Driver Testing Tips
signal() function
index iconReporting and Setting Device Size and Re-initializing the Device
index iconWriting New Data
index iconWaiting on Signals
snooping kernel variableindex iconDevice Driver Testing Tips
soft stateindex iconManaging Device State
SPARC
address spaceindex iconUser and Kernel Address Spaces on x86 and SPARC Platforms
compilingindex iconBuilding a Driver
special filesindex iconDevices as Files
state structures
index iconManaging Device State
index iconWriting Quote Of The Day Version 2
strlcpy() kernel function
index iconReporting and Setting Device Size and Re-initializing the Device
index iconAttaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
strncpy() kernel functionindex iconAttaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
syslogd command
index iconBuilding, Installing, and Using Quote Of The Day Version 1
index iconTesting the Template Driver
system calls
mknod()index iconDevices Directories
mmap()index iconUser and Kernel Address Spaces on x86 and SPARC Platforms
read()index iconDevices as Files
system crash dumps
use in testingindex iconDevice Driver Testing Tips
system configuration information fileindex iconDriver Directory Organization

T

testing device driversindex iconDevice Driver Testing Tips
thread synchronizationindex iconManaging Thread Synchronization
tuning tips for device driversindex iconDevice Driver Debugging and Tuning Tips

U

/usr/kernel directoryindex iconDriver Directory Organization
uio kernel structure
index iconWriting New Data
index iconReading the Data
uiomove() kernel function
index iconWriting New Data
index iconManaging Thread Synchronization
index iconWriting Quote Of The Day Version 3
index iconReading the Data
update_drv commandindex iconAdding, Updating, and Removing a Driver
user modeindex iconOracle Solaris Operating System Definition

V

volatile keywordindex iconDevice Driver Coding Tips

W

write() entry point
index iconWriting New Data
index iconDefining the Write Device Entry Point
index iconWriting the User Context Entry Points

X

x86
address spaceindex iconUser and Kernel Address Spaces on x86 and SPARC Platforms
compilingindex iconBuilding a Driver