|
|
1.1 root 1: /* ethwstrt.c - ethwstrt */
2:
3: #include <conf.h>
4: #include <kernel.h>
5: #include <proc.h>
6: #include <network.h>
7: #include <qbus.h>
8:
9: /*------------------------------------------------------------------------
10: * ethwstrt - start an ethernet write operation on the DEQNA
11: *------------------------------------------------------------------------
12: */
13:
14: ethwstrt(etptr, buf, len, setup)
15: struct etblk *etptr;
16: char *buf;
17: int len;
18: int setup;
19: {
20: register struct dcmd *dcmptr;
21: register struct dqregs *dqptr;
22:
23: dqptr = etptr->eioaddr;
24: while (! (dqptr->d_csr & DQ_XLI) )
25: ;
26: etptr->etwtry = EXRETRY;
27: dcmptr = etptr->ewcmd;
28: dcmptr->dc_bufh = DC_VALID | DC_ENDM | (etptr->etsetup = setup) |
29: hiQ2low(buf);
30: if (isodd(len))
31: dcmptr->dc_bufh |= DC_LBIT;
32: dcmptr->dc_buf = (short) buf;
33: dcmptr->dc_len = dqlen(len);
34: dcmptr->dc_st1 = dcmptr->dc_st2 = DC_INIT;
35: dcmptr->dc_flag = DC_NUSED;
36: dqptr->d_wcmd = (short) dcmptr;
37: dqptr->d_wcmdh = hiQ2low(dcmptr);
38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.