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
Module Functions
Device Information Tree Node (dev_info_t) Functions
Device (dev_t) Functions
Property Functions
Device Software State Functions
Memory Allocation and Deallocation Functions
Kernel Thread Control and Synchronization Functions
Task Queue Management Functions
Interrupt Functions
Programmed I/O Functions
Direct Memory Access (DMA) Functions
User Space Access Functions
User Process Event Functions
User Process Information Functions
User Application Kernel and Device Access Functions
Time-Related Functions
Power Management Functions
Fault Management Functions
Kernel Statistics Functions
Kernel Logging and Printing Functions
Buffered I/O Functions
Virtual Memory Functions
Device ID Functions
Resource Map Management Functions
System Global State
Utility Functions
C. Making a Device Driver 64-Bit Ready
D. Console Frame Buffer Drivers
Index
|
SCSI Functions
The SCSI functions are: - scsi_probe()
Probe a SCSI device
- scsi_unprobe()
Free resources allocated during initial probing
- scsi_alloc_consistent_buf()
Allocate an I/O buffer for SCSI DMA
- scsi_free_consistent_buf()
Free a previously allocated SCSI DMA I/O buffer
- scsi_init_pkt()
Prepare a complete SCSI packet
- scsi_destroy_pkt()
Free an allocated SCSI packet and its DMA resource
- scsi_setup_cdb()
Set up SCSI command descriptor block (CDB)
- scsi_transport()
Start a SCSI command
- scsi_poll()
Run a polled SCSI command
- scsi_ifgetcap()
Get SCSI transport capability
- scsi_ifsetcap()
Set SCSI transport capability
- scsi_sync_pkt()
Synchronize CPU and I/O views of memory
- scsi_abort()
Abort a SCSI command
- scsi_reset()
Reset a SCSI bus or target
- scsi_reset_notify()
Notify the target driver of bus resets
- scsi_cname()
Decode a SCSI command
- scsi_dname()
Decode a SCSI peripheral device type
- scsi_mname()
Decode a SCSI message
- scsi_rname()
Decode a SCSI packet completion reason
- scsi_sname()
Decode a SCSI sense key
- scsi_errmsg()
Display a SCSI request sense message
- scsi_log()
Display a SCSI-device-related message
- scsi_vu_errmsg()
Display a SCSI request sense message
- scsi_hba_init()
SCSI HBA system initialization routine
- scsi_hba_fini()
SCSI HBA system completion routine
- scsi_hba_attach_setup()
SCSI HBA attach routine
- scsi_hba_detach()
SCSI HBA detach routine
- scsi_hba_probe()
Default SCSI HBA probe function
- scsi_hba_tran_alloc()
Allocate a transport structure
- scsi_hba_tran_free()
Free a transport structure
- scsi_hba_pkt_alloc()
Allocate a scsi_pkt structure
- scsi_hba_pkt_free()
Free a scsi_pkt structure
- scsi_hba_lookup_capstr()
Return an index matching capability string
Table B-12 Deprecated SCSI FunctionsDeprecated Function |
Replacement |
free_pktiopb() |
scsi_free_consistent_buf() |
get_pktiopb() |
scsi_alloc_consistent_buf() |
makecom_g0() |
scsi_setup_cdb() |
makecom_g0_s() |
scsi_setup_cdb() |
makecom_g1() |
scsi_setup_cdb() |
makecom_g5() |
scsi_setup_cdb() |
scsi_dmafree() |
scsi_destroy_pkt() |
scsi_dmaget() |
scsi_init_pkt() |
scsi_hba_attach() |
scsi_hba_attach_setup() |
scsi_pktalloc() |
scsi_init_pkt() |
scsi_pktfree() |
scsi_destroy_pkt() |
scsi_resalloc() |
scsi_init_pkt() |
scsi_resfree() |
scsi_destroy_pkt() |
scsi_slave() |
scsi_probe() |
scsi_unslave() |
scsi_unprobe() |
|