Writing Device Drivers
Previous Next

G

GCC, Compiling and Linking the Driver
gcc command, Compiling and Linking the Driver
generic device name, Generic Device Names
getinfo() entry point, getinfo() Entry Point
getmajor() function, Block Device Autoconfiguration
getrbuf() function, changes to, getrbuf() Argument Changes
getting major numbers, example of, Block Device Autoconfiguration
GLD
device types supported by, Generic LAN Driver Overview
drivers, Drivers for Network Devices
GLD data structures
gld_mac_info, gld_mac_info Structure
gld_stats, gld_stats Structure
GLD entry points
gldm_get_stats(), gldm_get_stats() Entry Point
gldm_intr(), gldm_intr() Entry Point
gldm_ioctl(), gldm_ioctl() Entry Point
gldm_reset(), gldm_reset() Entry Point
gldm_send(), gldm_send() Entry Point
gldm_set_mac_addr(), gldm_set_mac_addr() Entry Point
gldm_set_multicast(), gldm_set_multicast() Entry Point
gldm_set_promiscuous(), gldm_set_promiscuous() Entry Point
gldm_start(), gldm_start() Entry Point
gldm_stop(), gldm_stop() Entry Point
gld_intr() function, gld_intr() Function
GLD ioctl functions, Implemented ioctl Functions
gld_mac_alloc() function, gld_mac_alloc() Function
gld_mac_free() function, gld_mac_free() Function
gld_mac_info structure
description of, gld_mac_info Structure
GLD arguments, GLD Arguments
network drivers
Generic LAN Driver Overview
GLD Driver Requirements
used in gld_intr() function, gld_intr() Function
GLD network statistics, Network Statistics
gld_recv() function, gld_recv() Function
gld_register() function, gld_register() Function
gld_sched() function, gld_sched() Function
GLD service routines
gld_intr() function, gld_intr() Function
gld_mac_alloc() function, gld_mac_alloc() Function
gld_mac_free() function, gld_mac_free() Function
gld_recv() function, gld_recv() Function
gld_register() function, gld_register() Function
gld_sched() function, gld_sched() Function
gld_unregister() function, gld_unregister() Function
gld_stats structure, network driver, Network Statistics
GLD symbols
GLD_BADARG, GLD Return Values
GLD_FAILURE, GLD Return Values
GLD_MAC_PROMISC_MULTI, GLD Arguments
GLD_MAC_PROMISC_NONE, GLD Arguments
GLD_MAC_PROMISC_PHYS, GLD Arguments
GLD_MULTI_DISABLE, gldm_set_multicast() Entry Point
GLD_MULTI_ENABLE, gldm_set_multicast() Entry Point
GLD_NOLINK, gldm_send() Entry Point
GLD_NORESOURCES, gld_sched() Function
GLD_NOTSUPPORTED, gldm_set_mac_addr() Entry Point
GLD_SUCCESS, GLD Return Values
gld_unregister() function, gld_unregister() Function
gld(9E) entry point, network driver, Generic LAN Driver Overview
gld(9F) function, Generic LAN Driver Overview
network driver, GLD Driver Requirements
gldm_get_stats(), description of, Network Statistics
gldm_private structure, gld_mac_info Structure
graphics devices, device context management of, Context Management Model

H

handle, DMA
DMA Model
Allocating a DMA Handle
Freeing the DMA Handle
hardening drivers, Hardening Solaris Drivers
hardware configuration files
Configuration Files
Writing a Hardware Configuration File
PCI devices, PCI Hardware Configuration Files
SBus devices, SBus Hardware Configuration Files
SCSI target devices, Hardware Configuration File
where to place, Copying the Driver to a Module Directory
hardware context, What Is a Device Context?
hardware faults
testing
Driver Hardening Test Harness
Testing the Driver
hardware state in power management, Hardware State
HBA driver, See SCSI HBA driver
header files for device drivers, Header Files
high-level mutexes, interrupts, High-Level Mutexes
host bus adapter transport layer, SCSI Interface
hot-plug, See hotplugging
hotpluggable drivers, See hotplugging
hotplugging, Hotplugging
and SCSI HBA driver
Hotplugging
Dynamic Reconfiguration
USB device, Hotplugging USB Devices
hub driver, USB Client Drivers
hubd USB hub driver, Hot Insertion

I

