ue_wstrt.c,v
来自「用TCP/IP进行网际互连这本书得源代码,偶得,希望大家喜欢.推荐下载」· C,V 代码 · 共 99 行
C,V
99 行
head 1.2;access;symbols;locks dls:1.2; strict;comment @ * @;1.2date 97.09.21.19.26.10; author dls; state Dist;branches;next 1.1;1.1date 94.08.04.20.19.17; author dls; state Orig;branches;next ;desc@@1.2log@pre-3e code@text@/* ue_wstrt.c - ue_wstrt */#include <conf.h>#include <kernel.h>#include <network.h>#include <ue.h>/*------------------------------------------------------------------------ * ue_wstrt - start output on an SMC Ultra Ethernet device *------------------------------------------------------------------------ */intue_wstrt(pud)struct utdev *pud;{ STATWORD ps; unsigned char *xmbuf; /* transmit buffer address */ unsigned int xmaddr; /* transmit buf addr to card */ unsigned int csr; struct ep *pep; int len, isbcast; disable(ps); if (pud->ud_xpending) { restore(ps); return OK; } pud->ud_xpending++; pep = (struct ep *)deq(pud->ud_outq); if (pep == 0) { pud->ud_xpending--; restore(ps); return OK; } isbcast = blkequ(pep->ep_dst, pud->ud_bcast, EP_ALEN); len = pep->ep_len; /* this version supports one packet per interrupt only */ xmaddr = pud->ud_xmaddr; xmbuf = (unsigned char *) (pud->ud_iomem + xmaddr * UE_BUFSIZE); pud->ud_wretry = EP_RETRY; blkcopy(xmbuf, &pep->ep_eh, pep->ep_len); csr = pud->ud_pdev->dvcsr; uewr(csr, W_TSTARTH, xmaddr); uewr(csr, W_TCNTH, (len >> 8) & 0xff); uewr(csr, W_TCNTL, len & 0xff); uewr(csr, CMD, uerd(csr, CMD) | CMD_TXP); restore(ps); freebuf(pep); if (isbcast) nif[pud->ud_ifnum].ni_onucast++; else nif[pud->ud_ifnum].ni_oucast++; nif[pud->ud_ifnum].ni_ooctets += len;}@1.1log@Initial revision@text@a7 2static count = 0;d39 1a39 1 xmaddr = UE_NRX*6;@
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?