Second Edition (September 1999)
Trademarks and Acknowledgements
About This Book
Chapter 1. Kernel Environment
Understanding Kernel Extension Binding
Understanding Execution Environments
Understanding Kernel Threads
Using Kernel Processes
Accessing User-Mode Data While in Kernel Mode
Understanding Locking
Understanding Exception Handling
64-bit Kernel Extension Development
Chapter 2. System Calls
Understanding System Call Execution
System Calls Available to Kernel Extensions
Chapter 3. Virtual File Systems
Logical File System Overview
Virtual File System Overview
Understanding Data Structures and Header Files for Virtual File Systems
Configuring a Virtual File System
Chapter 4. Kernel Services
I/O Kernel Services
Block I/O Buffer Cache Kernel Services: Overview
Understanding Interrupts
Understanding DMA Transfers
Kernel Extension and Device Driver Management Kernel Services
Locking Kernel Services
File Descriptor Management Services
Logical File System Kernel Services
Memory Kernel Services
Understanding Virtual Memory Manager Interfaces
Message Queue Kernel Services
Network Kernel Services
Process and Exception Management Kernel Services
RAS Kernel Services
Security Kernel Services
Timer and Time-of-Day Kernel Services
Using Fine Granularity Timer Services and Structures
Using Multiprocessor-Safe Timer Services
Virtual File System (VFS) Kernel Services
Chapter 5. Asynchronous I/O Subsystem
Asynchronous I/O Overview
Prerequisites
Functions of Asynchronous I/O
Asynchronous I/O Subroutines
Subroutines Affected by Asynchronous I/O
Changing Attributes for Asynchronous I/O
64-bit Enhancements
Related Information
Chapter 6. Device Configuration Subsystem
Device Configuration Database Overview
Basic Device Configuration Procedures Overview
Device Configuration Manager Overview
Device Classes, Subclasses, and Types Overview
Writing a Device Method
Understanding Device Methods Interfaces
Understanding Device States
Adding an Unsupported Device to the System
Understanding Device Dependencies and Child Devices
Accessing Device Attributes
Device Dependent Structure (DDS) Overview
List of Device Configuration Commands
List of Device Configuration Subroutines
Chapter 7. Communications I/O Subsystem
Communications Physical Device Handler Model Overview
Status Blocks for Communications Device Handlers Overview
MPQP Device Handler Interface Overview
Serial Optical Link Device Handler Overview
Configuring the Serial Optical Link Device Driver
Forum-Compliant ATM LAN Emulation Device Driver
Fiber Distributed Data Interface (FDDI) Device Driver
High-Performance (8fc8) Token-Ring Device Driver
High-Performance (8fa2) Token-Ring Device Driver
PCI Token-Ring High Performance (14101800) Device Driver
Ethernet Device Drivers
Chapter 8. Graphic Input Devices Subsystem
Chapter 9. Low Function Terminal Subsystem
Low Function Terminal Interface Functional Description
Components Affected by the Low Function Terminal Interface
Accented Characters
Chapter 10. Logical Volume Subsystem
Understanding the Logical Volume Device Driver
Understanding Logical Volumes and Bad Blocks
Changing the mwcc_entries Variable
Chapter 11. Printer Addition Management Subsystem
Adding a New Printer Type to Your System
Adding a Printer Definition
Adding a Printer Formatter to the Printer Backend
Understanding Embedded References in Printer Attribute Strings
Chapter 12. Small Computer System Interface Subsystem
SCSI Subsystem Overview
Understanding SCSI Asynchronous Event Handling
SCSI Error Recovery
A Typical Initiator-Mode SCSI Driver Transaction Sequence
Understanding SCSI Device Driver Internal Commands
Understanding the Execution of Initiator I/O Requests
SCSI Command Tag Queuing
Understanding the sc_buf Structure
Other SCSI Design Considerations
SCSI Target-Mode Overview
Required SCSI Adapter Device Driver ioctl Commands
Chapter 13. Fibre Channel Protocol for SCSI Subsystem
FCP Subsystem Overview
Understanding FCP Asynchronous Event Handling
FCP Error Recovery
A Typical Initiator-Mode FCP Driver Transaction Sequence
Understanding FCP Device Driver Internal Commands
Understanding the Execution of Initiator I/O Requests
FCP Command Tag Queuing
Understanding the scsi_buf Structure
Other FCP Design Considerations
Required FCP Adapter Device Driver ioctl Commands
Chapter 14. FCP Device Drivers
Programming FCP Device Drivers
FCP Device Driver Overview
FCP Adapter Device Driver Overview
FCP Adapter/Device Interface
FCP Adapter Device Driver Routines
FCP Adapter ioctl Operations
Chapter 15. Integrated Device Electronics (IDE) Subsystem
IDE Error Recovery
A Typical IDE Driver Transaction Sequence
IDE Device Driver Internal Commands
Execution of I/O Requests
ataide_buf Structure
Other IDE Design Considerations
Required IDE Adapter Device Driver ioctl Commands
Chapter 16. Serial Direct Access Storage Device Subsystem
Chapter 17. Debugging Tools
System Dump
The crash Command
Low Level Kernel Debugger (LLDB)
KDB Kernel Debugger and Command
Error Logging
Debug and Performance Tracing
Memory Overlay Detection System (MODS)
Appendix A. Alphabetical List of Kernel Services