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

K

kernel, Oracle 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, 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
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