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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ethermultilib.c

?? vxworks的完整的源代碼
?? C
字號:
/* etherMultiLib.c - a library to handle Ethernet multicast addresses *//* Copyright 1984 - 2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01h,15oct01,rae  merge from truestack ver 01j, base o1g01g,14dec97,jdi  doc: cleanup.01f,10dec97,kbw  making minor man page fixes01e,25oct97,kbw  making minor man page fixes01d,26aug97,spm  removed compiler warnings (SPR #7866)01c,23oct96,gnn  changed names to follow coding standards; removed some                  compiler warnings01b,22oct96,gnn  changed printfs to logMsgs01a,29mar96,gnn  taken from BSD 4.4 code*/ /*DESCRIPTIONThis library manages a list of multicast addresses for networkdrivers.  This abstracts the management of these drivers into a deviceindependant library.To use this feature, include the following component:INCLUDE_NETWRS_ETHERMULTILIBINCLUDE FILES: string.h, errno.h, netinet/in.h, net/if.h, lstLib.h,etherMultiLib.h*//* includes */#include "vxWorks.h"#include "logLib.h"#include "string.h"#include "errno.h"#include "netinet/in.h"#include "net/if.h"#include "lstLib.h"#include "end.h"#include "etherMultiLib.h"#include "stdlib.h"#include "memPartLib.h"/* defints *//* typedefs *//* globals */int etherMultiDebug = 0;/* locals *//* forward declarations *//******************************************************************************* etherMultiAdd - add multicast address to a multicast address list** This routine adds an Ethernet multicast address list for a given END.* The address is a six-byte value pointed to by <pAddress>.* * RETURNS: OK or ENETRESET.*/int etherMultiAdd    (    LIST *pList,    /* pointer to list of multicast addresses */    char* pAddress  /* address you want to add to list */    )    {	    	    ETHER_MULTI* pCurr;    /*     * Verify that we have valid Ethernet multicast addresses.     */    if ((pAddress[0] & 0x01) != 1) {	if (etherMultiDebug)	    logMsg("Invalid address!\n", 1, 2, 3, 4, 5, 6);	return (EINVAL);    }    /*     * See if the address range is already in the list.     */    for (pCurr = (ETHER_MULTI *)lstFirst(pList); pCurr != NULL && 	    (bcmp(pCurr->addr, pAddress, 6) != 0); 	    pCurr = (ETHER_MULTI *)lstNext(&pCurr->node));         if (pCurr != NULL) {	/*	 * Found it; just increment the reference count.	 */	if (etherMultiDebug)	    logMsg("Address already exists!\n", 1, 2, 3, 4, 5, 6);	++pCurr->refcount;	return (0);    }    /*     * New address or range; malloc a new multicast record     * and link it into the interface's multicast list.     */    pCurr = (ETHER_MULTI *) KHEAP_ALLOC(sizeof(ETHER_MULTI));    if (pCurr == NULL) {	if (etherMultiDebug)	    logMsg("Cannot allocate memory!\n", 1, 2, 3, 4, 5, 6);	return (ENOBUFS);    }    bcopy((char *)pAddress, (char *)pCurr->addr, 6);    pCurr->refcount = 1;    lstAdd(pList, &pCurr->node);    if (etherMultiDebug)	{	logMsg("Added address is %x:%x:%x:%x:%x:%x\n",	    pCurr->addr[0],	    pCurr->addr[1],	    pCurr->addr[2],	    pCurr->addr[3],	    pCurr->addr[4],	    pCurr->addr[5]);	}    /*     * Return ENETRESET to inform the driver that the list has changed     * and its reception filter should be adjusted accordingly.     */    return (ENETRESET);    }/******************************************************************************* etherMultiDel - delete an Ethernet multicast address record** This routine deletes an Ethernet multicast address from the list.* The address is a six-byte value pointed to by <pAddress>.* * RETURNS: OK or ENETRESET.*/int etherMultiDel    (    LIST *pList,    /* pointer to list of multicast addresses */    char* pAddress  /* address you want to add to list */    )    {    ETHER_MULTI* pCurr;    /*     * Look up the address in our list.     */    for (pCurr = (ETHER_MULTI *)lstFirst(pList); pCurr != NULL && 	    (bcmp(pCurr->addr, pAddress, 6) != 0); 	    pCurr = (ETHER_MULTI *)lstNext(&pCurr->node));         if (pCurr == NULL) {	    return (ENXIO);    }    if (--pCurr->refcount != 0) {	    /*	     * Still some claims to this record.	     */	    return (0);    }    /*     * No remaining claims to this record; unlink and free it.     */    lstDelete(pList, &pCurr->node);    KHEAP_FREE((char *)pCurr);    /*     * Return ENETRESET to inform the driver that the list has changed     * and its reception filter should be adjusted accordingly.     */    return (ENETRESET);    }/****************************************************************************** * etherMultiGet - retrieve a table of multicast addresses from a driver** This routine runs down the multicast address list stored in a driver* and places all the entries it finds into the multicast table* structure passed to it.** RETURNS: OK or ERROR.*/int etherMultiGet    (    LIST* pList,        /* pointer to list of multicast addresses */    MULTI_TABLE* pTable /* table into which to copy addresses */    )    {	    int count = 0;    int len;    ETHER_MULTI* pCurr;    len = pTable->len;	/* Save the passed in table length. */    pTable->len = 0;	    pCurr = (ETHER_MULTI *)lstFirst(pList);    while (pCurr != NULL && count < len)	{	if (etherMultiDebug)	    {	    logMsg("%x:%x:%x:%x:%x:%x\n", 		pCurr->addr[0], 		pCurr->addr[1], 		pCurr->addr[2], 		pCurr->addr[3],		pCurr->addr[4],		pCurr->addr[5]);	    }	bcopy(pCurr->addr, (char *)&pTable->pTable[count], 6);	count+=6;	pTable->len += 6;	pCurr = (ETHER_MULTI *)lstNext(&pCurr->node);	}    return (OK);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九九久久久精品| 91精品国产色综合久久不卡电影 | 日本一区二区三区视频视频| 成人黄色在线看| 亚洲欧美一区二区在线观看| 色狠狠综合天天综合综合| 亚洲精品高清在线| 欧美妇女性影城| 极品少妇xxxx精品少妇| 久久免费看少妇高潮| av不卡免费在线观看| 一区二区三区四区蜜桃| 51精品国自产在线| 国产在线视频不卡二| 国产精品久久精品日日| 欧美系列日韩一区| 韩国视频一区二区| 日韩美女视频一区二区 | 亚洲1区2区3区4区| 欧美成人欧美edvon| 成人做爰69片免费看网站| 亚洲乱码国产乱码精品精可以看| 欧美日韩五月天| 精品无码三级在线观看视频| 国产精品免费看片| 欧美日韩一区二区三区在线 | 精品国产91亚洲一区二区三区婷婷 | 91浏览器在线视频| 亚洲天堂网中文字| 欧美一级片在线看| 成人污污视频在线观看| 天天操天天综合网| 国产偷国产偷亚洲高清人白洁 | 一区二区不卡在线视频 午夜欧美不卡在| 欧美三级电影在线观看| 国产精品自拍一区| 亚洲一区在线观看免费| 欧美精品一区二区久久久| 91同城在线观看| 麻豆国产欧美一区二区三区| 亚洲美女在线国产| 日韩精品最新网址| 色综合一区二区三区| 国产一区日韩二区欧美三区| 亚洲一区二区成人在线观看| 欧美韩日一区二区三区四区| 91精品国产一区二区三区| 97久久人人超碰| 国产一区欧美一区| 亚洲成人资源网| 中文一区二区在线观看| 在线综合亚洲欧美在线视频| 97久久精品人人爽人人爽蜜臀| 免费在线成人网| 亚洲猫色日本管| 国产日韩欧美制服另类| 欧美精品久久久久久久多人混战| 成人精品一区二区三区中文字幕| 久久国产尿小便嘘嘘尿| 一区2区3区在线看| 亚洲欧洲性图库| 久久欧美一区二区| 欧美一区二区三区视频| 在线观看视频一区二区 | 91精品国产91热久久久做人人| 99久久国产综合精品麻豆| 久久99精品久久久久久动态图| 亚洲午夜羞羞片| 中文字幕在线观看一区| 国产婷婷色一区二区三区四区| 欧美一区三区二区| 欧美性videosxxxxx| 91欧美激情一区二区三区成人| 国产一区二区伦理片| 青青草原综合久久大伊人精品| 一区二区三区在线看| 国产精品国产三级国产普通话99| 久久蜜桃一区二区| 日韩视频免费直播| 91精品国产综合久久久蜜臀粉嫩| 91福利国产成人精品照片| 成人动漫视频在线| 国产成人亚洲综合a∨婷婷| 奇米影视一区二区三区小说| 亚洲第一成人在线| 亚洲精品国产精华液| 国产精品久久三区| 成人天堂资源www在线| 国产老女人精品毛片久久| 精品亚洲成av人在线观看| 日韩av不卡在线观看| 亚洲大片精品永久免费| 亚洲一区在线看| 夜夜揉揉日日人人青青一国产精品| 亚洲视频一区二区在线| 国产精品久久久久婷婷| 国产精品你懂的| 中文幕一区二区三区久久蜜桃| 国产视频一区二区在线| 久久蜜桃一区二区| 国产日产欧美精品一区二区三区| 久久久高清一区二区三区| 久久一区二区视频| 国产欧美日本一区二区三区| 国产亚洲婷婷免费| 国产亚洲va综合人人澡精品| 久久久久高清精品| 国产亚洲一本大道中文在线| 欧美国产精品v| 中文字幕一区二区三区在线观看| 国产精品每日更新| 国产精品久久久久国产精品日日| 国产精品久久久久影院亚瑟 | 日韩欧美国产麻豆| 欧美一区二区播放| 欧美www视频| 久久久久国色av免费看影院| 国产清纯美女被跳蛋高潮一区二区久久w| 国产欧美精品在线观看| 国产精品美女久久久久aⅴ| 最新日韩av在线| 一区二区三区中文字幕精品精品| 亚洲一区二区三区中文字幕| 亚洲v中文字幕| 免费日本视频一区| 国产精品一级片| 91在线porny国产在线看| 日本丶国产丶欧美色综合| 欧美另类高清zo欧美| 欧美sm美女调教| 中文字幕二三区不卡| 1024成人网| 亚洲va中文字幕| 久久99精品一区二区三区 | av一区二区三区在线| 欧美亚洲综合在线| 日韩一级片在线播放| 久久精品亚洲一区二区三区浴池 | 欧美日韩一区高清| 日韩一区二区三区在线| 国产亚洲一区字幕| 亚洲精品综合在线| 日本va欧美va欧美va精品| 国产一区在线精品| 91社区在线播放| 欧美一级欧美一级在线播放| 国产日韩欧美综合一区| 夜夜嗨av一区二区三区四季av| 麻豆久久一区二区| 成人午夜视频在线| 欧美三级日韩三级国产三级| 欧美电视剧免费全集观看| 国产精品另类一区| 午夜不卡av免费| 国产成人aaaa| 欧美揉bbbbb揉bbbbb| 欧美xxxxxxxx| 亚洲精品免费在线播放| 久久成人久久鬼色| 91亚洲国产成人精品一区二区三 | 欧美一区二区三区免费在线看 | 国产一区激情在线| 99国产欧美另类久久久精品 | 久久久久久一级片| 亚洲精品乱码久久久久久| 老司机精品视频在线| 99r国产精品| 亚洲精品一区二区三区影院| 亚洲女人的天堂| 狠狠网亚洲精品| 欧美日韩一区国产| 国产精品美日韩| 日av在线不卡| 色哟哟国产精品| 久久综合中文字幕| 亚洲午夜一区二区三区| 成人性生交大片免费看视频在线| 91.麻豆视频| 一区在线观看免费| 韩国成人福利片在线播放| 在线视频一区二区三| 久久久久99精品一区| 丝袜亚洲另类欧美| 97久久久精品综合88久久| 久久久另类综合| 日韩电影在线一区二区三区| 91视频在线看| 久久久99精品久久| 日本亚洲视频在线| 色八戒一区二区三区| 久久精品视频免费观看| 琪琪一区二区三区| 欧洲一区二区三区在线| 国产精品人成在线观看免费| 麻豆精品国产91久久久久久| 欧美午夜片在线观看| 中文字幕亚洲欧美在线不卡| 经典三级视频一区| 欧美精品aⅴ在线视频| 99综合电影在线视频|