JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Device Driver Tutorial     Oracle Solaris 11 Express 11/10
search filter icon
search icon

Document Information

Preface

1.  Introduction to Device Drivers

2.  Template Driver Example

3.  Reading and Writing Data in Kernel Memory

4.  Tips for Developing Device Drivers

Index

A

B

C

D

E

F

G

H

I

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

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