|
|
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.