Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!brl-adm!brl-smoke!smoke!eichelbe@nadc.arpa From: eichelbe@nadc.arpa Newsgroups: net.unix-wizards Subject: UDA driver query Message-ID: <1986@brl-smoke.ARPA> Date: Fri, 21-Mar-86 09:58:53 EST Article-I.D.: brl-smok.1986 Posted: Fri Mar 21 09:58:53 1986 Date-Received: Tue, 25-Mar-86 03:04:32 EST Sender: news@brl-smoke.ARPA Lines: 56 --- Here's a problem that asks wizards to test out their long-term memory. I have a VAX 11/780 under 4.1 BSD UNIX and I have a version of a supposedly 4.1 BSD UNIX uda.c (UDA50/RA81) driver that compiles but for one error. In the routine udprobe (which is shown below) there is a reference to a variable uh_lastiv in the uba_hd structure. This structure is in the header file /sys/h/ubavar.h, but I don't find a uh_lastiv in the structure. Here come the questions: (1) What is uh_lastiv supposed to do? (2) Can I (and how if I can) change udprobe to get rid of the uh_lastiv reference safely? (3) If I can't get rid of the reference, how should I change the uba_hd structure in /sys/h/ubavar.h so I too can use uh_lastiv, and if I do this will I have to change any code anywhere else in the kernel, etc. ? (This last part, about changes to other code, is important since I am really at a loss here. If someone could just do a grep for uh_lastiv through the system code if you have uh_lastiv in your /sys/h/ubavar.h.) --- udprobe(reg, ctlr) caddr_t reg; int ctlr; { register int br, cvec; register struct uda_softc *sc = &uda_softc[ctlr]; #ifdef lint br = 0; cvec = br; br = cvec; #endif /* SHOULD CHECK THAT IT REALLY IS A UDA */ br = 0x15; cvec = sc->sc_ivec = (uba_hd[numuba].uh_lastiv -= 4); return(1); } --- Oh, and here's uba_hd, extracted from /sys/h/ubavar.h. --- struct uba_hd { struct uba_regs *uh_uba; /* virt addr of uba */ struct uba_regs *uh_physuba; /* phys addr of uba */ int (**uh_vec)(); /* interrupt vector */ struct uba_device *uh_actf; /* head of queue to transfer */ struct uba_device *uh_actl; /* tail of queue to transfer */ short uh_mrwant; /* someone is waiting for map reg */ short uh_bdpwant; /* someone awaits bdp's */ int uh_bdpfree; /* free bdp's */ int uh_hangcnt; /* number of ticks hung */ int uh_zvcnt; /* number of 0 vectors */ short uh_users; /* transient bdp use count */ short uh_xclu; /* an rk07 is using this uba! */ #define UAMSIZ 25 struct map *uh_map; /* buffered data path regs free */ }; --- Thanks. Jon Eichelberger eichelbe@NADC.ARPA