Document Information
Preface
Part I Designing Device Drivers for the Solaris Platform
1. Overview of Solaris Device Drivers
2. 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 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
Part III Building a Device Driver
21. Compiling, Loading, Packaging, and Testing Drivers
22. Debugging, Testing, and Tuning Device Drivers
23. Recommended Coding Practices
Part IV Appendixes
A. Hardware Overview
B. Summary of Solaris DDI/DKI Services
C. Making a Device Driver 64-Bit Ready
D. Console Frame Buffer Drivers
Index
|
Q
R
- read() entry point, synchronous data transfers, Differences Between Synchronous and Asynchronous I/O
- readers/writer locks, Readers/Writer Locks
- manipulating, Kernel Thread Control and Synchronization Functions
- real_length argument, ddi_dma_mem_alloc(), changes to, ddi_dma_mem_alloc() Argument Changes
- recovering the device directory, Recovering the Device Directory
- reg property, Device Properties
- register structure, DMA, Device Register Structure
- removable-media, Power Management Dependencies
- resource map functions, Resource Map Management Functions
- retire agent, definition, Response Agents
- rmallocmap() function, changes to, rmallocmap() and rmallocmap_wait() Argument Changes
- rmallocmap_wait() function, changes to, rmallocmap() and rmallocmap_wait() Argument Changes
S
- S_IFCHR, Creating Minor Device Nodes
- SAP, definition of, Type DL_ETHER: Ethernet V2 and ISO 8802-3 (IEEE 802.3)
- saving crash dumps, Capture System Crash Dumps
- SBus
- address bits, Physical SBus Addresses
- geographical addressing, SBus
- hardware configuration files, SBus Hardware Configuration Files
- physical address space, SBus Physical Address Space
- slots supporting DVMA, Physical SBus Addresses
- scatter-gather
- DMA engines, DMA Software Components: Handles, Windows, and Cookies
- I/O, Vectored I/O
- scheduling tasks, Queueing Tasks
- SCSA
- Introduction to Target Drivers
- SCSI Interface
- global data definitions, SCSI Options
- HBA transport layer, SCSI Interface
- interfaces, SCSA HBA Entry Point Summary
- SCSI
- architecture, Sun Common SCSI Architecture Overview
- bus, Introduction to Target Drivers
- scsi_ functions
- scsi_alloc_consistent_buf()function, scsi_alloc_consistent_buf() Function
- scsi_destroy_pkt() function, scsi_destroy_pkt() Function
- scsi_dmafree() function, Reuse of Packets
- scsi_free_consistent_buf() function, scsi_free_consistent_buf() Function
- scsi_ifgetcap() function, Setting Target Capabilities
- scsi_ifsetcap() function, Setting Target Capabilities
- scsi_init_pkt() function, scsi_init_pkt() Function
- scsi_probe() function, tran_tgt_probe() Entry Point
- scsi_setup_cdb() function, Building a Command
- scsi_sync_pkt() function
- scsi_sync_pkt() Function
- Reuse of Packets
- scsi_transport() function, Transporting a Command
- scsi_unprobe() function, tran_tgt_probe() Entry Point
- summary, SCSA Functions
- scsi_ structures
- scsi_address structure, scsi_address Structure
- scsi_device structure, scsi_device Structure
- scsi_hba_tran structure, scsi_hba_tran() Structure
- scsi_pkt structure, scsi_pkt Structure (HBA)
- scsi_alloc_consistent_buf() function, changes to, scsi_alloc_consistent_buf() Argument Changes
- scsi_device structure, scsi_device Structure
- SCSI functions, SCSI Functions
- deprecated, SCSI Functions
- scsi_hba_ functions
- scsi_hba_attach_setup() function, HBA Configuration Properties
- scsi_hba_lookup_capstr() function, tran_getcap() Entry Point
- scsi_hba_pkt_alloc() function, Allocation and Initialization of a scsi_pkt(9S) Structure
- scsi_hba_ functions, scsi_hba_pkt_free() function, tran_destroy_pkt() Entry Point
- scsi_hba_ functions
- scsi_hba_probe() function, tran_tgt_probe() Entry Point
- summary list, SCSA HBA Functions
- SCSI HBA driver
- abort and reset management, tran_abort() Entry Point
- autoconfiguration, Autoconfiguration Entry Points
- capability management, tran_getcap() Entry Point
- cloning, Transport Structure Cloning
- command state structure, Per-Command Structure
- command timeout, Timeout Handler
- command transport, Command Transport
- configuration properties, HBA Configuration Properties
- data structures, SCSA HBA Data Structures
- DMA resources, Allocation of DMA Resources
- driver instance initialization, tran_tgt_init() Entry Point
- entry points summary, SCSA HBA Entry Point Summary
- header files, Declarations and Structures
- and hotplugging
- Hotplugging
- Dynamic Reconfiguration
- initializing a transport structure, attach() Entry Point (SCSI HBA Drivers)
- installation, SCSI HBA Driver Specific Issues
- interrupt handling, Interrupt Handler and Command Completion
- overview
- SCSI Interface
- SCSI Interface
- properties, x86 Target Driver Configuration Properties
- resource allocation, tran_init_pkt() Entry Point
- SCSI HBA driver entry points
- by category, Entry Points for SCSA HBA Drivers
- tran_abort() function, tran_abort() Entry Point
- tran_dmafree() function, tran_dmafree() Entry Point
- tran_getcap() function, tran_getcap() Entry Point
- tran_init_pkt() function, tran_init_pkt() Entry Point
- tran_reset() function, tran_reset() Entry Point
- tran_reset_notify() function, tran_reset_notify() Entry Point
- tran_setcap() function, tran_setcap() Entry Point
- tran_start() function, tran_start() Entry Point
- tran_sync_pkt() function, tran_sync_pkt() Entry Point
- tran_tgt_free() function, tran_tgt_free() Entry Point
- tran_tgt_init() function, tran_tgt_init() Entry Point
- tran_tgt_probe() function, tran_tgt_probe() Entry Point
- scsi_hba_tran structures, scsi_pkt structure, Per-Target Instance Data
- scsi_pkt structure, scsi_pkt Structure (Target Drivers)
- changes to, scsi_pkt Structure Changes
- SCSI target driver
- auto-request sense mode, Auto-Request Sense Mode
- autoconfiguration of, Autoconfiguration for SCSI Target Drivers
- building a command, Building a Command
- callback routine, Command Completion
- data structures, Declarations and Data Structures
- initializing a command descriptor block, Building a Command
- overview, Introduction to Target Drivers
- properties
- Hardware Configuration File
- attach() Entry Point (SCSI Target Drivers)
- x86 Target Driver Configuration Properties
- resource allocation, Resource Allocation
- reusing packets, Reuse of Packets
- SCSI routines, SCSA Functions
- transporting a command, Transporting a Command
- segmap() entry point
- description of
- The segmap(9E) Entry Point
- Mapping Device Memory
- driver notification, Associating User Mappings With Driver Notifications
- self-identifying devices, Device Identification
- serial connection, Testing With a Serial Connection
- serviceability
- add new device, Serviceability
- detect faulty device, Serviceability
- perform periodic health checks, Serviceability
- remove faulty device, Serviceability
- report faults, Serviceability
- single device node, USB Devices and the Solaris Device Tree
- size property, Character Device Autoconfiguration
- slice number for block devices, Block Device Autoconfiguration
- SNAP
- definition of, Types DL_TPR and DL_FDDI: SNAP Processing
- DL_FDDI, Types DL_TPR and DL_FDDI: SNAP Processing
- DL_TPR, Types DL_TPR and DL_FDDI: SNAP Processing
- snoop command, network drivers, Implemented ioctl Functions
- snooping kernel variable, Enable the Deadman Feature to Avoid a Hard Hang
- soft interrupts, Software Interrupts
- soft state information
- LDI, Driver Source File
- retrieving in mdb, Retrieving Driver Soft State Information
- USB, Registering Drivers to Gain Device Access
- software interrupts, changing priority, Interrupt Function Examples
- software state functions, Device Software State Functions
- Solaris kernel, See kernel
- source compatibility, description of, DDI/DKI Interfaces
- source files for device drivers, Source Files
- SPARC processor
- byte ordering, SPARC Byte Ordering
- data alignment, SPARC Data Alignment
- floating point operations, SPARC Processor Issues
- multiply and divide instructions, SPARC Multiply and Divide Instructions
- register windows, SPARC Register Windows
- structure member alignment, Member Alignment in SPARC Structures
- special files, description of, Devices as Special Files
- src_advcnt argument, ddi_device_copy(), changes to, ddi_device_copy() Argument Changes
- standalone mode
- Console Visual I/O Interfaces
- Implementing Polled I/O in Console Frame Buffer Drivers
- state structure
- Software State Management
- Driver Soft-State Management
- Driver Source File
- storage classes, driver data, Storage Classes of Driver Data
- store buffers, Store Buffers
- strategy() entry point
- block drivers, strategy() Entry Point
- character drivers, strategy() Entry Point
- streaming access, Allocating Private DMA Buffers
- STREAMS
- cb_ops structure, cb_ops Structure
- drivers, Entry Points for STREAMS Device Drivers
- stale pointers, Thread Interaction
- support for network driver, Generic LAN Driver Overview
- Style 1 DLPI provider, Style 1 and Style 2 DLPI Providers
- Style 2 DLPI provider, Style 1 and Style 2 DLPI Providers
- Sun Studio, Compiling and Linking the Driver
- suspect list, definition, Diagnosis, Suspect Lists, and Fault Events
- synchronous data transfers
- block drivers, Synchronous Data Transfers (Block Drivers)
- character drivers, Differences Between Synchronous and Asynchronous I/O
- USB, Synchronous and Asynchronous Transfers and Callbacks
- system calls, What Is the Kernel?
- system global state functions, System Global State
- system power management
- description of, System Power Management
- entry points, Entry Points Used by System Power Management
- model, System Power Management Model
- policy, Automatic Power Management for Systems
- saving hardware state, Hardware State
- USB devices, System Power Management
- system registers, reading and writing, Exploring System Registers With kmdb
|