JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Writing Device Drivers     Oracle Solaris 11.1 Information Library
search filter icon
search icon

Document Information

Preface

Part I Designing Device Drivers for the Oracle Solaris Platform

1.  Overview of Oracle Solaris Device Drivers

2.  Oracle Solaris Kernel and Device Tree

3.  Multithreading

4.  Properties

5.  Managing Events and Queueing Tasks

6.  Driver Autoconfiguration

7.  Device Access: Programmed I/O

8.  Interrupt Handlers

9.  Direct Memory Access (DMA)

10.  Mapping Device and Kernel Memory

11.  Device Context Management

12.  Power Management

13.  Hardening Oracle Solaris Drivers

14.  Layered Driver Interface (LDI)

Part II Designing Specific Kinds of Device Drivers

15.  Drivers for Character Devices

16.  Drivers for Block Devices

17.  SCSI Target Drivers

18.  SCSI Host Bus Adapter Drivers

19.  Drivers for Network Devices

20.  USB Drivers

21.  SR-IOV Drivers

Part III Building a Device Driver

22.  Compiling, Loading, Packaging, and Testing Drivers

23.  Debugging, Testing, and Tuning Device Drivers

24.  Recommended Coding Practices

Part IV Appendixes

A.  Hardware Overview

B.  Summary of Oracle Solaris DDI/DKI Services

C.  Making a Device Driver 64-Bit Ready

D.  Console Frame Buffer Drivers

E.  pci.conf File

Index

Numbers and Symbols

A

B

C

D

E

F

G

H

I

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

M

mac_alloc() function, index iconGLDv3 MAC Registration Functions
mac_callbacks MAC entry points structure, index iconGLDv3 MAC Registration Data Structures
mac_capab_lso() structure, index iconLarge Segment (or Send) Offload
mac_fini_ops() function, index iconGLDv3 MAC Registration Functions
mac_hcksum_get() function
index iconHardware Checksum Offload
index iconTransmit Data Path
mac_hcksum_set() function
index iconHardware Checksum Offload
index iconReceive Data Path
mac_init_ops() function, index iconGLDv3 MAC Registration Functions
mac_link_update() function, index iconGLDv3 State Change Notifications
mac_lso_get() function
index iconLarge Segment (or Send) Offload
index iconTransmit Data Path
mac_register() function, index iconGLDv3 MAC Registration Functions
mac_register MAC registration information structure
index iconGLDv3 MAC Registration Functions
index iconGLDv3 MAC Registration Data Structures
mac_rx() function, index iconReceive Data Path
mac_tx_update() function
index iconTransmit Data Path
index iconGLDv3 State Change Notifications
mac_unregister() function, index iconGLDv3 MAC Registration Functions
major numbers
description of, index iconDevices as Special Files
example of, index iconBlock Device Autoconfiguration
makedevice() function, index iconBlock Device Autoconfiguration
mapsize argument, rmallocmap(), changes to, index iconrmallocmap() and rmallocmap_wait() Argument Changes
mc_getcapab() entry point, index iconGLDv3 Capabilities
mc_getprop() entry point, index iconGLDv3 Properties
mc_getstat() entry point, index iconGLDv3 Network Statistics
mc_propinfo() entry point, index iconGLDv3 Properties
mc_setprop() entry point, index iconGLDv3 Properties
mc_tx() entry point, index iconTransmit Data Path
mc_unicst() entry point, index iconReceive Data Path
mdb
detecting kernel memory leaks, index iconDetecting Kernel Memory Leaks
writing commands, index iconWriting Debugger Commands With mdb
mdb debugger, index iconUsing the mdb Modular Debugger
navigating device tree with, index iconObtaining Device Tree Information
retrieving soft state information, index iconRetrieving Driver Soft State Information
running, index iconGetting Started With the Modular Debugger
memory allocation, description of, index iconDynamic Memory Allocation
memory allocation functions
index iconMemory Allocation and Deallocation Functions
index iconMemory Allocation and Deallocation Functions
deprecated, index iconMemory Allocation and Deallocation Functions
memory leaks, detecting with mdb, index iconDetecting Kernel Memory Leaks
memory management unit, description of, index iconVirtual Memory
memory mapping
device context management of, index iconContext Management Model
device memory management
index iconEntry Points for Memory Mapped Devices
index iconMapping Device and Kernel Memory
index iconMapping Device Memory
memory model
SPARC, index iconSystem Memory Model
store buffers, index iconStore Buffers
message-signaled interrupts, defined, index iconDevice Interrupts
minor device node, index iconCreating Minor Device Nodes
modifying permissions of, index iconUpdating Driver Information
minor numbers, index iconDevices as Special Files
minphys() function, index iconminphys() Entry Point
bulk requests, index iconRequests
mmap() function, driver notification, index iconAssociating User Mappings With Driver Notifications
mod_install() function, network drivers, index iconGLDv3 MAC Registration Functions
mod_remove() function, network drivers, index iconGLDv3 MAC Registration Functions
moddebug kernel variable, index iconLoading and Unloading Test Modules
modinfo command
index iconTest the Layered Driver
index iconLoading and Unloading Test Modules
modldrv structure, description of, index iconmodldrv Structure
modlinkage structure, description of, index iconmodlinkage Structure
modload command, index iconLoading and Unloading Test Modules
modular debugger, See mdb debugger
module directory, index iconCopying the Driver to a Module Directory
module functions, index iconModule Functions
module_info structure, network drivers, index iconGLDv2 Driver Requirements
modunload command, index iconLoading and Unloading Test Modules
description of, index iconLoading and Unloading Drivers
mount() function, block drivers, index iconopen() Entry Point (Block Drivers)
msgb() structure
index iconRequests
index iconRequests
MSI interrupts
defined, index iconDevice Interrupts
implementation, index iconMSI Interrupts
MSI-X interrupts
defined, index iconDevice Interrupts
implementation, index iconMSI-X Interrupts
multiplexing I/O, index iconMultiplexing I/O on File Descriptors
multiprocessor considerations, index iconContext Management Model
multithreading
and condition variables, index iconInitializing Condition Variables
D_MP flag in cb_ops structure, index iconcb_ops Structure
execution environment, index iconMultithreaded Execution Environment
and locking primitives, index iconLocking Primitives
thread synchronization, index iconCondition Variables in Thread Synchronization
mutex
functions, index iconSetting Up Mutexes
locks, index iconMutual-Exclusion Locks
manipulating, index iconKernel Thread Control and Synchronization Functions
related panics, index iconPotential Locking Pitfalls
routines, index iconMutual-Exclusion Locks
mutex_enter() function, index iconHigh-Level Interrupts
mutex_exit() function, index iconHigh-Level Interrupts
mutex_init() function, index iconRegistering Drivers to Gain Device Access
mutex_owned() function, example of, index iconUse mutex_owned() to Validate and Document Locking Requirements
mutual-exclusion locks, See mutex