Next:
What is a
Up:
The Linux Kernel Hackers'
Previous:
Read the FAQ
Device Drivers
What is a Device Driver?
User-space device drivers
Example: vgalib
Example: mouse conversion
Device Driver Basics
Namespace
Allocating memory
Character vs. block devices
Interrupts vs. Polling
The sleep-wakeup mechanism
More advanced sleeping
The VFS
The lseek() function
The read() and write() functions
The readdir() function
The select() function
The ioctl() function
The mmap() function
The open() and release() functions
The init() function
Character Device Drivers
Initialization
Interrupts vs. Polling
TTY drivers
Block Device Drivers
Initialization
The file blk.h
Recognizing PC standard partitions
The Buffer Cache
The Strategy Routine
Example Drivers
Supporting Functions
Writing a SCSI Device Driver
Why You Want to Write a SCSI Driver
What is SCSI?
SCSI phases
SCSI Commands
Getting Started
Before You Begin: Gathering Tools
The SCSI Interface
The Scsi_Host Structure
Variables in the Scsi_Host structure
name
can_queue
this_id
sg_tablesize
cmd_per_lun
present
unchecked_isa_dma
Functions in the Scsi_Host Structure
detect()
Requesting the DMA channel
info()
queuecommand()
done()
command()
abort()
reset()
slave_attach()
bios_param()
The Scsi_Cmnd Structure
Reserved Areas
Informative Variables
The Scatter-Gather List
Scratch Areas
The scsi_done() Pointer
The host_scribble Pointer
The Scsi_Pointer Structure
Acknowledgements
Network Device Drivers
Ross Biro
Mon May 22 11:57:09 PDT 1995