I/O
asynchronous data transfers
Differences Between Synchronous and Asynchronous I/O
Asynchronous Data Transfers (Block Drivers)
byte stream, Entry Points for Character Device Drivers
disk controls, Disk ioctls
DMA transfers, DMA Transfers (Synchronous)
file system structure, File I/O
miscellaneous control of, Miscellaneous I/O Control
multiplexing, Multiplexing I/O on File Descriptors
polled I/O interfaces
Polled I/O Interfaces
Implementing Polled I/O in Console Frame Buffer Drivers
programmed transfers, Programmed I/O Transfers
scatter/gather structures, Vectored I/O
synchronous data transfers
Differences Between Synchronous and Asynchronous I/O
Synchronous Data Transfers (Block Drivers)
visual I/O interfaces, Console Visual I/O Interfaces
IEEE 802.3, See DL_ETHER
IEEE 802.5, See DL_TPR
ILP32
use in devmap(), Data Sharing in devmap()
use in ioctl(), Data Sharing in ioctl()
use in mmap(), Data Sharing in mmap()
ILP64, use in mmap(), Data Sharing in mmap()
_info() entry point
example of, _info() Example
required implementation, Loadable Module Entry Points
_init() entry point
example of, _init() Example
required implementation, Loadable Module Entry Points
instance numbers, Device Instances and Instance Numbers
interface association nodes, Devices With Interface-Association Descriptors
internal mode registers, Internal Sequencing Logic
internal sequencing logic, Internal Sequencing Logic
interrupt functions, Interrupt Functions
interrupt handlers
functionality, Interrupt Handler Functionality
registering, Registering Interrupts
interrupt handling, Interrupt Handlers
clearing masks, Interrupt Function Examples
ddi_intr_add_handler() function
MSI-X Interrupts
Interrupt Initialization and Destruction Functions
Registering Interrupts
ddi_intr_add_softint() function, Soft Interrupt Functions
ddi_intr_alloc() function
MSI-X Interrupts
Interrupt Initialization and Destruction Functions
ddi_intr_block_disable() function, Interrupt Initialization and Destruction Functions
ddi_intr_block_enable() function, Interrupt Initialization and Destruction Functions
ddi_intr_clr_mask() function
Interrupt Initialization and Destruction Functions
Interrupt Function Examples
ddi_intr_disable() function
MSI-X Interrupts
Interrupt Initialization and Destruction Functions
ddi_intr_dup_handler() function
MSI-X Interrupts
Interrupt Initialization and Destruction Functions
ddi_intr_enable() function
MSI-X Interrupts
Interrupt Initialization and Destruction Functions
ddi_intr_free() function
MSI-X Interrupts
Interrupt Initialization and Destruction Functions
ddi_intr_get_cap() function, Interrupt Capability Functions
ddi_intr_get_hilevel_pri() function
Priority Management Functions
Handling High-Level Interrupts
ddi_intr_get_navail() function, Interrupt Capability Functions
ddi_intr_get_nintrs() function, Interrupt Capability Functions
ddi_intr_get_pending() function
Interrupt Initialization and Destruction Functions
Interrupt Function Examples
ddi_intr_get_pri() function
Priority Management Functions
Handling High-Level Interrupts
ddi_intr_get_softint_pri() function, Soft Interrupt Functions
ddi_intr_get_supported_types() function, Interrupt Capability Functions
ddi_intr_hilevel() function, High-Level Interrupts
ddi_intr_remove_handler() function
MSI-X Interrupts
Interrupt Initialization and Destruction Functions
ddi_intr_remove_softint() function, Soft Interrupt Functions
ddi_intr_set_cap() function, Interrupt Initialization and Destruction Functions
ddi_intr_set_mask() function
Interrupt Initialization and Destruction Functions
Interrupt Function Examples
ddi_intr_set_pri() function, Priority Management Functions
ddi_intr_set_softint_pri() function
Soft Interrupt Functions
Interrupt Function Examples
ddi_intr_trigger_softint() function
High-Level Interrupts
Soft Interrupt Functions
gld_intr() function, gld_intr() Function
high-level interrupts
High-Level Interrupts
Software Interrupts
Handling High-Level Interrupts
overview, Interrupt Handling
pending interrupts, Interrupt Function Examples
setting masks, Interrupt Function Examples
software interrupts
Software Interrupts
Interrupt Function Examples
Handling High-Level Interrupts
interrupt property, definition, Interrupt Handling
interrupts
capability functions, Interrupt Capability Functions
changing soft interrupt priority example, Interrupt Function Examples
checking pending interrupts example, Interrupt Function Examples
clearing interrupt masks example, Interrupt Function Examples
common problems with, Interrupt Issues
description of, Interrupt Handler Overview
handling high-level interrupts examples, High-Level Interrupt Handling Example
handling low-level interrupts example, High-Level Interrupt Handling Example
high-level mutexes, High-Level Mutexes
initialization and destruction functions, Interrupt Initialization and Destruction Functions
interrupt handling example, Interrupt Handler Functionality
invalid, Handling Stuck Interrupts
legacy defined, Device Interrupts
message-signaled defined, Device Interrupts
MSI defined, Device Interrupts
MSI implementation, MSI Interrupts
MSI-X defined, Device Interrupts
MSI-X implementation, MSI-X Interrupts
network drivers, GLD Driver Requirements
priority levels, High-Level Interrupts
priority management functions, Priority Management Functions
registering legacy interrupt example, Registering Legacy Interrupts
registering legacy interrupts, Registering Legacy Interrupts
registering MSI interrupts, Registering MSI Interrupts
registering MSI interrupts example, Registering MSI Interrupts
removing legacy interrupt example, Registering Legacy Interrupts
removing MSI interrupts example, Registering MSI Interrupts
setting interrupt masks example, Interrupt Function Examples
soft interrupt functions, Soft Interrupt Functions
software interrupts, Handling High-Level Interrupts
types of, Device Interrupts
using legacy, Legacy Interrupts
writing handlers, Interrupt Handlers
ioctl(9E) driver entry point, SPARC Platform Console Communication
ioctl() function
character drivers, ioctl() Entry Point (Character Drivers)
commands, Well Known ioctl Interfaces
DLIOCRAW, Implemented ioctl Functions
IOMMU, DMA Isolation
iovec structure, Vectored I/O
ISO 8802-3, See DL_ETHER
ISO 9314-2, See DL_TPR
ISR (interrupt service routine), Interrupt Handler Functionality
Previous Next