⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ue_intr.c,v

📁 用TCP/IP进行网际互连这本书得源代码,偶得,希望大家喜欢.推荐下载
💻 C,V
字号:
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_intr.c - ue_intr */#include <conf.h>#include <kernel.h>#include <network.h>#include <ue.h>/*------------------------------------------------------------------------ * ue_intr - handle an SMC Ultra Ethernet device interrupt *------------------------------------------------------------------------ */intue_intr(){	struct utdev	*pud;	static int	next;	struct ep	*pep;	int		i;	unsigned int	csr, intstat;	pud = 0;	for (i=0; i<Neth; ++i, ++next) {		if (next >= Neth)			next = 0;		if (intstat = ue_hasintr(&ue[next])) {			pud = &ue[next];			break;		}	}	if (pud == 0)		return;	csr = pud->ud_pdev->dvcsr;	uewr(csr, W_INTMASK, 0);	uewr(csr, INTSTAT, intstat);	/* clear the interrupt */	if (intstat & INTSTAT_PTX)		ue_xintr(pud, intstat & INTSTAT_TXE);	if (intstat & INTSTAT_RXE)		kprintf("receive error, rstat %x\n", uerd(csr, RSTAT));	if (intstat & INTSTAT_TXE)		kprintf("receive error, rstat %x\n", uerd(csr, TSTAT));	uewr(csr, W_INTMASK, 0x7f);	if (intstat & INTSTAT_PRX)		ue_demux(pud);}/*------------------------------------------------------------------------ * ue_hasintr - return true if this ue device has a pending interrupt *------------------------------------------------------------------------ */intue_hasintr(pud)struct utdev	*pud;{	return uerd(pud->ud_pdev->dvcsr, INTSTAT);}/*------------------------------------------------------------------------ * ue_xintr - handle a transmit interrupt on an SMC Ultra Ethernet *------------------------------------------------------------------------ */intue_xintr(pud, err)struct utdev	*pud;{	if (err) {kprintf("transmit error\n");	}	pud->ud_xpending--;	if (lenq(pud->ud_outq))		ue_wstrt(pud);}@1.1log@Initial revision@text@a34 2	if (intstat & INTSTAT_PRX)		ue_demux(pud, pud->ud_nextbuf);d42 2@

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -