minix/drivers/dpeth
David van Moolenbroek c51cd5fe91 Server/driver protocols: no longer allow third-party copies.
Before safecopies, the IO_ENDPT and DL_ENDPT message fields were needed
to know which actual process to copy data from/to, as that process may
not always be the caller. Now that we have full safecopy support, these
fields have become useless for that purpose: the owner of the grant is
*always* the caller. Allowing the caller to supply another endpoint is
in fact dangerous, because the callee may then end up using a grant
from a third party. One could call this a variant of the confused
deputy problem.

From now on, safecopy calls should always use the caller's endpoint as
grant owner. This fully obsoletes the DL_ENDPT field in the
inet/ethernet protocol. IO_ENDPT has other uses besides identifying the
grant owner though. This patch renames IO_ENDPT to USER_ENDPT, not only
because that is a more fitting name (it should never be used for I/O
after all), but also in order to intentionally break any old system
source code outside the base system. If this patch breaks your code,
fixing it is fairly simple:

- DL_ENDPT should be replaced with m_source;
- IO_ENDPT should be replaced with m_source when used for safecopies;
- IO_ENDPT should be replaced with USER_ENDPT for any other use, e.g.
  when setting REP_ENDPT, matching requests in CANCEL calls, getting
  DEV_SELECT flags, and retrieving of the real user process's endpoint
  in DEV_OPEN.

The changes in this patch are binary backward compatible.
2011-04-11 17:35:05 +00:00
..
3c501.c Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
3c501.h Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
3c503.c Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
3c503.h Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
3c509.c Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
3c509.h Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
8390.c Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
8390.h Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
devio.c Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
dp.c Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
dp.h Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
Makefile Rename mkfiles from minix.*.mk to bsd.*.mk 2010-06-25 18:29:09 +00:00
ne.c Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
ne.h Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
netbuff.c Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
README Remove revision IDs from files 2010-11-04 01:13:59 +00:00
wd.c Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00
wd.h Remove those annoying $Id and $Revision tags 2010-05-31 20:00:08 +00:00

This is my implementation of a new network task 
for the Minix kernel.  I did it initially to handle
a 3c501 board (Etherlink), but those board are so
unstable that it is not worth using them except for
learning how to implement a driver.  When I got a
3c509b board (Etherlink III) it was easier to
write the code to handle them.  

The Minix code in 'dp8390.c' is too specific for the
National chip set, so what I did was to remove as 
much as I needed of the code dependant from the chip
and produce a generic task that, I hope, will be able
to handle many more cards.

$Log$
Revision 1.1  2005/06/29 10:16:46  beng
Import of dpeth 3c501/3c509b/.. ethernet driver by
Giovanni Falzoni <fgalzoni@inwind.it>.

Revision 1.3  2004/04/14 12:49:07  lsodgf0
Changes for porting to Minix 2.0.4 run on BOCHS

Revision 1.2  2002/03/25 14:16:09  lsodgf0
The driver for the NEx000 has been rewritten to be
operational with the ACCTON 18xx (an NE1000 clone)
The I/O routines for 16 bit cards are still untested..

Revision 1.1  2002/02/09 09:35:09  lsodgf0
Initial revision
The package is not fully tested, i.e. I had only 3Com
boards (3c501, 3c503, 3c503/16 and 3c509b) and WD8003.
I got also a NE1000 clone but it was not fully
operational and I could not appreciate the results.
For this reason the changes done to the interface
to I/O for 8 and 16 bits are not tested.