亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? skaddr.c

?? U-boot latest tarball
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
	default:	/* error */		break;	}	return (SK_ADDR_SUCCESS);}	/* SkAddrInit *//****************************************************************************** * *	SkAddrMcClear - clear the multicast table * * Description: *	This routine clears the multicast table. * *	If not suppressed by Flag SK_MC_SW_ONLY, the hardware is updated *	immediately. * *	It calls either SkAddrXmacMcClear or SkAddrGmacMcClear, according *	to the adapter in use. The real work is done there. * * Context: *	runtime, pageable *	may be called starting with SK_INIT_DATA with flag SK_MC_SW_ONLY *	may be called after SK_INIT_IO without limitation * * Returns: *	SK_ADDR_SUCCESS *	SK_ADDR_ILLEGAL_PORT */int	SkAddrMcClear(SK_AC	*pAC,		/* adapter context */SK_IOC	IoC,		/* I/O context */SK_U32	PortNumber,	/* Index of affected port */int		Flags)		/* permanent/non-perm, sw-only */{	int ReturnCode;	if (PortNumber >= (SK_U32) pAC->GIni.GIMacsFound) {		return (SK_ADDR_ILLEGAL_PORT);	}	if (pAC->GIni.GIChipId == CHIP_ID_GENESIS) {		ReturnCode = SkAddrXmacMcClear(pAC, IoC, PortNumber, Flags);	}	else {		ReturnCode = SkAddrGmacMcClear(pAC, IoC, PortNumber, Flags);	}	return (ReturnCode);}	/* SkAddrMcClear *//****************************************************************************** * *	SkAddrXmacMcClear - clear the multicast table * * Description: *	This routine clears the multicast table *	(either entry 2 or entries 3-16 and InexactFilter) of the given port. *	If not suppressed by Flag SK_MC_SW_ONLY, the hardware is updated *	immediately. * * Context: *	runtime, pageable *	may be called starting with SK_INIT_DATA with flag SK_MC_SW_ONLY *	may be called after SK_INIT_IO without limitation * * Returns: *	SK_ADDR_SUCCESS *	SK_ADDR_ILLEGAL_PORT */int	SkAddrXmacMcClear(SK_AC	*pAC,		/* adapter context */SK_IOC	IoC,		/* I/O context */SK_U32	PortNumber,	/* Index of affected port */int		Flags)		/* permanent/non-perm, sw-only */{	int i;	if (Flags & SK_ADDR_PERMANENT) {	/* permanent => RLMT */		/* Clear RLMT multicast addresses. */		pAC->Addr.Port[PortNumber].NextExactMatchRlmt = SK_ADDR_FIRST_MATCH_RLMT;	}	else {	/* not permanent => DRV */		/* Clear InexactFilter */		for (i = 0; i < 8; i++) {			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[i] = 0;		}		/* Clear DRV multicast addresses. */		pAC->Addr.Port[PortNumber].NextExactMatchDrv = SK_ADDR_FIRST_MATCH_DRV;	}	if (!(Flags & SK_MC_SW_ONLY)) {		(void) SkAddrXmacMcUpdate(pAC, IoC, PortNumber);	}	return (SK_ADDR_SUCCESS);}	/* SkAddrXmacMcClear *//****************************************************************************** * *	SkAddrGmacMcClear - clear the multicast table * * Description: *	This routine clears the multicast hashing table (InexactFilter) *	(either the RLMT or the driver bits) of the given port. * *	If not suppressed by Flag SK_MC_SW_ONLY, the hardware is updated *	immediately. * * Context: *	runtime, pageable *	may be called starting with SK_INIT_DATA with flag SK_MC_SW_ONLY *	may be called after SK_INIT_IO without limitation * * Returns: *	SK_ADDR_SUCCESS *	SK_ADDR_ILLEGAL_PORT */int	SkAddrGmacMcClear(SK_AC	*pAC,		/* adapter context */SK_IOC	IoC,		/* I/O context */SK_U32	PortNumber,	/* Index of affected port */int		Flags)		/* permanent/non-perm, sw-only */{	int i;#ifdef DEBUG	SK_DBG_MSG(pAC, SK_DBGMOD_ADDR, SK_DBGCAT_CTRL,		("GMAC InexactFilter (not cleared): %02X %02X %02X %02X %02X %02X %02X %02X\n",			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[0],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[1],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[2],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[3],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[4],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[5],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[6],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[7]))#endif	/* DEBUG */	/* Clear InexactFilter */	for (i = 0; i < 8; i++) {		pAC->Addr.Port[PortNumber].InexactFilter.Bytes[i] = 0;	}	if (Flags & SK_ADDR_PERMANENT) {	/* permanent => RLMT */		/* Copy DRV bits to InexactFilter. */		for (i = 0; i < 8; i++) {			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[i] |=				pAC->Addr.Port[PortNumber].InexactDrvFilter.Bytes[i];			/* Clear InexactRlmtFilter. */			pAC->Addr.Port[PortNumber].InexactRlmtFilter.Bytes[i] = 0;		}	}	else {	/* not permanent => DRV */		/* Copy RLMT bits to InexactFilter. */		for (i = 0; i < 8; i++) {			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[i] |=				pAC->Addr.Port[PortNumber].InexactRlmtFilter.Bytes[i];			/* Clear InexactDrvFilter. */			pAC->Addr.Port[PortNumber].InexactDrvFilter.Bytes[i] = 0;		}	}#ifdef DEBUG	SK_DBG_MSG(pAC, SK_DBGMOD_ADDR, SK_DBGCAT_CTRL,		("GMAC InexactFilter (cleared): %02X %02X %02X %02X %02X %02X %02X %02X\n",			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[0],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[1],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[2],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[3],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[4],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[5],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[6],			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[7]))#endif	/* DEBUG */	if (!(Flags & SK_MC_SW_ONLY)) {		(void) SkAddrGmacMcUpdate(pAC, IoC, PortNumber);	}	return (SK_ADDR_SUCCESS);}	/* SkAddrGmacMcClear */#ifndef SK_ADDR_CHEAT/****************************************************************************** * *	SkXmacMcHash - hash multicast address * * Description: *	This routine computes the hash value for a multicast address. *	A CRC32 algorithm is used. * * Notes: *	The code was adapted from the XaQti data sheet. * * Context: *	runtime, pageable * * Returns: *	Hash value of multicast address. */SK_U32 SkXmacMcHash(unsigned char *pMc)	/* Multicast address */{	SK_U32 Idx;	SK_U32 Bit;	SK_U32 Data;	SK_U32 Crc;	Crc = 0xFFFFFFFFUL;	for (Idx = 0; Idx < SK_MAC_ADDR_LEN; Idx++) {		Data = *pMc++;		for (Bit = 0; Bit < 8; Bit++, Data >>= 1) {			Crc = (Crc >> 1) ^ (((Crc ^ Data) & 1) ? XMAC_POLY : 0);		}	}	return (Crc & ((1 << HASH_BITS) - 1));}	/* SkXmacMcHash *//****************************************************************************** * *	SkGmacMcHash - hash multicast address * * Description: *	This routine computes the hash value for a multicast address. *	A CRC16 algorithm is used. * * Notes: * * * Context: *	runtime, pageable * * Returns: *	Hash value of multicast address. */SK_U32 SkGmacMcHash(unsigned char *pMc)	/* Multicast address */{	SK_U32 Data;	SK_U32 TmpData;	SK_U32 Crc;	int Byte;	int Bit;	Crc = 0xFFFFFFFFUL;	for (Byte = 0; Byte < 6; Byte++) {		/* Get next byte. */		Data = (SK_U32) pMc[Byte];		/* Change bit order in byte. */		TmpData = Data;		for (Bit = 0; Bit < 8; Bit++) {			if (TmpData & 1L) {				Data |=  1L << (7 - Bit);			}			else {				Data &= ~(1L << (7 - Bit));			}			TmpData >>= 1;		}		Crc ^= (Data << 24);		for (Bit = 0; Bit < 8; Bit++) {			if (Crc & 0x80000000) {				Crc = (Crc << 1) ^ GMAC_POLY;			}			else {				Crc <<= 1;			}		}	}	return (Crc & ((1 << HASH_BITS) - 1));}	/* SkGmacMcHash */#endif	/* not SK_ADDR_CHEAT *//****************************************************************************** * *	SkAddrMcAdd - add a multicast address to a port * * Description: *	This routine enables reception for a given address on the given port. * *	It calls either SkAddrXmacMcAdd or SkAddrGmacMcAdd, according to the *	adapter in use. The real work is done there. * * Notes: *	The return code is only valid for SK_PROM_MODE_NONE. * * Context: *	runtime, pageable *	may be called after SK_INIT_DATA * * Returns: *	SK_MC_FILTERING_EXACT *	SK_MC_FILTERING_INEXACT *	SK_MC_ILLEGAL_ADDRESS *	SK_MC_ILLEGAL_PORT *	SK_MC_RLMT_OVERFLOW */int	SkAddrMcAdd(SK_AC		*pAC,		/* adapter context */SK_IOC		IoC,		/* I/O context */SK_U32		PortNumber,	/* Port Number */SK_MAC_ADDR	*pMc,		/* multicast address to be added */int			Flags)		/* permanent/non-permanent */{	int ReturnCode;	if (PortNumber >= (SK_U32) pAC->GIni.GIMacsFound) {		return (SK_ADDR_ILLEGAL_PORT);	}	if (pAC->GIni.GIChipId == CHIP_ID_GENESIS) {		ReturnCode = SkAddrXmacMcAdd(pAC, IoC, PortNumber, pMc, Flags);	}	else {		ReturnCode = SkAddrGmacMcAdd(pAC, IoC, PortNumber, pMc, Flags);	}	return (ReturnCode);}	/* SkAddrMcAdd *//****************************************************************************** * *	SkAddrXmacMcAdd - add a multicast address to a port * * Description: *	This routine enables reception for a given address on the given port. * * Notes: *	The return code is only valid for SK_PROM_MODE_NONE. * *	The multicast bit is only checked if there are no free exact match *	entries. * * Context: *	runtime, pageable *	may be called after SK_INIT_DATA * * Returns: *	SK_MC_FILTERING_EXACT *	SK_MC_FILTERING_INEXACT *	SK_MC_ILLEGAL_ADDRESS *	SK_MC_RLMT_OVERFLOW */int	SkAddrXmacMcAdd(SK_AC		*pAC,		/* adapter context */SK_IOC		IoC,		/* I/O context */SK_U32		PortNumber,	/* Port Number */SK_MAC_ADDR	*pMc,		/* multicast address to be added */int		Flags)		/* permanent/non-permanent */{	int	i;	SK_U8	Inexact;#ifndef SK_ADDR_CHEAT	SK_U32 HashBit;#endif	/* !defined(SK_ADDR_CHEAT) */	if (Flags & SK_ADDR_PERMANENT) {	/* permanent => RLMT */#ifdef xDEBUG		if (pAC->Addr.Port[PortNumber].NextExactMatchRlmt <			SK_ADDR_FIRST_MATCH_RLMT) {			Next0[PortNumber] |= 1;			return (SK_MC_RLMT_OVERFLOW);		}#endif	/* DEBUG */		if (pAC->Addr.Port[PortNumber].NextExactMatchRlmt >			SK_ADDR_LAST_MATCH_RLMT) {			return (SK_MC_RLMT_OVERFLOW);		}		/* Set a RLMT multicast address. */		pAC->Addr.Port[PortNumber].Exact[			pAC->Addr.Port[PortNumber].NextExactMatchRlmt++] = *pMc;		return (SK_MC_FILTERING_EXACT);	}#ifdef xDEBUG	if (pAC->Addr.Port[PortNumber].NextExactMatchDrv <		SK_ADDR_FIRST_MATCH_DRV) {			Next0[PortNumber] |= 2;		return (SK_MC_RLMT_OVERFLOW);	}#endif	/* DEBUG */	if (pAC->Addr.Port[PortNumber].NextExactMatchDrv <= SK_ADDR_LAST_MATCH_DRV) {		/* Set exact match entry. */		pAC->Addr.Port[PortNumber].Exact[			pAC->Addr.Port[PortNumber].NextExactMatchDrv++] = *pMc;		/* Clear InexactFilter */		for (i = 0; i < 8; i++) {			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[i] = 0;		}	}	else {		if (!(pMc->a[0] & SK_MC_BIT)) {			/* Hashing only possible with multicast addresses. */			return (SK_MC_ILLEGAL_ADDRESS);		}#ifndef SK_ADDR_CHEAT		/* Compute hash value of address. */		HashBit = 63 - SkXmacMcHash(&pMc->a[0]);		/* Add bit to InexactFilter. */		pAC->Addr.Port[PortNumber].InexactFilter.Bytes[HashBit / 8] |=			1 << (HashBit % 8);#else	/* SK_ADDR_CHEAT */		/* Set all bits in InexactFilter. */		for (i = 0; i < 8; i++) {			pAC->Addr.Port[PortNumber].InexactFilter.Bytes[i] = 0xFF;		}#endif	/* SK_ADDR_CHEAT */	}	for (Inexact = 0, i = 0; i < 8; i++) {		Inexact |= pAC->Addr.Port[PortNumber].InexactFilter.Bytes[i];	}	if (Inexact == 0 && pAC->Addr.Port[PortNumber].PromMode == 0) {		return (SK_MC_FILTERING_EXACT);	}	else {		return (SK_MC_FILTERING_INEXACT);	}}	/* SkAddrXmacMcAdd *//****************************************************************************** * *	SkAddrGmacMcAdd - add a multicast address to a port * * Description: *	This routine enables reception for a given address on the given port. * * Notes: *	The return code is only valid for SK_PROM_MODE_NONE. *

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区免费在线观看视频| 欧美国产乱子伦| 日本道在线观看一区二区| 5566中文字幕一区二区电影| 欧美激情一区二区三区蜜桃视频| 日韩精品亚洲专区| 成人免费视频国产在线观看| 91精品国产综合久久精品麻豆| 亚洲天堂精品视频| 激情五月播播久久久精品| 欧美在线观看你懂的| 国产精品久久久久久久久久久免费看| 另类小说图片综合网| 欧美日韩一区不卡| 亚洲天堂免费看| 高清成人免费视频| 精品99一区二区| 日本欧美久久久久免费播放网| 色www精品视频在线观看| 国产精品色呦呦| 国产九色精品成人porny | 韩国av一区二区三区在线观看| 欧美三级资源在线| 亚洲欧美精品午睡沙发| 成人三级伦理片| 久久久久久夜精品精品免费| 老司机午夜精品| 日韩一区二区影院| 亚洲精品一二三| 不卡一区二区三区四区| 国产欧美日产一区| 国产久卡久卡久卡久卡视频精品| 欧美成人猛片aaaaaaa| 日产欧产美韩系列久久99| 欧美日韩国产综合一区二区| 亚洲一区二区五区| 欧洲精品视频在线观看| 一区二区三区精品| 日本韩国视频一区二区| 一区二区三区中文字幕| 在线视频你懂得一区二区三区| 亚洲婷婷国产精品电影人久久| av在线不卡观看免费观看| 国产精品美女久久久久久久久| 国产成a人无v码亚洲福利| 国产亚洲成aⅴ人片在线观看| 国产精品一线二线三线| 久久九九全国免费| 成人深夜视频在线观看| 中文字幕亚洲电影| 色94色欧美sute亚洲线路二 | 色婷婷国产精品综合在线观看| 一色屋精品亚洲香蕉网站| 成人晚上爱看视频| 国产精品久久久久久久久久久免费看 | 亚洲女女做受ⅹxx高潮| 色婷婷久久久综合中文字幕| 一区二区三区在线视频免费 | 99热国产精品| 亚洲男同性视频| 欧美三片在线视频观看| 日韩电影在线观看一区| 欧美变态口味重另类| 国产在线播放一区三区四| 国产欧美视频在线观看| 91美女在线视频| 亚洲国产精品久久一线不卡| 欧美一区二区视频在线观看| 激情文学综合插| 国产精品不卡一区二区三区| 欧美综合一区二区三区| 日本成人中文字幕在线视频| 久久伊人蜜桃av一区二区| fc2成人免费人成在线观看播放| 亚洲激情网站免费观看| 欧美一区二区成人| 国产乱子轮精品视频| 成人免费一区二区三区视频| 欧美日韩精品欧美日韩精品一| 美女脱光内衣内裤视频久久网站 | 欧美影视一区二区三区| 蜜臀精品一区二区三区在线观看 | 亚洲一区二区视频在线观看| 欧美一区二区三区精品| 国产成人精品www牛牛影视| 国产精品欧美一区二区三区| 欧美性videosxxxxx| 久久av资源站| 亚洲精品美腿丝袜| 日韩精品一区二区三区四区视频 | 七七婷婷婷婷精品国产| 日本一区二区视频在线| 欧美一区二区视频观看视频| 日韩成人一区二区三区在线观看| 久久久国产午夜精品| 91国偷自产一区二区使用方法| 蜜桃av一区二区| 亚洲桃色在线一区| 欧美va在线播放| 99精品视频在线观看免费| 喷白浆一区二区| 一区二区三区欧美激情| 精品久久久久久亚洲综合网| 91性感美女视频| 精品无码三级在线观看视频 | 欧美mv日韩mv国产网站app| 99在线视频精品| 久久精品国产一区二区三| 亚洲欧美日韩久久| 久久免费午夜影院| 欧美日本一区二区在线观看| 国产99精品国产| 免费高清在线视频一区·| 亚洲日本欧美天堂| 国产无人区一区二区三区| 91精品中文字幕一区二区三区| 99视频超级精品| 国产成人精品亚洲日本在线桃色| 日韩专区欧美专区| 亚洲美女视频在线| 久久久五月婷婷| 欧美一级黄色大片| 欧美午夜免费电影| 91最新地址在线播放| 国产精品 日产精品 欧美精品| 亚洲成av人片www| 亚洲欧美色综合| 国产精品青草久久| 久久综合成人精品亚洲另类欧美 | 国产成人精品www牛牛影视| 蜜桃视频在线观看一区二区| 亚洲女同ⅹxx女同tv| 欧美国产精品中文字幕| 久久久久国产精品麻豆ai换脸| 91麻豆精品国产自产在线| 欧美四级电影在线观看| 97久久超碰国产精品| 国产91在线观看丝袜| 国产美女av一区二区三区| 日产欧产美韩系列久久99| 视频一区在线播放| 亚洲一级在线观看| 一区二区在线观看av| 亚洲天堂久久久久久久| 亚洲图片你懂的| 国产精品久久久久影视| 欧美经典一区二区| 国产肉丝袜一区二区| 久久免费视频一区| 亚洲精品一线二线三线| 精品久久久久久综合日本欧美| 日韩精品一区二区在线| 日韩一区二区三区高清免费看看| 国产色一区二区| 欧美性感一区二区三区| 欧美视频在线一区| 欧美午夜电影一区| 欧美日韩一区在线观看| 欧美日韩在线观看一区二区 | 国产成人久久精品77777最新版本| 久久99国产精品成人| 精品综合免费视频观看| 日本亚洲免费观看| 免费高清在线视频一区·| 麻豆高清免费国产一区| 六月丁香综合在线视频| 精品亚洲porn| 国产成人一级电影| 成人黄色一级视频| 91女厕偷拍女厕偷拍高清| 日本韩国欧美三级| 制服丝袜中文字幕一区| 欧美成人在线直播| 久久久精品免费观看| 国产视频911| 亚洲乱码国产乱码精品精98午夜| 亚洲影院免费观看| 日韩无一区二区| 精品国产污网站| 中文幕一区二区三区久久蜜桃| 中文字幕中文字幕在线一区| 亚洲黄色尤物视频| 视频在线在亚洲| 国产一区二区美女| jiyouzz国产精品久久| 日本大香伊一区二区三区| 欧美日韩成人综合在线一区二区| 日韩一区二区在线看| 久久夜色精品国产噜噜av| 国产精品久久久久久久久搜平片 | 亚洲特黄一级片| 亚洲另类色综合网站| 石原莉奈一区二区三区在线观看| 麻豆精品国产传媒mv男同| 国产激情精品久久久第一区二区| 91在线观看高清| 538在线一区二区精品国产| www激情久久| 亚洲免费观看高清完整版在线观看熊 | 26uuu色噜噜精品一区|