Device Driver Tutorial
Previous Next

Index

A

B

C

cat command, Reading and Writing the Device
cb_ops driver structure
Device Drivers
Writing the Driver Data Structures
Defining the Character and Block Operations Structure
Writing New Data
cc command, Compiling with Sun Studio
character device, Character and Block Devices
close() entry point
Writing the User Context Entry Points
Defining the Close Device Entry Point
Opening the Device, Closing the Device, and Getting Module Information
cmn_err() kernel function
Defining the Module Initialization Entry Point
Testing the Template Driver
Displaying Data Stored in Kernel Memory
Device Driver Coding Tips
commands
add_drv
Adding, Updating, and Removing a Driver
Adding the Template Driver
Device Driver Coding Tips
boot, Driver Directory Organization
cat, Reading and Writing the Device
cc, Compiling with Sun 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
Structural Differences Between Kernel Modules and User Programs
Compiling with Sun Studio
Defining the Module Unload Entry Point
mknod, Devices Directories
modinfo
Adding, Updating, and Removing a Driver
Adding the Template Driver
Building, Installing, and Using Quote Of The Day Version 2
modload, Adding the Template Driver
modunload, Removing the Template Driver
more, Building, Installing, and Using Quote Of The Day Version 2
prtconf
Devices Directories
Device Tree
Building a Driver
Adding, Updating, and Removing a Driver
Adding the Template Driver
Building, Installing, and Using Quote Of The Day Version 2
prtpicl, Device Tree
rem_drv
Adding, Updating, and Removing a Driver
Loading and Unloading a Driver
Removing the Template Driver
syslogd
Testing the Template Driver
Building, Installing, and Using Quote Of The Day Version 1
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, Managing Thread Synchronization
configuration files
Writing a Configuration File
Writing the Device Configuration File
crash dumps, use in testing, Device Driver Testing Tips
cv_broadcast() kernel function
Managing Thread Synchronization
Writing New Data
cv_destroy() kernel function
Checking for Changes, Cleaning Up, and Detaching
Managing Thread Synchronization
cv_init() kernel function
Attaching, Allocating Memory, and Initializing a Mutex and a Condition Variable
Managing Thread Synchronization
cv_signal() kernel function, Managing Thread Synchronization
cv_wait() kernel function, Managing Thread Synchronization
cv_wait_sig() kernel function
Managing Thread Synchronization
Managing Thread Synchronization

D

data loss, avoiding while testing, Device Driver Testing Tips
data model
converting
Writing a Driver Module
Writing Quote Of The Day Version 3
ddi_copyin() kernel function
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() kernel function
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() kernel function
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() kernel function
Device Numbers
Defining the Device Attach Entry Point
Attaching and Detaching
ddi_get_soft_state() kernel function
Managing Device State
Attaching and Detaching
Opening the Device, Closing the Device, and Getting Module Information
Reading the Data
ddi_model_convert_from() kernel function
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() kernel function, Writing a Configuration File
ddi_prop_lookup() kernel function, Writing a Configuration File
ddi_prop_op() kernel function
Writing the Autoconfiguration Entry Points
Defining the Report Driver Property Information Entry Point
ddi_remove_minor_node() kernel function
Writing the Autoconfiguration Entry Points
Defining the Device Detach Entry Point
Attaching and Detaching
Checking for Changes, Cleaning Up, and Detaching
ddi_report_dev() kernel function, Attaching and Detaching
ddi_soft_state_fini() kernel function
Managing Device State
Initializing and Unloading
ddi_soft_state_free() kernel function
Managing Device State
Attaching and Detaching
ddi_soft_state_init() kernel function
Managing Device State
Initializing and Unloading
ddi_soft_state() kernel function, Defining the Device Attach Entry Point
ddi_soft_state_zalloc() kernel function
Managing Device State
Attaching and Detaching
ddi_umem_alloc() kernel function, Allocating and Freeing Kernel Memory
ddi_umem_free() kernel function
Checking for Changes, Cleaning Up, and Detaching
Allocating and Freeing Kernel Memory
deadman kernel feature, Device Driver Testing Tips
debugging device drivers, tips, Device Driver Debugging and Tuning Tips
detach() entry point
Defining the Module Unload Entry Point
Writing the Autoconfiguration Entry Points
Defining the Device Detach Entry Point
Attaching and Detaching
/dev directory
Devices Directories
Device Names
dev_info device structure
Defining the Device Attach Entry Point
Defining the Device Detach Entry Point
Defining the Get Driver Information Entry Point
dev_ops driver structure
Device Drivers
Writing the Driver Data Structures
Defining the Device Operations Structure
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
Device Drivers
Overview of the Template Driver Example
See also entry points
how used, Device Drivers
I/O controls
Reporting and Setting Device Size and Re-initializing the Device
Exercising the Driver's I/O Controls
installing
Installing a Driver
Device Driver Testing Tips
linking, Building a Driver
loading
Driver Directory Organization
Loading and Unloading a Driver
Adding the Template Driver
mutexes, Managing Thread Synchronization
naming conventions, Device Driver Coding Tips
recommended housekeeping, Device Driver Coding Tips
removing
Adding, Updating, and Removing a Driver
Removing the Template 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
Loading and Unloading a Driver
Removing the Template Driver
updating, Adding, Updating, and Removing a Driver
device instance pointer (dip)
Defining the Device Attach Entry Point
Defining the Device Detach Entry Point
Defining the Get Driver Information Entry Point
device number, Device Numbers
device structures
dev_info
Defining the Device Attach Entry Point
Defining the Device Detach Entry Point
Defining the Get Driver Information Entry Point
device tree, Device Tree
devices
blk, Character and Block Devices
block
Devices as Files
Character and Block Devices
character
Devices as Files
Character and Block Devices
Writing the Template Driver
configuration files
Writing a Configuration File
Writing the Device Configuration File
device tree, Device Tree
directories
Devices Directories
Device Names
exclusive access, Managing Thread Synchronization
file system
devfs, Devices Directories
devfsadmd, Device Names
instances
Device Numbers
Defining the Device Attach Entry Point
Defining the Device Detach Entry Point
Defining the Get Driver Information Entry Point
md metadevice, Character and Block Devices
names, Device Names
nexus
Device Drivers
Device Tree
numbers
Devices Directories
Device Numbers
Defining the Device Attach Entry Point
prefixes
Writing a Driver Module
Declaring the Autoconfiguration Entry Points
properties
Writing a Configuration File
Defining the Report Driver Property Information Entry Point
pseudo
Device Drivers
Template Driver Example
ramdisk
Device Drivers
Modifying Data Stored in Kernel Memory
raw, Character and Block Devices
reading
Reading and Writing the Device
Building, Installing, and Using Quote Of The Day Version 2
Reading the Device
special files, Devices as Files
state, Managing Device State
writing
Reading and Writing the Device
Modifying Data Stored in Kernel Memory
Writing New Data
Writing the Device
/devices directory
Devices Directories
Devices Directories
Device Names
Adding, Updating, and Removing a Driver
/devices/pseudo directory
Character and Block Devices
Adding the Template Driver
Building, Installing, and Using Quote Of The Day Version 2
devmap() entry point, User and Kernel Address Spaces on x86 and SPARC Machines
dmesg command, Attaching and Detaching
driver.conf file, Writing a Configuration File
driver structures
cb_ops
Device Drivers
Writing the Driver Data Structures
Defining the Character and Block Operations Structure
Writing New Data
character and block operations structure, Defining the Character and Block Operations Structure
dev_ops
Device Drivers
Writing the Driver Data Structures
Defining the Device Operations Structure
device operations structure, Defining the Device Operations Structure
modinfo, Defining the Module Information Entry Point
modldrv
Writing the Driver Data Structures
Defining the Module Linkage Structures
modlinkage
Defining the Module Initialization Entry Point
Writing the Driver Data Structures
Defining the Module Linkage Structures
module linkage structures, Defining the Module Linkage Structures
drivers, See device drivers
DTrace analyzer, Device Driver Debugging and Tuning Tips
Previous Next