Device Driver Tutorial
Previous Next

E

echo command, Reading and Writing the Device
entry points
attach()
Installing a Driver
Writing the Autoconfiguration Entry Points
Defining the Device Attach Entry Point
Attaching and Detaching
Device Driver Testing Tips
autoconfiguration, Writing the Autoconfiguration Entry Points
close()
Writing the User Context Entry Points
Defining the Close Device Entry Point
Opening the Device, Closing the Device, and Getting Module Information
detach()
Defining the Module Unload Entry Point
Writing the Autoconfiguration Entry Points
Defining the Device Detach Entry Point
Attaching and Detaching
devmap(), User and Kernel Address Spaces on x86 and SPARC Machines
_fini()
Writing the Loadable Module Configuration Entry Points
Defining the Module Unload Entry Point
Initializing and Unloading
getinfo()
Writing the Autoconfiguration Entry Points
Defining the Get Driver Information Entry Point
Opening the Device, Closing the Device, and Getting Module Information
_info()
Installing a Driver
Writing the Loadable Module Configuration Entry Points
Defining the Module Information Entry Point
Device Driver Testing Tips
_init()
Installing a Driver
Writing the Loadable Module Configuration Entry Points
Defining the Module Initialization Entry Point
Initializing and Unloading
Device Driver Testing Tips
ioctl()
Devices as Files
Writing New Data
Reporting and Setting Device Size and Re-initializing the Device
Exercising the Driver's I/O Controls
loadable module configuration, Writing the Loadable Module Configuration Entry Points
open()
Writing the User Context Entry Points
Defining the Open Device Entry Point
Opening the Device, Closing the Device, and Getting Module Information
prop_op()
Writing the Autoconfiguration Entry Points
Defining the Report Driver Property Information Entry Point
read()
Writing the User Context Entry Points
Defining the Read Device Entry Point
Reading the Data
user context, Writing the User Context Entry Points
write()
Writing the User Context Entry Points
Defining the Write Device Entry Point
Writing New Data
/etc/driver_aliases file, Adding, Updating, and Removing a Driver
/etc/name_to_major file
Adding, Updating, and Removing a Driver
Adding the Template Driver
Building, Installing, and Using Quote Of The Day Version 2

F

G

H

I

K

kernel, Solaris Operating System Definition
address space
Execution Differences Between Kernel Modules and User Programs
User and Kernel Address Spaces on x86 and SPARC Machines
privilege
See also kernel mode
kernel command, Driver Directory Organization
kernel functions
ASSERT()
Writing Quote Of The Day Version 2
Checking Data Validity
Building, Installing, and Using Quote Of The Day Version 2
Device Driver Coding Tips
bzero(), Reporting and Setting Device Size and Re-initializing the Device
cmn_err()
Defining the Module Initialization Entry Point
Testing the Template Driver
Displaying Data Stored in Kernel Memory
Device Driver Coding Tips
condvar(), Managing Thread Synchronization
cv_broadcast()
Managing Thread Synchronization
Writing New Data
cv_destroy()
Checking for Changes, Cleaning Up, and Detaching
Managing Thread Synchronization
cv_init()
Attaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
Managing Thread Synchronization
cv_signal(), Managing Thread Synchronization
cv_wait(), Managing Thread Synchronization
cv_wait_sig()
Managing Thread Synchronization
Managing Thread Synchronization
ddi_copyin()
User and Kernel Address Spaces on x86 and SPARC Machines
Writing Quote Of The Day Version 3
Managing Thread Synchronization
Reporting and Setting Device Size and Re-initializing the Device
ddi_copyout()
User and Kernel Address Spaces on x86 and SPARC Machines
Writing Quote Of The Day Version 3
Reporting and Setting Device Size and Re-initializing the Device
ddi_create_minor_node()
Writing the Autoconfiguration Entry Points
Defining the Device Attach Entry Point
Attaching and Detaching
Attaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
ddi_get_instance()
Device Numbers
Defining the Device Attach Entry Point
Attaching and Detaching
ddi_get_soft_state()
Managing Device State
Attaching and Detaching
Opening the Device, Closing the Device, and Getting Module Information
Reading the Data
ddi_model_convert_from()
Writing a Driver Module
Writing Quote Of The Day Version 3
Reporting and Setting Device Size and Re-initializing the Device
ddi_prop_get_int(), Writing a Configuration File
ddi_prop_lookup(), Writing a Configuration File
ddi_prop_op()
Writing the Autoconfiguration Entry Points
Defining the Report Driver Property Information Entry Point
ddi_remove_minor_node()
Writing the Autoconfiguration Entry Points
Defining the Device Detach Entry Point
Attaching and Detaching
Checking for Changes, Cleaning Up, and Detaching
ddi_report_dev(), Attaching and Detaching
ddi_soft_state(), Defining the Device Attach Entry Point
ddi_soft_state_fini()
Managing Device State
Initializing and Unloading
ddi_soft_state_free()
Managing Device State
Attaching and Detaching
ddi_soft_state_init()
Managing Device State
Initializing and Unloading
ddi_soft_state_zalloc()
Managing Device State
Attaching and Detaching
ddi_umem_alloc(), Allocating and Freeing Kernel Memory
ddi_umem_free()
Checking for Changes, Cleaning Up, and Detaching
Allocating and Freeing Kernel Memory
getminor()
Opening the Device, Closing the Device, and Getting Module Information
Reading the Data
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()
Writing the Loadable Module Configuration Entry Points
Defining the Module Information Entry Point
mod_install()
Writing the Loadable Module Configuration Entry Points
Defining the Module Initialization Entry Point
Initializing and Unloading
mod_remove()
Writing the Loadable Module Configuration Entry Points
Defining the Module Unload Entry Point
Initializing and Unloading
mutex(), Managing Thread Synchronization
mutex_destroy()
Checking for Changes, Cleaning Up, and Detaching
Managing Thread Synchronization
mutex_init()
Attaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
Managing Thread Synchronization
mutex_owned(), Device Driver Coding Tips
nochpoll(), Defining the Character and Block Operations Structure
nodev()
Defining the Character and Block Operations Structure
Defining the Device Operations Structure
nulldev()
Writing the User Context Entry Points
Defining the Device Operations Structure
strlcpy()
Attaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
Reporting and Setting Device Size and Re-initializing the Device
strncpy(), Attaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
uiomove()
Reading the Data
Writing Quote Of The Day Version 3
Managing Thread Synchronization
Writing New Data
kernel mode, Solaris Operating System Definition
kernel modules, use in testing, Device Driver Testing Tips
kernel statistics, Device Driver Debugging and Tuning Tips
kernel structures
uio
Reading the Data
Writing New Data
kmdb kernel debugger
Device Driver Testing Tips
Device Driver Debugging and Tuning 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
Previous Next