Writing Device Drivers
Previous Next

M

M_ERROR, Thread Interaction
major numbers
description of, Devices as Special Files
example of, Block Device Autoconfiguration
makedevice() function, Block Device Autoconfiguration
mapsize argument, rmallocmap(), changes to, rmallocmap() and rmallocmap_wait() Argument Changes
mdb
detecting kernel memory leaks, Detecting Kernel Memory Leaks
writing commands, Writing Debugger Commands With mdb
mdb debugger, Using the mdb Modular Debugger
navigating device tree with, Obtaining Device Tree Information
retrieving soft state information, Retrieving Driver Soft State Information
running, Getting Started With the Modular Debugger
memory allocation, description of, Dynamic Memory Allocation
memory allocation functions
Memory Allocation and Deallocation Functions
Memory Allocation and Deallocation Functions
deprecated, Memory Allocation and Deallocation Functions
memory leaks, detecting with mdb, Detecting Kernel Memory Leaks
memory management unit, description of, Virtual Memory
memory mapping
device context management of, Context Management Model
device memory management
Entry Points for Memory Mapped Devices
Mapping Device and Kernel Memory
Mapping Device Memory
memory model
SPARC, System Memory Model
store buffers, Store Buffers
message-signaled interrupts, defined, Device Interrupts
minor device node, Creating Minor Device Nodes
modifying permissions of, Updating Driver Information
minor numbers, Devices as Special Files
minphys() function, minphys() Entry Point
bulk requests, Requests
mmap() function, driver notification, Associating User Mappings With Driver Notifications
moddebug kernel variable, Loading and Unloading Test Modules
modinfo command
Test the Layered Driver
Loading and Unloading Test Modules
modldrv structure, description of, modldrv Structure
modlinkage structure, description of, modlinkage Structure
modload command, Loading and Unloading Test Modules
modular debugger, See mdb debugger
module directory, Copying the Driver to a Module Directory
module functions, Module Functions
module_info structure, network drivers, GLD Driver Requirements
modunload command, Loading and Unloading Test Modules
description of, Loading and Unloading Drivers
mount() function, block drivers, open() Entry Point (Block Drivers)
msgb() structure
Requests
Requests
MSI interrupts
defined, Device Interrupts
implementation, MSI Interrupts
MSI-X interrupts
defined, Device Interrupts
implementation, MSI-X Interrupts
multiplexing I/O, Multiplexing I/O on File Descriptors
multiprocessor considerations, Context Management Model
multithreading
and condition variables, Initializing Condition Variables
D_MP flag in cb_ops structure, cb_ops Structure
execution environment, Multithreaded Execution Environment
and locking primitives, Locking Primitives
thread synchronization, Condition Variables in Thread Synchronization
mutex
functions, Setting Up Mutexes
locks, Mutual-Exclusion Locks
manipulating, Kernel Thread Control and Synchronization Functions
related panics, Potential Locking Pitfalls
routines, Mutual-Exclusion Locks
mutex_enter() function, High-Level Interrupts
mutex_exit() function, High-Level Interrupts
mutex_init() function, Registering Drivers to Gain Device Access
mutex_owned() function, example of, Use mutex_owned() to Validate and Document Locking Requirements
mutual-exclusion locks, See mutex

N

name property, description of, Binding a Driver to a Device
naming
unique prefix for driver symbols
What Is a Device Driver Entry Point?
Use a Unique Prefix to Avoid Kernel Symbol Collisions
Nblocks property, definition, Device Sizes
nblocks property, deprecated, Device Sizes
nblocks property, use in block device drivers, Block Device Autoconfiguration
Nblocks property, use in block device drivers, Block Device Autoconfiguration
nbytes argument, uiomove(), changes to, uiomove() Argument Changes
network drivers
testing, Network Drivers
using GLD, Drivers for Network Devices
network statistics
DL_ETHER, Network Statistics
gld_stats, Network Statistics
gldm_get_stats(), Network Statistics
kstat structures, Network Statistics
nexus, See bus nexus device drivers
nexus driver, USB Client Drivers
nexus nodes, Fault Injection
no-involuntary-power-cycles property, Device Power State Transitions
nvlist_alloc structure, description of, Defining Event Attributes

O

object locking, Object Locking
offlining
Hotplug Callbacks
Hot Removal
OHCI (Open Host Controller Interface), USB Client Drivers
open() entry point
block drivers, open() Entry Point (Block Drivers)
character drivers, Device Access (Character Drivers)
network drivers, Style 1 and Style 2 DLPI Providers

P

