Specifications
9
Understanding the Kernel Environment
Overview of the Kernel I/O Structure and Flow of Control . . . . . . . . . . . . . . . . . . . 9-1
Overview of Source Directories and Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2
System Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3
Header Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4
The cdevsw Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5
The cred Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7
The iovec and uio Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7
The adapter Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-9
The device Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-12
Kernel Support Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-12
Ioctl Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-12
Memory Allocation and Management Routines. . . . . . . . . . . . . . . . . . . . . . . . . 9-13
Memory Access Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15
Address Management Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15
Data Transfer Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-16
Synchronization Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-17
Spin Locks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-17
Sleep Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-18
Event Synchronization Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-18
Processor Priority Level Adjustment Routines . . . . . . . . . . . . . . . . . . . . . . . . . 9-18
Timing and Timeout Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-19
Interrupt Vector Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-20
Debug Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-21
Small vs. Large Offset Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-21