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

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

?? rand.c

?? UCOS-ii對于網絡的支持代碼
?? C
字號:
/*****************************************************************************
* RAND.c - Random number generator program file.
*
* Copyright (c) 1998 by Global Election Systems Inc.
*
* The authors hereby grant permission to use, copy, modify, distribute,
* and license this software and its documentation for any purpose, provided
* that existing copyright notices are retained in all copies and that this
* notice and the following disclaimer are included verbatim in any 
* distributions. No written agreement, license, or royalty fee is required
* for any of the authorized uses.
*
* THIS SOFTWARE IS PROVIDED BY THE 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 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.
*
******************************************************************************
* REVISION HISTORY
*
* 98-06-03 Guy Lancaster <lancasterg@acm.org>, Global Election Systems Inc.
*	Extracted from avos.
*****************************************************************************/

#include "typedefs.h"
#include <string.h>
#include "avconfig.h"
#include "stdio.h"
#include "v25.h"
#include "clckctrl.h"
#include "avos.h"

#include "rand.h"

#include "debug.h"


/*****************************/
/*** LOCAL DATA STRUCTURES ***/
/*****************************/
static int  avRandomized = 0;		// Set when truely randomized.
static ULONG avRandomSeed = 0;		// Seed used for random number generation.


/***********************************/
/*** PUBLIC FUNCTION DEFINITIONS ***/
/***********************************/
/*
 * Initialize the random number generator.
 *
 * Here we attempt to compute a random number seed but even if
 * it isn't random, we'll randomize it later.
 *
 * The current method uses the fields from the real time clock,
 * the idle process counter, the millisecond counter, and the
 * hardware timer tick counter.  When this is invoked
 * in startup(), then the idle counter and timer values may
 * repeat after each boot and the real time clock may not be
 * operational.  Thus we call it again on the first random
 * event.
 */
void avRandomInit()
{
	/* Get a pointer into the last 4 bytes of clockBuf. */
	ULONG *lptr1 = (ULONG *)((char *)&clockBuf[3]);

    /*
     * Initialize our seed using the real-time clock, the idle
     * counter, the millisecond timer, and the hardware timer
     * tick counter.  The real-time clock and the hardware
     * tick counter are the best sources of randomness but
     * since the tick counter is only 16 bit (and truncated
     * at that), the idle counter and millisecond timer
     * (which may be small values) are added to help
     * randomize the lower 16 bits of the seed.
     */
	readClk();
	avRandomSeed += *(ULONG *)clockBuf + *lptr1 + OSIdleCtr
			 + mtime() + ((ULONG)TM1 << 16) + TM1;
		
	/* Initialize the Borland random number generator. */
    srand((unsigned)avRandomSeed);
}

/*
 * Randomize our random seed value.  Here we use the fact that
 * this function is called at *truely random* times by the polling
 * and network functions.  Here we only get 16 bits of new random
 * value but we use the previous value to randomize the other 16
 * bits.
 */
void avRandomize(void)
{
	if (!avRandomized) {
		avRandomized = !0;
		avRandomInit();
		/* The initialization function also updates the seed. */
	} else
		avRandomSeed += (avRandomSeed << 16) + TM1;
}

/*
 * Return a new random number.
 * Here we use the Borland rand() function to supply a pseudo random
 * number which we make truely random by combining it with our own
 * seed which is randomized by truely random events. 
 * Thus the numbers will be truely random unless there have been no
 * operator or network events in which case it will be pseudo random
 * seeded by the real time clock.
 */
