IRIX™ Device Driver Programming Guide
Next
IRIX™ Device Driver Programming Guide
Document Number: 007-0911-050
Front Matter
|
List of Figures
|
List of Tables
|
Table of Contents
Introduction
About This Guide
Audience
Document Overview
Related Documentation
Reference Material
Notation and Syntax Conventions
1.
Introduction to Device Drivers
Driver Overview
System Hardware
System Software
2.
Writing a Device Driver
Creating Device Drivers
Device-special File
Configuration Files
Including a Device Driver in the Kernel
Driver Entry Points
3.
Writing a VME Device Driver
VME-bus Interface Overview
Choosing a Driver Model
Writing User-level VME Device Drivers
Writing Kernel-level VME Device Drivers
4.
Writing an EISA Device Driver
EISA-bus Interface Overview
Choosing a Device Driver Model
Writing a User-level EISA Device Driver
Writing a Kernel-level EISA Device Driver
5.
Writing a SCSI Device Driver
SCSI-bus Interface Overview
Choosing a Driver Model
User-level SCSI Device Drivers
Kernel-level SCSI Device Drivers
SCSI Device Driver Example
6.
Writing Kernel-level GIO Device Drivers
GIO-bus Architecture
Determining GIO Device Addresses
Including GIO Device Drivers in the Kernel
Writing edtinit()
GIO-specific Functions
GIO Interrupt Handler
Programmed I/O (PIO)
DMA Operations
Memory Parity Workarounds
GIO Devices with Hardware-supported Scatter/Gather Capability
DMA on GIO Devices Without Scatter/Gather Capability
Device Driver Example
7.
Writing Kernel-level General Memory-mapping Device Drivers
Including a Memory-mapping Device Driver in the Kernel
Mapping and Unmapping Functions
Sharing Kernel Memory with a User Program
Example Program
Returning Opaque Handle Data
8.
Writing Multiprocessor Device Drivers
Preliminary Considerations
Shared Data between Upper-half and Interrupt Routines
Protecting Shared Data Among Upper-half Routines
Semaphore and Spinlock Calls
Multiprocessing STREAMS Drivers
9.
Writing Network Device Drivers
Preliminary Discussion
IRIX Kernel Networking Design
ifnet Driver Interfaces
Input Queueing Example
Interrupt Handler Example
ifnet Device Driver Example
10.
Driver Installation and Testing
Using the Kernel Debugger
Multiprocessor Debugging
11.
Kernel-level Dynamically Loadable Modules (DLMs)
Module Configuration
Using a Dynamically Loadable Kernel Module
Master File Configuration
Auto Registration
Auto Unload
Kernel Configuration
Module Entry Points
Module Initialization
Edt Type Drivers
Library Modules
Loadable Modules and Hardware Inventory
Run-time Symbol Table
Debugging Loadable Kernel Modules
Load/Register Failures
Example 1
Example 2
A.
System-specific Issues
CPU Types
Data Cache Write Back and Invalidation
Flushing the Write Buffer
Registers and Register Optimization
Reliable Multiprocessor Spinlocks
VME Slave Addressing
VME Master Addressing
VME-bus Space Reserved for Customer Drivers
POWER Indigo2 and POWER CHALLENGE M Drivers
B.
SCSI Controller Error Messages
Introduction
Sense Key Information
SCSI Driver Error Messages
SCSI Driver Debugging Messages
SCSI States and Phases
C.
Device Driver Migration Notes
Introduction
IRIX 4.x to 5.x Migration
IRIX 5.2 to 5.3 Migration
Migration to IRIX 6.0
Glossary
Index