packaging, Driver Packaging
packet processing
Ethernet V2, Type DL_ETHER: Ethernet V2 and ISO 8802-3 (IEEE 802.3)
ISO 8802-3 (IEEE 802.3), Type DL_ETHER: Ethernet V2 and ISO 8802-3 (IEEE 802.3)
partial store ordering, Partial Store Ordering (PSO)
PCI bus, PCI Local Bus
configuration address space, PCI Configuration Address Space
configuration base address registers, PCI Configuration Base Address Registers
hardware configuration files, PCI Hardware Configuration Files
I/O address space, PCI I/O Address Space
memory address space, PCI Memory Address Space
PCI configuration functions, alternate access mechanisms, Programmed I/O Functions
PCI devices, PCI Local Bus
PCI dual address cycles, DMA Isolation
pci_ereport_post() function
Reporting Errors
Registering an Error Handler
Fault Management Data and Status Structure
pci_ereport_setup() function
Declaring Fault Management Capabilities
Reporting Errors
pci_ereport_teardown() function
Cleaning Up Fault Management Resources
Reporting Errors
physical DMA, Types of Host Platform DMA
physio() function, description of, DMA Transfers (Synchronous)
pipe, alternate setting, Modifying or Getting the Alternate Setting
pipes
closing, Closing Pipes
default control
Registering Drivers to Gain Device Access
The Default Pipe
flushing, Flushing Pipes
mutex initialization, Registering Drivers to Gain Device Access
opening, Opening Pipes
policy, Synchronous and Asynchronous Transfers and Callbacks
USB device communication, Device Communication
USB devices, How USB Devices Appear to the System
use before attach(), Before the Client Driver Is Attached
pixel depth mode, Solaris Consoles and the Kernel Terminal Emulator
pkgadd command, Installing the Test Harness
pm_busy_component() function
Device Power Management
Device Power Management
pm_idle_component() function
Device Power Management
Device Power Management
pm_lower_power() function, Device Power Management
pm_raise_power() function
Device Power Management
Device Power Management
.po message files, Message IDs and Dictionary Files
polled I/O interfaces
Polled I/O Interfaces
Implementing Polled I/O in Console Frame Buffer Drivers
postmortem debugging, Postmortem Debugging
power.conf file, See /etc/power.conf file
power cycle, Device Power State Transitions
power() entry point
Device Power Management
Device Power Management
power management
See also device power management
See also system power management
flow of control, Power Management Flow of Control
USB devices, Power Management
power management functions, Power Management Functions
deprecated, Power Management Functions
Predictive Self-Healing, What Is Predictive Self-Healing?
See also fault management
prefix
unique prefix for driver symbols
What Is a Device Driver Entry Point?
Use a Unique Prefix to Avoid Kernel Symbol Collisions
print() entry point, block drivers, print() Entry Point (Block Drivers)
printing functions, Kernel Logging and Printing Functions
printing messages, Returning Errors
probe() entry point
description of, probe() Entry Point
SCSI target drivers, probe() Entry Point (SCSI Target Drivers)
processor issues
SPARC
SPARC Processor Issues
SPARC Register Windows
SPARC Multiply and Divide Instructions
x86, x86 Processor Issues
programmed I/O, Programmed I/O Transfers
use with DDI access routines, Exclusive Use of DDI Access Handles
programmed I/O functions, Programmed I/O Functions
deprecated, Programmed I/O Functions
PROM commands, Open Boot PROM 3
prop_op() entry point, description of, prop_op() Entry Point
properties
class property, Hardware Configuration File
ddi_prop_op, prop_op() Entry Point
device node name property, Binding a Driver to a Device
LDI, Retrieving Target Device Property Values
nblocks property, Block Device Autoconfiguration
Nblocks property, Block Device Autoconfiguration
nblocks property, Device Sizes
Nblocks property, Device Sizes
no-involuntary-power-cycles, Device Power State Transitions
overview
Device Properties
Device Properties
pm-hardware-state property
Hardware State
attach() Entry Point
attach() Entry Point (SCSI Target Drivers)
prtconf, Looking Up Properties
reg property, Hardware State
removable-media, Power Management Dependencies
reporting device properties, prop_op() Entry Point
SCSI HBA properties, HBA Configuration Properties
SCSI target driver, x86 Target Driver Configuration Properties
size property, Character Device Autoconfiguration
types of, Device Properties
property functions, Property Functions
prtconf command
displaying device names, Compatible Device Names
displaying interfaces, Devices With Multiple Interfaces
displaying kernel device usage information, Print System Configuration Command Interfaces
displaying properties, Looking Up Properties
displaying the bound driver, Compatible Device Names
displaying the device tree, prtconf Command
pseudo device driver, What Is a Device Driver?
putnext() function, Thread Interaction
Previous Next