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

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

?? ospf_vs_lib.c

?? vxworks下ospf協(xié)議棧
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/* ospf_vs_lib.c - ospf virtual stack management library *//* Copyright 2000-2003 Wind River Systems, Inc. *//*modification history--------------------02c,02jun03,ram Changed native memory usage to OSPF memory partition02b,29may03,agi Modified RWOS calls to OSPF calls as part of RWOS removal 02a,08oct02,agi Fixed empty file compiler warning02,17sep01,kc  Moved ospfConfigurationTableInit() from ospf_init.c.01,07mar01jkw	 written.*//*DESCRIPTIONThis module implements the framework for OSPF Virtual Stacks.  Each stack isrepresented by an OSPF_GLOBAL_DATA structure defined intarget/src/wrn/ospf/ospf_vs_data.h.  Please see that file for informationon particular elements of that data structure.The system is an array of pointers to these structures stored in vsOspfTbl andindexed by an integer from 0 to OSPF_VSID_MAX.  There is a special stack, referredto as the management stack, which is defined as VS_MGMT_STACK_OSPF.  This isdefined in target/src/wrn/ospf/ospf_vs_lib.h.For tasks calling into the stack we provide a current Ospf Virtual Stacknumber concept via a task variable called myTaskNum.  This variable can begotten or set via a set of routines in this module.  Routines called in thecontext of a task (though NEVER tNetTask) it is possible to reference elementsof the stack's virtual stack like this:.CSospfVsTbl[myTaskNum]->stackGlobalYouWantToLookAt*//* this include is here to fix the "empty file" compiler warning */#include "vxWorks.h"/* * This huge ifdef means that the file gets run through the compiler but is * empty in the case where we're building the stack without  * __OSPF_VIRTUAL_STACK__ support. */#ifdef __OSPF_VIRTUAL_STACK__/* includes */#include "ospf_vs_lib.h"#include "ospf_vs_data.h"/* defines *//* globals */int myStackNum = 0; /* Task local stack number. */OSPF_GLOBAL_DATA* ospfVsTbl[OSPF_VSID_MAX];SEM_ID ospfVsTblLock;OSPF_VSID mgmtStackId;/********************************************************************************* ospfVirtualStackLibInit - initialize the Ospf Virtual Stack system** This routine initializes all the global data required by the ospf virtual stack* system.** RETURNS: OK or ERROR if any resources are unavailable.**/STATUS ospfVirtualStackLibInit    (    )    {    int count;    /*     * Create a semaphore to protect our table.     */    ospfVsTblLock = semBCreate(SEM_Q_PRIORITY, SEM_FULL);    if (ospfVsTblLock == NULL)        return (ERROR);    for (count = 0; count < OSPF_VSID_MAX; count++)        {        ospfVsTbl[count] = NULL;        }    return (OK);    }/********************************************************************************* ospfVirtualStackCreate - creates an instance of an ospf virtual stack** This routine creates an instance of a Ospf Virtual Stack and returns a pointer* to the OSPF_VSID on successful completion.  Once this routine returns the* desired initialization sequence may be called to start the appropriate* protocols and initialize the network data structures.** The stack index (i.e.  0 1 2 ...) is assigned.** RETURNS: OK or ERROR. If ERROR is returned the <pOSPF_VSID> contents are* not valid.**/STATUS ospfVirtualStackCreate    (    OSPF_VSID* pOSPF_VSID 		/* Buffer for storing virtual stack identifier */    )    {    int ospfVsIndex, i;    char tempName[OSPF_VS_NAME_MAX + 1];    /* Lock out access until creation is complete or error is returned. */    semTake(ospfVsTblLock, WAIT_FOREVER);    /* Find the first empty slot. */    for (ospfVsIndex = 0; ospfVsIndex < OSPF_VSID_MAX; ospfVsIndex++)        {        if (ospfVsTbl[ospfVsIndex] == NULL)            break; /* Hey, we found one! */        }    if (ospfVsIndex == OSPF_VSID_MAX)        {        semGive(ospfVsTblLock);        return (ERROR);        }        sprintf(tempName, "%d", ospfVsIndex);    /* null-terminate it, just in case... */    *(tempName + OSPF_VS_NAME_MAX) = EOS;    /* Check that a stack with the same name doesn't already exist */    for (i = 0; i < OSPF_VSID_MAX; i++)        {        if (ospfVsTbl[i] == NULL)  /* empty slot */            continue;        if (strcmp(ospfVsTbl[i]->pName, tempName) == 0)            {            semGive(ospfVsTblLock);            return ERROR;            }        }    /* Allocate our global structure.  */    *pOSPF_VSID = ospfVsTbl[ospfVsIndex] = (OSPF_GLOBAL_DATA *)buffer_malloc        (sizeof(OSPF_GLOBAL_DATA));    if (ospfVsTbl[ospfVsIndex] == NULL)        {        semGive(ospfVsTblLock);        return (ERROR);        }    /* Clear out the structure to NULL */    memset ((char *)*pOSPF_VSID,0, sizeof(OSPF_GLOBAL_DATA));    /*     * Make the name the OSPF VS number.     */    ospfVsTbl[ospfVsIndex]->pName = (char *)&ospfVsTbl[ospfVsIndex]->name;    memcpy(tempName, ospfVsTbl[ospfVsIndex]->pName, sizeof(tempName));    semGive(ospfVsTblLock);    return (OK);    }/********************************************************************************* ospfVirtualStackInit - initialize an ospf virtual stack** This routine performs the default initialization of an OSPF Virtual stack* created with the ospfVirtualStackCreate() routine. When this routine* completes, the OSPF protocol will be initialized and* the corresponding data structures for the stack will be valid.** RETURNS: OK, or ERROR if initialization fails.*/STATUS ospfVirtualStackInit    (    OSPF_VSID ospfVsId	  /* Stack identifier from ospfVirtualStackCreate() routine */    )    {    int ospfVsIndex;     /* Verify stack identifier. Exit if not found. */    semTake(ospfVsTblLock, WAIT_FOREVER);    for (ospfVsIndex = 0; ospfVsIndex < OSPF_VSID_MAX; ospfVsIndex++)        if (ospfVsTbl[ospfVsIndex] == ospfVsId)            break;    if (ospfVsIndex == OSPF_VSID_MAX)        {        semGive(ospfVsTblLock);        return (ERROR);        }    semGive(ospfVsTblLock);    return (OK);    }/********************************************************************************* ospfVirtualStackDelete - delete an ospf virtual stack** This routine deletes the ospf virtual stack referenced by the OSPF_VSID passed to it.** RETURNS: OK or ERROR if the OSPF_VSID passed to the call was in some way invalid**/STATUS ospfVirtualStackDelete    (    OSPF_VSID ospfVsId /* VID returned by virtualStackCreate */    )    {    int ospfVsIndex;    semTake(ospfVsTblLock, WAIT_FOREVER);    for (ospfVsIndex = 0; ospfVsIndex < OSPF_VSID_MAX; ospfVsIndex++)        if (ospfVsTbl[ospfVsIndex] == ospfVsId)            break; /* Hey, we found it! */    /* Check that we did find it. */    if (ospfVsIndex == OSPF_VSID_MAX)        {        semGive(ospfVsTblLock);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区免费在线看| 国产精品家庭影院| 精品中文av资源站在线观看| 91精品国产欧美日韩| 捆绑变态av一区二区三区| 精品国产百合女同互慰| 国产精品一区不卡| 亚洲少妇30p| 欧美日韩极品在线观看一区| 免费高清视频精品| 国产欧美一区二区三区在线老狼| av毛片久久久久**hd| 亚洲欧美日韩一区二区 | 1000精品久久久久久久久| 成人深夜在线观看| 亚洲影院免费观看| 久久综合一区二区| 91在线免费看| 奇米色一区二区三区四区| 国产日本亚洲高清| 欧美伊人久久大香线蕉综合69 | 国产综合一区二区| 一区免费观看视频| 69成人精品免费视频| 国产精品一区二区三区乱码| 亚洲激情男女视频| 欧美精品一区二区三区蜜桃 | 欧美日韩五月天| 国产乱妇无码大片在线观看| 亚洲永久精品大片| 日本一区二区在线不卡| 在线播放亚洲一区| 成人av电影在线网| 免费在线观看不卡| 一区二区免费看| 国产亚洲精品aa午夜观看| 欧美偷拍一区二区| 成人小视频免费在线观看| 琪琪久久久久日韩精品| 国产人成亚洲第一网站在线播放 | 久久久久久影视| 色婷婷久久久亚洲一区二区三区| 免费看日韩精品| 一区二区三区欧美| 欧美国产日产图区| 欧美一区二区免费观在线| 91视频免费观看| 国产精品一区二区在线观看不卡| 午夜电影网一区| 一区二区三区在线观看动漫| 国产日韩欧美不卡在线| 日韩精品一区二区三区四区视频| 欧美日韩一区视频| 色综合久久久久久久久久久| 国产精品亚洲一区二区三区妖精| 秋霞电影网一区二区| 亚洲国产精品久久一线不卡| 亚洲色图清纯唯美| 国产精品情趣视频| 久久久高清一区二区三区| 精品久久免费看| 精品国产乱码久久久久久牛牛 | 国产乱色国产精品免费视频| 免费的成人av| 免费精品视频最新在线| 午夜欧美大尺度福利影院在线看| 一区二区免费在线| 亚洲综合色丁香婷婷六月图片| 自拍偷拍欧美激情| 亚洲欧美在线aaa| 国产精品二区一区二区aⅴ污介绍| 国产农村妇女毛片精品久久麻豆 | 欧美手机在线视频| 欧美视频一区在线| 欧美日韩亚洲综合一区 | 99久久777色| 99久久婷婷国产综合精品电影| 成人免费视频免费观看| 成人午夜电影网站| 成人高清视频在线| 色综合久久综合| 欧美日韩在线精品一区二区三区激情| 欧美日韩午夜在线| 日韩美女一区二区三区四区| 久久综合狠狠综合久久激情| 国产欧美一区二区精品秋霞影院 | 国产成人av一区二区三区在线| 丝袜诱惑制服诱惑色一区在线观看| jvid福利写真一区二区三区| 99久久久久久| 美女爽到高潮91| 五月综合激情日本mⅴ| 丝袜诱惑亚洲看片| 五月天一区二区| 久久成人18免费观看| 国产在线日韩欧美| 99re这里都是精品| 欧美午夜不卡视频| 精品国产自在久精品国产| 久久一留热品黄| 亚洲人成网站在线| 视频一区在线视频| 国产精品888| 色综合色狠狠天天综合色| 欧美肥胖老妇做爰| 久久青草欧美一区二区三区| 综合电影一区二区三区 | 国产午夜一区二区三区| 亚洲欧洲精品一区二区精品久久久 | 免费成人美女在线观看| 国产一区二三区好的| 91亚洲永久精品| 欧美一级日韩一级| 中文字幕成人av| 午夜激情一区二区三区| 国产98色在线|日韩| 在线观看中文字幕不卡| 精品理论电影在线| 亚洲视频免费看| 久久99精品国产.久久久久久| 成人综合激情网| 91麻豆精品国产无毒不卡在线观看| 久久精品在这里| 天天影视网天天综合色在线播放| 国产精品69毛片高清亚洲| 欧美日韩国产高清一区二区三区 | 国产伦理精品不卡| 欧美在线你懂得| 国产欧美日韩不卡| 日产国产高清一区二区三区 | 一区二区三区在线视频免费| 久久91精品久久久久久秒播| 日本高清成人免费播放| 久久久91精品国产一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 成人av电影在线| 国产乱一区二区| 日本一区二区三区四区在线视频| 欧美a级理论片| 日韩精品一区二区三区视频| 亚洲超丰满肉感bbw| 国产成人精品在线看| 日韩午夜中文字幕| 麻豆视频观看网址久久| 在线区一区二视频| 蜜臀久久久久久久| 日韩一区欧美小说| 日韩三级av在线播放| 日韩欧美不卡一区| 国产不卡高清在线观看视频| 琪琪久久久久日韩精品| 六月丁香综合在线视频| 日韩在线一区二区| 久久精品国产99久久6| 韩国毛片一区二区三区| 91丨porny丨户外露出| bt7086福利一区国产| 欧美性高清videossexo| 欧美艳星brazzers| 欧美精品第1页| 欧美日韩高清一区二区不卡 | 亚洲精品国产高清久久伦理二区| 91精品国产综合久久福利| 国产精一品亚洲二区在线视频| 婷婷开心激情综合| 国产精品久久网站| 国产日韩av一区| 亚洲精品一区二区三区99| 欧美日韩国产精品自在自线| 国产真实乱对白精彩久久| 亚洲欧洲日韩女同| 久久久久久久久久久久久久久99| 欧美视频中文字幕| 91精品国产综合久久福利软件| 国产日韩影视精品| 欧美成va人片在线观看| 99re66热这里只有精品3直播| 日韩激情中文字幕| 久久精品av麻豆的观看方式| 激情综合网最新| 国产在线精品免费| 在线观看不卡一区| 欧美性猛片xxxx免费看久爱| 在线看国产日韩| 成人激情文学综合网| 看片的网站亚洲| 亚洲一二三四在线观看| 亚洲一区国产视频| 国产精品99久久久久久久女警| 99久久夜色精品国产网站| 欧美日韩在线不卡| 国产精品久久久久天堂| 精品国产99国产精品| 亚洲国产日韩综合久久精品| 高清不卡一区二区在线| 91精品国产高清一区二区三区 | 欧美羞羞免费网站| 精品91自产拍在线观看一区| 毛片av一区二区| 91丨九色丨蝌蚪丨老版|