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
|
E
- eeprom(1M) command, Additional Suggestions for Testing Console Frame Buffer Drivers
- eft diagnosis rules, Diagnosing Faults
- EHCI (Enhanced Host Controller Interface), USB Client Drivers
- ENA (Error Numeric Association), Reporting Errors
- entry points
- attach() function
- attach() Entry Point
- attach() Entry Point
- Registering Drivers to Gain Device Access
- Device Power Management
- active power management, Device Power Management
- system power management, System Power Management
for block drivers
- Block Driver Structure Overview
- Block Driver Structure Overview
- for character drivers
- Overview of the Character Driver Structure
- Overview of the Character Driver Structure
- definition, What Is a Device Driver Entry Point?
- detach() function
- detach() Entry Point
- detach() Entry Point
- Device Power Management
- hot removal, Hot Removal
- system power management, System Power Management
for device power management, power() Entry Point
- device context management, Entry Points for Device Context Management
- for device configuration, Device Configuration Concepts
- for network drivers, GLD Entry Points
- ioctl() function, Miscellaneous I/O Control
- power() function
- power() Entry Point
- Device Power Management
- Device Power Management
- probe() function, probe() Entry Point
- SCSA HBA summary, SCSA HBA Entry Point Summary
- system power management, Entry Points Used by System Power Management
- ereport, definition, What Is Predictive Self-Healing?
- ereport event, definition, What Is Predictive Self-Healing?
- errdef
- definition, Creating Faults
- error-injection specification, Driver Hardening Test Harness
- error handling, Error Handling
- error messages, printing
- Returning Errors
- print() Entry Point (Block Drivers)
- system file, Setting Up Test Modules
- /etc/driver_aliases file, Checking Device Driver Bindings
- /etc/power.conf file, device dependencies, Power Management Dependencies
- Ethernet V2, See DL_ETHER
- event registry
- Message IDs and Dictionary Files
- Reporting Errors
- Event Registry
- events
- asynchronous notification, Receiving Asynchronous Device Event Notification
- attributes, Defining Event Attributes
- description of, Introduction to Events
- hotplug notification, Hotplug Callbacks
- Eversholt fault tree (eft) rules
- Reporting Errors
- Diagnosing Faults
- exporting device memory to user applications, Associating Device Memory With User Mappings
- external registers, Internal Sequencing Logic
F
- fault, definition, What Is Predictive Self-Healing?
- fault event, definition, What Is Predictive Self-Healing?
- fault injection
- Fault Injection
- Injecting Faults
- fault management
- access attributes
- programmed I/O access errors, Access Attributes Structure
access or DMA handle error, Reporting Errors
- agent, What Is Predictive Self-Healing?
- Automated System Recovery Unit (ASRU), Diagnosis, Suspect Lists, and Fault Events
- DDI_CAUTIOUS_ACC flag, Access Attributes Structure
- ddi_device_acc_attr structure, Access Attributes Structure
- ddi_dma_attr structure, DMA Attributes Structure
- DDI_DMA_FLAGERR, DMA Attributes Structure
- DDI_FM_* I/O controller errors, Reporting Errors
- ddi_fm_acc_err_clear() function, Getting Error Status
- ddi_fm_acc_err_get() function
- Access Attributes Structure
- Access Attributes Structure
- ddi_fm_capable() function, Getting the Fault Management Capability Bit Mask
- ddi_fm_dma_err_get() function, DMA Attributes Structure
- ddi_fm_ereport_post() function
- Reporting Errors
- Reporting Errors
- ddi_fm_error structure
- Registering an Error Handler
- Registering an Error Handler
- Fault Management Data and Status Structure
- ddi_fm_fini() function, Cleaning Up Fault Management Resources
- ddi_fm_handler_register() function
- Access Attributes Structure
- Registering an Error Handler
- ddi_fm_handler_unregister() function, Registering an Error Handler
- ddi_fm_init() function, Declaring Fault Management Capabilities
- ddi_fm_service_impact() function, Reporting Errors
- DDI_SERVICE_* service impact values, Reporting Errors
- DE (diagnosis engine)
- Diagnosing Faults
- Event Registry
- diagnosis engine, What Is Predictive Self-Healing?
- .dict dictionary files, Message IDs and Dictionary Files
- DMA errors, DMA Attributes Structure
- eft diagnosis engine, Reporting Errors
- eft diagnosis rules
- Diagnosing Faults
- Event Registry
- ENA (Error Numeric Association)
- Reporting Errors
- Fault Management Data and Status Structure
- ereport
- What Is Predictive Self-Healing?
- Error Handling
- ereport events
- What Is Predictive Self-Healing?
- Reporting Errors
- Registering an Error Handler
- error handler callback, Registering an Error Handler
- error handling, Error Handling
- event registry
- Message IDs and Dictionary Files
- Reporting Errors
- Reporting Errors
- Event Registry
- Eversholt fault tree (eft) rules
- Reporting Errors
- Diagnosing Faults
- fault, What Is Predictive Self-Healing?
- fault event
- What Is Predictive Self-Healing?
- System Topology
- fault management capabilities, Declaring Fault Management Capabilities
- fault management capabilities, declaring, Declaring Fault Management Capabilities
- fault management capability bit mask, Getting the Fault Management Capability Bit Mask
- fault management capability properties, Declaring Fault Management Capabilities
- fault management resources, cleaning up, Cleaning Up Fault Management Resources
- fault manager daemon fmd
- Solaris Fault Manager
- Diagnosing Faults
- fault messages, Message IDs and Dictionary Files
- Field Replaceable Unit (FRU), Diagnosis, Suspect Lists, and Fault Events
- fmadm command, Response Agents
- fmdump command, Diagnosis, Suspect Lists, and Fault Events
- fme_status flag, Access Attributes Structure
- I/O Fault Services, Hardening Solaris Drivers
- interfaces, Fault Management Functions
- list suspect
- Diagnosis, Suspect Lists, and Fault Events
- Message IDs and Dictionary Files
- pci_ereport_post() function
- Reporting Errors
- Registering an Error Handler
- Fault Management Data and Status Structure
- pci_ereport_seetup() function, Reporting Errors
- pci_ereport_setup() function, Declaring Fault Management Capabilities
- pci_ereport_teardown() function
- Cleaning Up Fault Management Resources
- Reporting Errors
- .po message files, Message IDs and Dictionary Files
- response agent, Response Agents
- retire agent, Response Agents
- suspect list
- Diagnosis, Suspect Lists, and Fault Events
- Event Registry
- topology of system, System Topology
- Fault Management Architecture (FMA), See fault management
- faults, latent fault, definition of, Periodic Health Checks
- fbconfig(1M) command, Testing the Video Mode Change Callback Function
- fbconfig() module, Frame Buffer Specific Configuration Module
- fibre distributed data interface, See DL_FDDI
- Field Replaceable Unit (FRU), definition, Diagnosis, Suspect Lists, and Fault Events
- file system I/O, File I/O
- _fini() entry point
- example of, _fini() Example
- required implementation, Loadable Module Entry Points
- first-party DMA
- First-Party DMA
- Performing First-Party DMA Transfers
- flags argument, ddi_dma_mem_alloc(), changes to, ddi_dma_mem_alloc() Argument Changes
- flow of control for power management, Power Management Flow of Control
- fmadm command, Response Agents
- fmd fault manager daemon
- Solaris Fault Manager
- Diagnosing Faults
- fmdump command, Diagnosis, Suspect Lists, and Fault Events
- freemsg() function, Requests
- functions
- See also condition variable functions
- See also device power management
- See individual functions
- See also LDI functions
- See specific function name
- fuser command, display device usage information, Device User Command Interfaces
|