Just out of curiousity- why do you need to write your own drivers; is this a school project or something like that? The only reason I ask is that Linux drivers are open-source, so you are free to examine the code written by others; you'll get a lot of information just by examining that code.
In terms of network drivers in particular, Donald Becker is the author/maintainer of many of these drivers; visit the site below to see much of his (and other Linux driver developers') work:
http://www.scyld.com/network.html
DMR
Wombat At Large
7,229 posts since Dec 2003
Reputation Points: 221
Solved Threads: 370