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

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

?? bvirusdpa.nc

?? tinios的 源碼
?? NC
字號:
/*									tab:4 * * * "Copyright (c) 2000-2002 The Regents of the University  of California.   * All rights reserved. * * Permission to use, copy, modify, and distribute this software and * its documentation for any purpose, without fee, and without written * agreement is hereby granted, provided that the above copyright * notice, the following two paragraphs and the author appear in all * copies of this software. *  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, * UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * *//*									tab:4 *  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.  By *  downloading, copying, installing or using the software you agree to *  this license.  If you do not agree to this license, do not download, *  install, copy or use the software. * *  Intel Open Source License  * *  Copyright (c) 2002 Intel Corporation  *  All rights reserved.  *  Redistribution and use in source and binary forms, with or without *  modification, are permitted provided that the following conditions are *  met: *  *	Redistributions of source code must retain the above copyright *  notice, this list of conditions and the following disclaimer. *	Redistributions in binary form must reproduce the above copyright *  notice, this list of conditions and the following disclaimer in the *  documentation and/or other materials provided with the distribution. *      Neither the name of the Intel Corporation nor the names of its *  contributors may be used to endorse or promote products derived from *  this software without specific prior written permission. *   *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *  PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE INTEL OR ITS *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  *  *//* * Authors:   Philip Levis * History:   July 21, 2002 *	      * *//** * @author Philip Levis */includes Bombilla;module BVirusDPAFixed {  provides interface StdControl;  provides interface BombillaVirus as Virus;  uses {    interface BombillaError;    interface Timer as VersionTimer;    interface ReceiveMsg as VersionReceive;    interface SendMsg as VersionSend;    interface Timer as CapsuleTimer;    interface ReceiveMsg as CapsuleReceive;    interface SendMsg as CapsuleSend;        interface Random as Random;    interface StdControl as SubControl;  }}implementation {  typedef enum {    BVIRUS_TIMER_VERSION = 1000,    BVIRUS_TIMER_CAPSULE = 1000,    BVIRUS_CAPSULE_INIT = 1,    BVIRUS_CAPSULE_MAX = 16,    BVIRUS_VERSION_THRESHOLD_INIT = 10,    BVIRUS_VERSION_THRESHOLD_MAX = 300  } BVirusConstants;  typedef enum {    BVIRUS_IDLE,    BVIRUS_PULLING,    BVIRUS_PUSHING  } BVirusState;  BombillaCapsule* capsules[BOMB_CAPSULE_NUM];  uint8_t capsuleTimerThresholds[BOMB_CAPSULE_NUM];  uint8_t capsuleHeard[BOMB_CAPSULE_NUM];  uint8_t capsuleTimerCounters[BOMB_CAPSULE_NUM];  uint16_t versionCounter;  uint16_t versionThreshold;  uint16_t versionHeard;    BVirusState state;  bool sendBusy;  bool capsuleBusy;    TOS_Msg sendMessage;  TOS_MsgPtr sendPtr;  TOS_Msg receiveMsg;  TOS_MsgPtr receivePtr;    void resetVersionCounter() {    dbg(DBG_USR3, "BVirus: resetting vector transmission frequency.\n");    versionHeard /= (versionCounter)? versionCounter:1;    versionCounter = versionThreshold;    versionThreshold = BVIRUS_VERSION_THRESHOLD_INIT;  }    uint8_t typeToIndex(uint8_t type) {    type &= BOMB_OPTION_MASK;    if (type == BOMB_CAPSULE_CLOCK) {return BOMB_CAPSULE_CLOCK_INDEX;}    else if (type == BOMB_CAPSULE_SEND) {return BOMB_CAPSULE_SEND_INDEX;}    else if (type == BOMB_CAPSULE_RECV) {return BOMB_CAPSULE_RECV_INDEX;}    else if (type == BOMB_CAPSULE_ONCE) {return BOMB_CAPSULE_ONCE_INDEX;}    else if (type <= BOMB_CAPSULE_SUB3) {      return type;    }    else {      return BOMB_CAPSULE_INVALID;    }  }    command result_t StdControl.init() {    int i;    call SubControl.init();    call Random.init();        for (i = 0; i < BOMB_CAPSULE_NUM; i++) {      capsuleTimerCounters[i] = 0;      capsuleTimerThresholds[i] = BVIRUS_CAPSULE_MAX + 1;      capsules[i] = NULL;    }    versionThreshold = BVIRUS_VERSION_THRESHOLD_INIT;    state = BVIRUS_IDLE;        sendPtr = (TOS_MsgPtr)&sendMessage;    receivePtr = (TOS_MsgPtr)&receiveMsg;        dbg(DBG_USR3, "BVirus initialized.\n");    sendBusy = FALSE;    capsuleBusy = FALSE;        return SUCCESS;  }  command result_t StdControl.start() {    call SubControl.start();    state = BVIRUS_PULLING;    dbg(DBG_USR3, "BVirus started.\n");    call VersionTimer.start(TIMER_REPEAT, BVIRUS_TIMER_VERSION);    dbg(DBG_USR3, "BVirus version timer started.\n");    return SUCCESS;  }  command result_t StdControl.stop() {    call VersionTimer.stop();    call CapsuleTimer.stop();    dbg(DBG_USR3, "BVirus stopped.\n");    return call SubControl.stop();  }  command result_t Virus.registerCapsule(uint8_t type, BombillaCapsule* capsule) {    uint8_t idx = typeToIndex(type);    if (idx >= BOMB_CAPSULE_NUM) {      return FAIL;    }    capsules[idx] = capsule;        return SUCCESS;  }  result_t sendCapsule(uint8_t idx) {    BombillaCapsule* capsule = capsules[idx];    BombillaCapsuleMsg* msg = (BombillaCapsuleMsg*)sendPtr->data;    dbg(DBG_USR3, "Sending capsule %i\n", (int)idx);    if (sendBusy) {return FAIL;}    else {      // Fill in random bits to packet      sendBusy = TRUE;      // Fill in capsule      nmemcpy(&msg->capsule, capsule, sizeof(BombillaCapsule));            if (!call CapsuleSend.send(TOS_BCAST_ADDR, sizeof(BombillaCapsuleMsg), sendPtr)) {	sendBusy = FALSE;	return FAIL;      }      else {	return SUCCESS;      }    }  }    result_t sendVersionPacket() {    int i;    BombillaVersionMsg* msg = (BombillaVersionMsg*)sendPtr->data;    //dbg(DBG_USR3, "Sending version vector packet:\n  ");    if (sendBusy) {return FAIL;}    sendBusy = TRUE;    msg->type = BOMB_VERSION_VECTOR;    for (i = 0; i < BOMB_CAPSULE_NUM; i++) {      if (capsules[i] != NULL &&	  (capsules[i]->type & BOMB_OPTION_FORWARD)) {	msg->versions[i] = capsules[i]->version;      }      else {	msg->versions[i] = 0;      }      dbg_clear(DBG_USR3, "%08x ", msg->versions[i]);    }    dbg_clear(DBG_USR3, "\n");    if (!call VersionSend.send(TOS_BCAST_ADDR, sizeof(BombillaVersionMsg), sendPtr)) {      dbg(DBG_USR3|DBG_ERROR, "BVirus: Version vector send failed\n");      sendBusy = FALSE;      return FAIL;    }    else {      return SUCCESS;    }  }  task void versionTimerTask() {    versionCounter++;    if (versionCounter >= versionThreshold) {      uint16_t rval;#ifdef PLATFORM_PC      char timeBuf[128];      printTime(timeBuf, 128);      dbg(DBG_USR3, "BVirus: Version timer counter expired (hrd: %i, thr: %i): %s\n",(int)versionHeard, (int)versionThreshold, timeBuf);#endif      versionCounter = 0;      rval = call Random.rand();      if (rval % (versionHeard + 1) == 0) {	dbg(DBG_USR3, "BVirus: Sending version packet @ %s\n", timeBuf);	sendVersionPacket();      }      versionHeard = 0;    }  }  event result_t VersionTimer.fired() {    if (state == BVIRUS_PULLING) {      post versionTimerTask();    }    return SUCCESS;  }  TOS_MsgPtr receiveProgram(TOS_MsgPtr msg) {    dbg(DBG_USR3, "BVirus: Received program vector.\n");    return msg;  }    TOS_MsgPtr receiveVector(TOS_MsgPtr msg) {    uint8_t i;    bool same = TRUE; // Is this vector the same as mine?    BombillaVersionMsg* versions = (BombillaVersionMsg*)msg->data;    //dbg(DBG_USR3, "BVirus: Received version vector.\n");        for (i = 0; i < BOMB_CAPSULE_NUM; i++) {      if (capsules[i] != NULL) {	if(versions->versions[i] > capsules[i]->version) {	  // I have something older, send my version vector	  // ASAP so he'll send capsules	  dbg(DBG_USR3, "BVirus: heard newer version vector\n");	  resetVersionCounter();	  same = FALSE;	  break;	}	else if (versions->versions[i] < capsules[i]->version) {	  // I have something newer, mark capsule to send	  // if not already doing so.	  dbg(DBG_USR3, "BVirus: heard older version vector, send out capsule.\n");	  capsuleTimerThresholds[i] = BVIRUS_CAPSULE_INIT;	  capsuleTimerCounters[i] = 0;	  if (state != BVIRUS_PUSHING) {	    call CapsuleTimer.start(TIMER_REPEAT, BVIRUS_TIMER_CAPSULE);	    state = BVIRUS_PUSHING;	  }	  same = FALSE;	  break;	}      }    }    if (same == TRUE) {      dbg(DBG_USR3, "BVirus: Heard same version vector as mine.\n");      versionHeard++;    }    return msg;  }  event TOS_MsgPtr VersionReceive.receive(TOS_MsgPtr msg) {    BombillaVersionMsg* versions = (BombillaVersionMsg*)msg->data;    dbg(DBG_USR3, "Received version packet, type %i\n", versions->type);    if (versions->type == BOMB_VERSION_VECTOR) {      return receiveVector(msg);    }    else if (versions->type == BOMB_VERSION_PROGRAM) {      return receiveProgram(msg);    }    else {      return msg;    }  }  // Increment all of the timers. Try to send (only) the first capsule  // with an expired timer. If the send request succeeds, decay the  // timer.  task void capsuleTimerTask() {    uint8_t i;    bool halt = TRUE;    dbg(DBG_USR3, "BVirus: Capsule task running.\n");    for (i = 0; i < BOMB_CAPSULE_NUM; i++) {      capsuleTimerCounters[i]++;    }    for (i = 0; i < BOMB_CAPSULE_NUM; i++) {      if (capsuleTimerThresholds[i] <= BVIRUS_CAPSULE_MAX) {	halt = FALSE;	if (capsuleTimerCounters[i] >= capsuleTimerThresholds[i]) {	  if (sendCapsule(i)) {	    capsuleTimerThresholds[i] <<= 2;	    capsuleTimerCounters[i] = 0;	  }	  break;	}      }    }    if (halt) {      call CapsuleTimer.stop();      state = BVIRUS_PULLING;    }    return;  }    event result_t CapsuleTimer.fired() {    post capsuleTimerTask();    return SUCCESS;  }    event TOS_MsgPtr CapsuleReceive.receive(TOS_MsgPtr msg) {    TOS_MsgPtr tmp = msg;    BombillaCapsuleMsg* cMsg = (BombillaCapsuleMsg*)msg->data;    BombillaCapsule* capsule = &(cMsg->capsule);    uint8_t idx = typeToIndex(capsule->type);    if ((capsules[idx] != NULL) &&	(capsule->version > capsules[idx]->version)) {      {	char timeVal[128];	printTime(timeVal, 128);	dbg(DBG_USR3, "BVirus: Received and installing capsule %i, version %i @ %s\n", (int)capsule->type, (int)capsule->version, timeVal);      }      tmp = receivePtr;      receivePtr = msg;      if (capsule->type & BOMB_OPTION_FORCE) {	signal Virus.capsuleForce(capsule->type & BOMB_OPTION_MASK);	nmemcpy(capsules[idx], capsule, sizeof(BombillaCapsule));	signal Virus.capsuleInstalled(capsules[idx]);	dbg(DBG_USR3, "BVirus: installed a forced capsule\n");	resetVersionCounter();      }      else if (signal Virus.capsuleHeard(capsule->type) == SUCCESS) {	nmemcpy(capsules[idx], capsule, sizeof(BombillaCapsule));	signal Virus.capsuleInstalled(capsules[idx]);	dbg(DBG_USR3, "BVirus: installed a capsule\n");	resetVersionCounter();      }      else {	dbg(DBG_USR3, "BVirus: capsule installation rejected\n");	      }    }    else {      dbg(DBG_USR3, "BVirus: Received capsule %i (idx %i), version %i, no such capsule or already have it.\n", (int)capsule->type, (int)idx, (int)capsule->version);    }    return tmp;  }  event result_t CapsuleSend.sendDone(TOS_MsgPtr msg, result_t success) {    if (msg == sendPtr) {      sendBusy = FALSE;      //dbg(DBG_USR3, "Capsule send done event handled.\n");    }    return SUCCESS;  }  event result_t VersionSend.sendDone(TOS_MsgPtr msg, result_t success) {    if (msg == sendPtr) {      sendBusy = FALSE;      //dbg(DBG_USR3, "Version send done event handled.\n");    }    return SUCCESS;  }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本sm残虐另类| 在线播放欧美女士性生活| 成人免费高清在线观看| 欧美日韩国产bt| 国产欧美日韩综合| 奇米色一区二区三区四区| 99久久精品国产毛片| 日韩欧美国产综合| 亚洲一级电影视频| av一二三不卡影片| 久久九九久久九九| 日韩精品一级二级| 欧美性生交片4| 亚洲视频一区二区免费在线观看| 日韩国产一二三区| 欧美亚洲国产bt| 国产精品盗摄一区二区三区| 韩国一区二区三区| 精品免费视频.| 亚洲视频电影在线| 成人av影视在线观看| 精品国产亚洲在线| 美女视频黄免费的久久| 欧美日韩久久一区| 视频在线观看一区| 欧美日韩国产a| 亚洲mv在线观看| 欧美亚洲一区二区在线观看| 欧美国产综合色视频| 国产一区二区三区观看| 欧美成人一区二区三区| 久久国产精品99久久人人澡| 91精品一区二区三区久久久久久| 天堂蜜桃一区二区三区| 欧美日韩性生活| 亚洲最新在线观看| 欧美午夜精品久久久久久超碰| 亚洲女同ⅹxx女同tv| 色哟哟在线观看一区二区三区| 亚洲天天做日日做天天谢日日欢| 成人一区在线观看| 亚洲欧美一区二区视频| 色94色欧美sute亚洲线路一久| 最新久久zyz资源站| 在线视频国产一区| 丝瓜av网站精品一区二区| 制服视频三区第一页精品| 蜜臀av一区二区在线免费观看 | 亚洲国产精品一区二区www| 在线精品视频一区二区| 图片区日韩欧美亚洲| 日韩免费成人网| 成人午夜电影久久影院| 亚洲人精品午夜| 欧美顶级少妇做爰| 精品一区二区三区免费观看| 亚洲国产精品传媒在线观看| 一本色道久久综合狠狠躁的推荐 | 欧美极品少妇xxxxⅹ高跟鞋| eeuss鲁片一区二区三区在线看| 亚洲精品第1页| 91麻豆精品国产综合久久久久久| 国产在线精品一区在线观看麻豆| 国产日本亚洲高清| 欧美专区亚洲专区| 韩国精品久久久| 亚洲精品国产一区二区精华液| 在线91免费看| 东方欧美亚洲色图在线| 亚洲一级二级在线| 国产欧美日韩在线看| 欧美日韩夫妻久久| 成人性视频免费网站| 青青国产91久久久久久| 国产精品天天看| 91精品国产一区二区三区蜜臀| 国产福利精品一区二区| 亚洲主播在线播放| 国产日韩影视精品| 9191精品国产综合久久久久久| 国产成人精品网址| 偷偷要91色婷婷| 亚洲欧美激情插| 精品福利视频一区二区三区| 91国产免费看| 欧日韩精品视频| 国产成人自拍在线| 蜜桃一区二区三区在线观看| 亚洲欧美色图小说| 精品国产乱码久久久久久图片| 欧美日韩免费电影| 91麻豆精品秘密| 国产一区二区电影| 肉色丝袜一区二区| 亚洲最新视频在线播放| 亚洲视频一二区| 欧美国产精品v| 26uuu久久天堂性欧美| 欧美人狂配大交3d怪物一区| 色拍拍在线精品视频8848| 国产盗摄女厕一区二区三区| 久久精品国产精品亚洲红杏| 日本在线不卡一区| 午夜精品久久久久影视| 一区二区免费看| 亚洲欧美日韩成人高清在线一区| 久久蜜桃av一区二区天堂| 91精品久久久久久久91蜜桃| 欧美日韩精品一区视频| 在线看一区二区| 日本道在线观看一区二区| 91看片淫黄大片一级在线观看| 国产99久久久久| 豆国产96在线|亚洲| 国产91高潮流白浆在线麻豆 | 久久久精品天堂| 精品久久免费看| 精品sm在线观看| 欧美精品一区二区高清在线观看| 日韩欧美国产精品一区| 日韩欧美中文字幕一区| 欧美大白屁股肥臀xxxxxx| 日韩精品资源二区在线| 欧美一区二区三区视频免费| 91精品婷婷国产综合久久性色| 欧美男女性生活在线直播观看| 在线播放欧美女士性生活| 欧美电视剧免费全集观看| 2021久久国产精品不只是精品| 久久这里只有精品首页| 国产调教视频一区| 亚洲人成网站色在线观看| 亚洲精品欧美激情| 视频一区国产视频| 国内久久精品视频| 99天天综合性| 欧美日韩一区二区三区四区| 91精品综合久久久久久| 2023国产精品| 亚洲欧美偷拍卡通变态| 亚洲成人三级小说| 精品综合久久久久久8888| 国产91精品在线观看| 欧美羞羞免费网站| 精品日韩在线一区| 成人免费一区二区三区在线观看 | 国产精品国产自产拍在线| 亚洲乱码国产乱码精品精的特点 | 最新不卡av在线| 天天影视色香欲综合网老头| 极品美女销魂一区二区三区| 成人黄色在线看| 欧美丰满一区二区免费视频| 国产亚洲一区二区三区在线观看| 最新成人av在线| 久久69国产一区二区蜜臀| 成人一区二区视频| 欧美日韩国产中文| 性欧美大战久久久久久久久| 国产一区二区伦理片| 欧美三级视频在线| 国产精品色噜噜| 另类的小说在线视频另类成人小视频在线 | 精品久久久久久亚洲综合网 | 青青草97国产精品免费观看无弹窗版 | 97精品国产露脸对白| 日韩一本二本av| 一区二区三区在线播| 国产精品中文有码| 欧美精品粉嫩高潮一区二区| 国产精品久久久久久久浪潮网站| 免费久久99精品国产| 色88888久久久久久影院按摩| 精品国产91乱码一区二区三区| 亚洲国产综合色| 91在线精品秘密一区二区| 久久―日本道色综合久久| 日本v片在线高清不卡在线观看| 一本大道久久a久久综合婷婷| 久久网站最新地址| 青草av.久久免费一区| 在线免费观看一区| 中文字幕一区二区三区在线观看| 国产真实乱偷精品视频免| 欧美美女网站色| 亚洲va国产天堂va久久en| 色琪琪一区二区三区亚洲区| 亚洲欧美成aⅴ人在线观看 | 国产成人高清在线| 精品成人在线观看| 国内欧美视频一区二区| 欧美大肚乱孕交hd孕妇| 麻豆免费看一区二区三区| 6080亚洲精品一区二区| 亚洲va韩国va欧美va精品| 欧美日韩一区二区三区四区 | 亚洲品质自拍视频网站| 成人免费av网站| 亚洲欧洲另类国产综合| 国产成a人亚洲|