projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sun merge
[unix-history]
/
usr
/
src
/
sys
/
vax
/
if
/
if_en.c
diff --git
a/usr/src/sys/vax/if/if_en.c
b/usr/src/sys/vax/if/if_en.c
index
8b0fb8b
..
c860a0f
100644
(file)
--- a/
usr/src/sys/vax/if/if_en.c
+++ b/
usr/src/sys/vax/if/if_en.c
@@
-1,34
+1,37
@@
-/* if_en.c 4.
68 82/10/09
*/
+/* if_en.c 4.
75 82/12/17
*/
#include "en.h"
/*
* Xerox prototype (3 Mb) Ethernet interface driver.
*/
#include "en.h"
/*
* Xerox prototype (3 Mb) Ethernet interface driver.
*/
+#include "../machine/pte.h"
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/mbuf.h"
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/mbuf.h"
-#include "../h/pte.h"
#include "../h/buf.h"
#include "../h/protosw.h"
#include "../h/socket.h"
#include "../h/buf.h"
#include "../h/protosw.h"
#include "../h/socket.h"
-#include "../h/ubareg.h"
-#include "../h/ubavar.h"
-#include "../h/enreg.h"
-#include "../h/cpu.h"
-#include "../h/mtpr.h"
#include "../h/vmmac.h"
#include "../h/vmmac.h"
+#include <errno.h>
+
+#include "../net/if.h"
+#include "../net/netisr.h"
+#include "../net/route.h"
#include "../netinet/in.h"
#include "../netinet/in_systm.h"
#include "../netinet/in.h"
#include "../netinet/in_systm.h"
-#include "../net/if.h"
-#include "../vaxif/if_en.h"
-#include "../vaxif/if_uba.h"
#include "../netinet/ip.h"
#include "../netinet/ip_var.h"
#include "../netpup/pup.h"
#include "../netinet/ip.h"
#include "../netinet/ip_var.h"
#include "../netpup/pup.h"
-#include "../net/route.h"
-#include <errno.h>
+
+#include "../vax/cpu.h"
+#include "../vax/mtpr.h"
+#include "../vaxif/if_en.h"
+#include "../vaxif/if_enreg.h"
+#include "../vaxif/if_uba.h"
+#include "../vaxuba/ubareg.h"
+#include "../vaxuba/ubavar.h"
#define ENMTU (1024+512)
#define ENMRU (1024+512+16) /* 16 is enough to receive trailer */
#define ENMTU (1024+512)
#define ENMRU (1024+512+16) /* 16 is enough to receive trailer */
@@
-116,8
+119,13
@@
enattach(ui)
es->es_if.if_flags = IFF_BROADCAST;
es->es_if.if_init = eninit;
es->es_if.if_output = enoutput;
es->es_if.if_flags = IFF_BROADCAST;
es->es_if.if_init = eninit;
es->es_if.if_output = enoutput;
- es->es_if.if_
uba
reset = enreset;
+ es->es_if.if_reset = enreset;
es->es_ifuba.ifu_flags = UBA_NEEDBDP | UBA_NEED16 | UBA_CANTWAIT;
es->es_ifuba.ifu_flags = UBA_NEEDBDP | UBA_NEED16 | UBA_CANTWAIT;
+#if defined(VAX750)
+ /* don't chew up 750 bdp's */
+ if (cpu == VAX_750 && ui->ui_unit > 0)
+ es->es_ifuba.ifu_flags &= ~UBA_NEEDBDP;
+#endif
if_attach(&es->es_if);
}
if_attach(&es->es_if);
}
@@
-332,7
+340,7
@@
enrint(unit)
struct endevice *addr = (struct endevice *)eninfo[unit]->ui_addr;
register struct en_header *en;
struct mbuf *m;
struct endevice *addr = (struct endevice *)eninfo[unit]->ui_addr;
register struct en_header *en;
struct mbuf *m;
- int len
, plen
; short resid;
+ int len; short resid;
register struct ifqueue *inq;
int off;
register struct ifqueue *inq;
int off;
@@
-452,7
+460,7
@@
enoutput(ifp, m0, dst)
#ifdef INET
case AF_INET:
dest = ((struct sockaddr_in *)dst)->sin_addr.s_addr;
#ifdef INET
case AF_INET:
dest = ((struct sockaddr_in *)dst)->sin_addr.s_addr;
- if (
dest & 0x00ffff
00) {
+ if (
in_lnaof(*((struct in_addr *)&dest)) >= 0x1
00) {
error = EPERM; /* ??? */
goto bad;
}
error = EPERM; /* ??? */
goto bad;
}
@@
-505,7
+513,7
@@
gottype:
*/
if (m->m_off > MMAXOFF ||
MMINOFF + sizeof (struct en_header) > m->m_off) {
*/
if (m->m_off > MMAXOFF ||
MMINOFF + sizeof (struct en_header) > m->m_off) {
- m = m_get(M_DONTWAIT);
+ m = m_get(M_DONTWAIT
, MT_HEADER
);
if (m == 0) {
error = ENOBUFS;
goto bad;
if (m == 0) {
error = ENOBUFS;
goto bad;