Device Drivers under Linux

C Hanish Menon
www.hanishkvc.com
Modified On:
Feb 2000, March 2001


Overview



Computer Architecture


  |-----|       Bus (Control, Addr, Data)     |---------| 
  | CPU |<----------------------------------->| Devices |
  |-----|                  ^                  |---------|
     ^                     |
     |                     v
     |                  |-----| 
     |                  | DMA | 
     |                  |-----|
     |                     ^
     |                     |
     |                     v                  |--------|
     |--------------------------------------->| Memory |
                                              |--------|



Linux - Macro Kernel



Linux - Modular



Driver Interfaces

You decide depending on the

CharDev - Intro



CharDev - Interface



CharDev - Interface2



Poll - Polling from User land



Fasync -Interrupt mode for User land



BlockDev - Intro (todo)



BlockDev - Misc (todo)



BlockDev - You do (todo)



NetworkDev - Intro (OkOk)



NetworkDev - You Do (OkOk)



Accessing Resources



Resource - Memory



Resource - IOPort



Resource - IRQ



Resource - DMA



Resource - IOMemory



Synchronisation - 1



Synchronisation -2



Synchronisation - 3



Tasking Assistants



TaskAssist - Software Interrupts



TaskAssist - Tasklets



TaskAssist - Bottom halves



TaskAssist - TaskQueue



Time



PCI - Start



PCI - Misc



Misc



References