🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Steven M. Schultz Thu, 12 Apr 1990 03:29
if_acc.c (ACC LH/DH-11) driver broke (+FIX)
#62
Author: Steven M. Schultz
Date: Thu, 12 Apr 1990 03:29
220 lines
6594 bytes
Subject: if_acc (LH/DH-11) interface is broken +FIX
Index:	sys/pdpif/if_acc.c 2.10BSD

Description:
	The ACC LH/DH interface driver (if_acc.c) won't even compile
	much less run.

Repeat-By:
	Select NIMP and NACC options in the kernel generation.
	Observe the errors when attempting to compile.

Fix:
	The if_acc.c driver was never ported to the supervisor mode 
	networking available with 2.10.1BSD.  Neither were the if_imp
	and if_imphost modules.

	With the patches below the if_acc.c (with if_imp.c and if_imphost.c)
	driver will work.   A small addition to the short_names.h file
	is also included.

	Also included are patches for:

		if_dmc.c
		if_sri.c
		if_css.c

	which will enable those drivers to compile.  the drivers have not
	been tested though.

	This is the "old" imp software, not the "new" version released for
	4.3BSD a year or so ago.  The "old" imp modules in 'netstat' should
	remain the ones compiled into 'netstat'.

*** /usr/oldinclude/short_names.h	Wed Apr 11 15:20:01 1990
--- /usr/include/short_names.h	Wed Apr 11 10:56:00 1990
***************
*** 53,58 ****
--- 53,59 ----
  #define	ifa_ifwithnet		ifa_wnet
  #define	imphostdead		imphdead	/* etc/implog */
  #define	imphostunreach		imphunreach	/* etc/implog */
+ #define	impintrq		impintq
  #define	in_pcballoc		in_pcbg
  #define	in_pcbdetach		in_pcbetach
  #define	inet_netof		inet_nof
diff -r -c /usr/src/oldsys/netimp/if_imp.c /usr/src/sys/netimp/if_imp.c
*** /usr/src/oldsys/netimp/if_imp.c	Thu Apr 28 10:59:48 1988
--- /usr/src/sys/netimp/if_imp.c	Wed Apr 11 11:01:12 1990
***************
*** 58,63 ****
--- 58,64 ----
  	char	imp_dropcnt;		/* used during initialization */
  } imp_softc[NIMP];
  
+ extern int hz;
  struct	ifqueue impintrq;
  int	impqmaxlen = IFQ_MAXLEN;
  
diff -r -c /usr/src/oldsys/netimp/if_imphost.c /usr/src/sys/netimp/if_imphost.c
*** /usr/src/oldsys/netimp/if_imphost.c	Sat Mar  5 14:30:20 1988
--- /usr/src/sys/netimp/if_imphost.c	Wed Apr 11 11:01:00 1990
***************
*** 19,25 ****
  #include "param.h"
  #include "mbuf.h"
  #include "domain.h"
! #include "proto.h"
  #include <netinet/in.h>
  #include <netinet/in_systm.h>
  #include <netimp/if_imp.h>
--- 19,25 ----
  #include "param.h"
  #include "mbuf.h"
  #include "domain.h"
! #include "protosw.h"
  #include <netinet/in.h>
  #include <netinet/in_systm.h>
  #include <netimp/if_imp.h>
diff -r -c /usr/src/oldsys/netimp/if_imphost.h /usr/src/sys/netimp/if_imphost.h
*** /usr/src/oldsys/netimp/if_imphost.h	Mon Jul  4 12:27:28 1988
--- /usr/src/sys/netimp/if_imphost.h	Wed Apr 11 16:10:28 1990
***************
*** 46,54 ****
   * automatically at the time a structure is free'd.
   */
  #define	HPMBUF	((MLEN - sizeof(int)) / sizeof(struct host))
- #if vax
  #define	HOSTHASH(a)	((((a).s_addr>>8)+(a).s_net) % HPMBUF)