ULONG avRandom()
{
    return ((((ULONG)rand() << 16) + rand()) + avRandomSeed);
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利精品视频| 国产日本欧洲亚洲| 久久婷婷久久一区二区三区| 国产精品嫩草99a| 日韩精品午夜视频| 91视频在线观看免费| 欧美精品一区二区三区很污很色的| 亚洲精品国产第一综合99久久 | 国产精品久久久久久妇女6080| 亚洲午夜羞羞片| 9191国产精品| 国产精品毛片大码女人| 久久国产福利国产秒拍| 欧美三级电影网站| 亚洲天堂成人在线观看| 激情欧美一区二区三区在线观看| 欧美亚洲一区二区在线观看| 亚洲欧洲无码一区二区三区| 国内外成人在线视频| 欧美一区二区高清| 午夜精品久久久久久久99樱桃| 91丨porny丨蝌蚪视频| 国产精品久久久久久久久免费桃花| 毛片av中文字幕一区二区| 欧美丝袜丝交足nylons| 一区二区不卡在线播放| 色av成人天堂桃色av| 亚洲精品视频在线看| 99精品视频在线免费观看| 国产精品伦理在线| 成人综合在线视频| 国产精品伦理一区二区| 成人激情av网| 中文欧美字幕免费| 波多野结衣中文字幕一区二区三区| 国产午夜精品一区二区三区视频 | 中文字幕成人在线观看| 国产一区二三区| 久久伊人蜜桃av一区二区| 蜜桃av一区二区| 日韩欧美www| 激情国产一区二区 | 51久久夜色精品国产麻豆| 亚洲gay无套男同| 69av一区二区三区| 久久er精品视频| 国产日韩欧美电影| 99久久99久久久精品齐齐| 亚洲卡通动漫在线| 欧美日韩免费电影| 日本不卡免费在线视频| 亚洲三级电影网站| 色哟哟欧美精品| 日日摸夜夜添夜夜添精品视频 | 婷婷综合另类小说色区| 69堂成人精品免费视频| 韩国午夜理伦三级不卡影院| 欧美国产精品一区| 欧美xxxxxxxxx| 大桥未久av一区二区三区中文| 亚洲欧洲美洲综合色网| 欧美色欧美亚洲另类二区| 精品一区二区精品| 自拍视频在线观看一区二区| 欧美福利视频导航| 国产成人精品三级麻豆| 樱花草国产18久久久久| 精品免费99久久| 91网站最新网址| 久久精品国产99国产精品| 国产精品久久久久影院| 宅男在线国产精品| 不卡的av中国片| 日韩高清不卡一区| 国产精品日韩成人| 91精品国产色综合久久ai换脸| 懂色av一区二区三区免费观看| 亚洲国产美国国产综合一区二区| xnxx国产精品| 欧美日韩一级二级三级| 国产成人综合在线观看| 日韩在线卡一卡二| 亚洲色图清纯唯美| 国产亚洲自拍一区| 3d动漫精品啪啪一区二区竹菊| 成人黄色在线网站| 韩日av一区二区| 性久久久久久久久久久久| 国产精品久久久久影视| 精品国产91乱码一区二区三区 | 成人av小说网| 韩国毛片一区二区三区| 日韩国产精品久久久久久亚洲| 国产精品全国免费观看高清 | 色婷婷av一区二区三区大白胸| 精品一区二区免费在线观看| 亚洲成人手机在线| 亚洲精品视频在线观看免费| 国产日韩欧美精品在线| 久久久精品tv| 欧美成人一区二区三区在线观看| 欧美四级电影网| 在线免费视频一区二区| 99精品一区二区| av在线不卡电影| 成人一区二区三区中文字幕| 国产精品中文有码| 韩国v欧美v日本v亚洲v| 久久99久久久欧美国产| 久久精品国产免费| 美女任你摸久久| 久久精品国产亚洲一区二区三区| 五月婷婷综合激情| 天天免费综合色| 免费视频最近日韩| 日本vs亚洲vs韩国一区三区二区 | 91丨九色丨黑人外教| 不卡一区二区中文字幕| 成人午夜在线免费| 成人app下载| 色八戒一区二区三区| 欧美性做爰猛烈叫床潮| 欧美喷潮久久久xxxxx| 91精品欧美久久久久久动漫| 欧美女孩性生活视频| 91麻豆精品国产无毒不卡在线观看| 欧美日韩久久久| 欧美电影免费观看高清完整版| 91精品在线免费| 精品久久久影院| 中文字幕av在线一区二区三区| 亚洲国产精品99久久久久久久久| 国产精品久久久久久亚洲伦| 亚洲男人天堂av| 日本不卡一区二区| 国产精品 欧美精品| 91在线看国产| 欧美日韩aaaaaa| 久久久久久免费网| 亚洲人成影院在线观看| 丝袜脚交一区二区| 国产福利一区二区| 色94色欧美sute亚洲线路一久| 欧美日韩小视频| 久久夜色精品国产噜噜av| 国产精品久久久久久亚洲毛片 | 国产精品卡一卡二| 亚洲一级电影视频| 国产精品综合久久| 欧日韩精品视频| 精品处破学生在线二十三| 一区二区中文字幕在线| 亚洲18色成人| 成人午夜精品在线| 欧美日韩二区三区| 亚洲国产电影在线观看| 成人av网站大全| 欧美日韩高清一区二区三区| 久久久久久一级片| 亚洲aaa精品| 9久草视频在线视频精品| 91麻豆精品91久久久久同性| 国产精品国产三级国产a| 青娱乐精品在线视频| 91浏览器入口在线观看| 26uuu久久天堂性欧美| 亚洲在线视频一区| 大胆亚洲人体视频| 欧美一区二区视频网站| 自拍偷拍亚洲激情| 国产一区高清在线| 欧美一区二区成人| 亚洲精品亚洲人成人网| 成人黄色小视频| 精品成人私密视频| 日本aⅴ免费视频一区二区三区| 91一区在线观看| 亚洲国产精品国自产拍av| 裸体健美xxxx欧美裸体表演| 欧美亚洲综合久久| 中文字幕一区不卡| 国产91丝袜在线18| 精品剧情v国产在线观看在线| 五月婷婷激情综合| 91精品福利视频| 亚洲欧洲av在线| 成人晚上爱看视频| 国产日韩欧美不卡在线| 久久99精品久久只有精品| 91麻豆精品国产91久久久久久久久 | 国产精品一区二区三区网站| 欧美电影一区二区| 日精品一区二区| 欧美在线免费观看视频| 亚洲麻豆国产自偷在线| 91浏览器打开| 一区二区三区国产精华| 99久久国产综合精品女不卡| 综合久久久久综合| 色一区在线观看|