This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

eth device drivers


I'm a little confused about writing device drivers for a wireless
modem/network card.

Do I have to write a driver for the actual modem, and one for the
network portion of it, or should it all be integrated into one?  Right
now I'm looking at "devs\eth\arm\edb7xxx\current\src\if_edb7xxx.c".  It
looks to me like it's the only driver file for that network device.  Is
this correct?

How do I go about understanding the driver?  For instance, what good
does it do to go

NETDEVTAB_ENTRY (edb7xxx_netdev, "edb7xxx", edb7xxx_cs8900_init,
&edb7xxx_sc);
???

Doesn't that device tab entry have to be put inside a table somewhere in
the kernel in order for the kernel to access it, or to even know it's
there?  Or does the CYG_HAL_TABLE_ENTRY part of the macro create a
string that "make" somehow parses, and automatically puts the entry into
an array somewhere in the kernel as it's being made and compiled?


Does ETH_DRV_SC create the edb7xxx_sc variable used by NETDEVTAB_ENTRY?
That's what it looks like in the eCos sources.  Is there documentation
for all this stuff, or does everyone have to look through the source
like me?  It would be nice to just have docs that say something like
"ETH_DRV_SC creates a structured vairable of the type 'eth_hwr_funs' and
fills it with all the function names, etc".  

With documentation like that, I wouldn't care about what the MACROS were
doing, I would just use them.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]