- #endif
  
  /*
   * In-line expansions for queuing operations on
--- 46,52 ----
diff -r /usr/src/oldsys/pdpif/if_acc.c /usr/src/sys/pdpif/if_acc.c
22a23
> #include "domain.h"
116c117
< 	if ((ifimp = (struct ifimpcb *)impattach(ui)) == 0)
---
> 	if ((ifimp = (struct ifimpcb *)impattach(ui, accreset)) == 0)
287d287
< 	MAPSAVE();
308d307
< 	MAPREST();
322d320
< 	MAPSAVE();
389d386
< 	MAPREST();
diff -r /usr/src/oldsys/pdpif/if_css.c /usr/src/sys/pdpif/if_css.c
42a43
> #include "domain.h"
138c139
< 	if ((ifimp = (struct ifimpcb *)impattach(ui)) == 0)
---
> 	if ((ifimp = (struct ifimpcb *)impattach(ui, cssreset)) == 0)
305d305
< 	MAPSAVE();
327d326
< 	MAPREST();
342d340
< 	MAPSAVE();
401d398
< 	MAPREST();
diff -r /usr/src/oldsys/pdpif/if_dmc.c /usr/src/sys/pdpif/if_dmc.c
24a25
> #include "ioctl.h"
25a27
> #include "domain.h"
34a37
> #include "netinet/in_var.h"
36a40
> #include "net/netisr.h"
125,129d128
< 	sc->sc_if.if_net = (ui->ui_flags & DMC_NET) >> 8;
< 	sc->sc_if.if_host[0] = 17;	/* random number */
< 	sin = (struct sockaddr_in *)&sc->sc_if.if_addr;
< 	sin->sin_family = AF_INET;
< 	sin->sin_addr = if_makeaddr(sc->sc_if.if_net, sc->sc_if.if_host[0]);
132c131,132
< 	sc->sc_if.if_ubareset = dmcreset;
---
> 	sc->sc_if.if_reset = dmcreset;
> 	sc->sc_if.if_flags = IFF_POINTOPOINT;
187,191d186
< 	/* set up routing table entry */
< 	if ((sc->sc_if.if_flags & IFF_ROUTE) == 0) {
< 		rtinit(&sc->sc_if.if_addr, &sc->sc_if.if_addr, RTF_HOST|RTF_UP);
< 		sc->sc_if.if_flags |= IFF_ROUTE;
< 	}
220c215
< 	printd("mr 0x%x\n", sc->sc_ifuba.ifu_w.ifrw_mr[0]);
---
> 	printd("mr 0x%lx\n", sc->sc_ifuba.ifu_w.ifrw_info);
314c309
< 		switch (ui->ui_flags & DMC_AF) {
---
> 		switch (sc->sc_flag & DMC_AF) {
324c319
< 			    ui->ui_flags & DMC_AF);
---
> 			    sc->sc_flag & DMC_AF);
392,393c387,388
< 	if (dst->sa_family != (ui->ui_flags & DMC_AF)) {
< 		printf("dmc%d: af%d not supported\n", ifp->if_unit, pf);
---
> 	if (dst->sa_family != AF_INET) {
> 		printf("dmc%d: af%d not supported\n", ifp->if_unit, AF_INET);
diff -r /usr/src/oldsys/pdpif/if_sri.c /usr/src/sys/pdpif/if_sri.c
19a20
> #include "domain.h"
37,43c38,39
< #if pdp11
< #define IFRADDR MBX
< #define IFWADDR MBX
< #else
< #define IFRADDR sc->sri_ifuba.ifu_r.ifrw_addr
< #define IFWADDR sc->sri_ifuba.ifu_w.ifrw_addr
< #endif
---
> #define IFRADDR sc->sri_ifuba.ifu_r.ifrw_info
> #define IFWADDR sc->sri_ifuba.ifu_w.ifrw_info
135c131
< 	if ((ifimp = (struct ifimpcb *)impattach(ui)) == 0)
---
> 	if ((ifimp = (struct ifimpcb *)impattach(ui, srireset)) == 0)
142c138
< 	sc->sri_if->if_ubareset = srireset;
---
> 	sc->sri_if->if_reset = srireset;
232c228
< 	sc->sri_iba = IFRADDR;
---
> 	sc->sri_iba = (char *)IFRADDR;
271,272d266
< 	MAPSAVE();
< 	mapseg5(sc->sri_oclick, MBMAPSIZE);
274c268
< 	sc->sri_oba = IFWADDR;
---
> 	sc->sri_oba = (char *)IFWADDR;
281d274
< 	MAPREST();
294,295d286
< 	MAPSAVE();
< 	mapseg5(sc->sri_oclick, MBMAPSIZE);
328c319
< 	MAPREST();
---
> 	return;
343,344d333
< 	MAPSAVE();
< 	mapseg5(sc->sri_iclick, MBMAPSIZE);
428c417
< 	sc->sri_iba = IFRADDR;
---
> 	sc->sri_iba = (char *)IFRADDR;
433c422
< 	MAPREST();
---
> 	return;
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads