Download Coherent Device Driver Kit

Transcript
Table of Contents
1.
Introduction .
.
.
.
.
.
.
.
•
•
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
•
.
•
The Kit
Installing the Device Driver Kit
Driver Sources.
.
2.
.
.
.
.
CompatibWty Information
.
3. Writing a Device Driver
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
•
.
•
.
•
•
•
•
.
.
.
•
.
.
•
.
.
. . . .
•
•
.
.
•
•
.
.
.
.
.
•
.
.
.
.
.
.
•
.
.
.
.
.
.
.
•
.
.
.
.
.
•
.
.
.
.
•
.
•
.
.
.
•
•
.
.
•
.
.
.
.
.
.
•
•
.
•
.
•
•
•
•
•
•
.
•
.
.
•
•
.
.
.
•
.
.
.
.
•
•
•
.
.
.
•
•
•
•
•
•
•
.
•
•
•
.
•
.
.
•
•
.
.
•
•
.
•
.
.
.
.
•
•
•
•
.
•
.
•
•
•
•
•
.
•
.
•
•
•
•
.
•
•
•
•
.
.
.
•
.
.
.
.
.
.
•
.
.
.
.
.
.
•
•
.
•
•
•
.
•
•
•
•
•
•
.
•
•
•
.
.
•
•
•
.
.
.
.
•
.
.
.
.
.
•
.
•
•
•
•
•
•
.
.
.
•
.
•
•
.
•
•
.
.
.
.
.
.
.
.
.
•
.
.
.
.
.
•
•
•
•
•
•
.
•
•
.
•
•
•
.
•
.
.
•
.
.
.
.
.
.
.
.
.
1
1
5
5
. .
. . .
7
7
.
.
•
•
.
.
. . .
. . . . .
.
.
.
•
.
.
.
.
•
•
•
.
.
.
.
.
.
•
•
.
•
.
.
.
.
•
•
.
•
•
•
.
•
.
.
.
.
.
.
.
.
.
.
.
.
•
.
.
.
•
.
.
.
.
•
•
•
.
•
.
•
•
.
.
.
•
.
.
.
.
.
.
•
.
.
•
•
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
•
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
•
•
•
•
•
.
.
.
•
.
.
.
.
.
.
.
.
.
.
.
•
.
•
.
.
•
•
.
.
•
•
•
.
.
.
•
•
.
•
•
•
.
.
.
•
.
.
.
.
.
.
•
.
.
.
.
.
.
•
•
•
•
•
.
.
•
•
•
•
.
.
.
•
•
•
.
.
•
.
.
.
•
.
.
.
.
.
.
.
•
.
•
.
.
•
.
•
•
•
•
•
•
•
.
•
•
•
.
•
•
•
•
•
.
.
•
•
.
.
•
•
.
.
.
.
.
•
.
•
•
•
.
.
•
•
•
•
•
•
•
•
.
.
•
•
•
.
•
.
•
.
•
.
•
•
.
.
•
•
•
.
•
.
•
•
•
•
.
.
.
.
•
.
.
.
.
.
.
.
.
.
.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
.
.
.
.
.
.
.
.
.
.
.
.
.
.
•
•
•
•
.
.
.
•
•
.
•
•
•
•
.
.
.
.
.
.
.
.
.
.
.
.
.
•
.
.
.
•
.
•
.
•
•
•
.
•
•
.
.
.
.
.
.
.
.
.
.
.
•
•
.
•
.
.
.
•
•
•
•
•
.
•
•
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
•
•
•
•
•
•
•
.
•
.
.
.
.
.
.
.
.
.
.
.
•
.
•
.
.
.
•
.
•
•
•
.
.
.
.
.
.
.
.
The COHERENT Kernel
Processes.
Devices .
Buffer Cache.
Interrupts
Devices, Drivers. and Device Files
Kernel Functions
Structure of a Device Driver.
Flags
Major Device Number
Open Routine
Close Routine
Block Routine
Read Routine
Write Routine
I/0 Control Routine
Power-Fail Routine
Timeout Routine
Load Routine
Unload Routine
Poll Routine
Writing a Device Driver
Defensive Programming
Testing the Hardware.
Major Device Number
Naming Conventions
Errors
Devising Functions
Adding the Driver to COHERENT
.
.
.
•
.
Compatible Systems
Compatible Add-On Products
Compatible BIOS ROMs
Incompatible Hardware
.
•
.
.
.
.
.
.
•
.
•
•
.
.
•
.
.
.
•
.
.
•
.
•
.
•
. . . . . .
.
.
.
•
.
.
•
.
.
.
.
.
.
.
•
•
.
•
.
•
.
.
.
.
•
.
.
.
.
•
•
.
.
.
.
.
.
.
.
.
.
.
.
.
•
•
•
•
•
•
.
.
.
•
•
.
•
.
.
.
•
•
•
.
.
.
.
.
.
.
.
.
.
.
•
•
.
•
.
.
•
.
•
•
.
•
•
•
.
•
•
•
.
•
.
•
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
•
.
•
.
.
.
.
.
.
.
.
.
.
.
•
.
.
.
.
.
.
.
•
•
•
•
•
.
.
•
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
•
•
•
•
.
•
•
.
.
.
.
.
.
.
.
.
•
•
.
•
.
.
.
.
.
.
•
•
•
•
.
.
•
.
.
.
.
.
.
.
.
.
.
.
.
.
•
.
•
.
.
.
•
.
.
.
.
•
.
.
.
.
.
.
•
.
.
.
.
.
.
.
•
•
.
.
•
.
.
•
.
.
•
•
•
•
•
.
.
.
.
•
•
.
.
.
•
.
.
.
.
•
.
.
•
.
.
•
•
•
.
•
•
•
•
.
.
•
•
•
•
•
.
•
•
•
.
.
.
.
.
•
•
.
•
.
.
•
.
•
•
•
.
.
.
.
.
•
•
.
.
.
.
•
•
•
.
.
•
.
20
. . 20
.
•
.
.
.
.
•
•
.
20
.
•
.
.
.
•
•
.
.
21
.
•
•
•
.
.
21
. . . . . . . . . 21
.
•
.
.
.
.
.
.
.
21
.
.
•
.
. . . . . 21
.
.
.
.
.
•
•
.
.
22
.
.
.
.
.
•
22
•
.
•
•
.
. . . . 22
.
•
•
.
.
.
.
•
.
22
.
•
.
.
.
•
.
. . 23
.
•
.
.
.
.
.
•
.
23
.
.
•
•
.
. 23
•
.
.
.
.
.
•
•
.
.
.
.
.
•
.
.
•
•
•
.
.
•
•
•
.
.
•
.
•
.
•
•
•
•
.
.
.
.
•
•
.
.
.
.
.
.
.
•
•
•
•
•
.
.
.
•
.
.
•
.
•
.
.
•
•
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
•
.
.
.
.
.
.
•
.
•
•
•
.
.
.
.
.
•
.
.
.
9
10
11
13
13
13
15
15
16
16
18
18
18
18
19
19
19
.
.
24