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

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

?? common.h

?? windows ce 50 drive program
?? H
字號:
/******************************************************************************** *  * $Id: common.h,v 1.1.1.1 2004/12/08 08:38:42 hychu Exp $ * * File: Common.h * * Copyright (c) 2000-2002 Davicom Inc.  All rights reserved. * ********************************************************************************/#ifndef	__COMMON_H__#define	__COMMON_H__#include	"dm_types.h"#ifdef	PERFORMANCE_LOGtypedef	struct _PERF_TYPE{	DWORD	dwLabel;	DWORD	dwCounter;} PERF_TYPE;#define	MAX_PERF_LOGS	128#define	MAX_PERF_LOG_MASK	127#define	PROBE_ON	0x80000000#define	PROBE_OFF	0x00000000extern LARGE_INTEGER	_gPerfTemp;extern int		_gnPerfLogPos;extern PERF_TYPE	_gszPerfLogs[MAX_PERF_LOGS];void	DumpPerfmanceLogs(void);enum {	PROBE_ISR=0,	PROBE_HANLDER,	PROBE_SEND=0x10,	PROBE_RECV=0x20,};#define	PERF_PROBE_ON(label)	\	do {	\		QueryPerformanceCounter(&_gPerfTemp);\		_gszPerfLogs[_gnPerfLogPos].dwLabel = label|PROBE_ON;	\		_gszPerfLogs[_gnPerfLogPos].dwCounter = _gPerfTemp.LowPart;	\		_gnPerfLogPos = (_gnPerfLogPos + 1)&MAX_PERF_LOG_MASK;	\		} while (0)#define	PERF_PROBE_OFF(label)	\	do {	\		QueryPerformanceCounter(&_gPerfTemp);\		_gszPerfLogs[_gnPerfLogPos].dwLabel = label;	\		_gszPerfLogs[_gnPerfLogPos].dwCounter = _gPerfTemp.LowPart;	\		_gnPerfLogPos = (_gnPerfLogPos + 1)&MAX_PERF_LOG_MASK;	\		} while (0)#else#define	PERF_PROBE_ON(label)#define	PERF_PROBE_OFF(label)#endif/******************************************************************************* * * Debug macros * *******************************************************************************/#if	DBG#define	HALT(x)	if(x) PUTS(("FATAL ERROR\n"))#define	BREAK	__asm int 3#define	PUTS(x)	NKDbgPrintfW(TEXT x)#define	MSG(x)	NKDbgPrintfW x#define	DEBUG_PRINT(msg)	NKDbgPrintfW msg#else#define	HALT(x)#define	BREAK#define	PUTS(x)#define	MSG(x)#define	DEBUG_PRINT(msg)#endif/**************************************************************************************** * * simple exception * ****************************************************************************************/#define	MAX_EXCEPTIONS	256#define	ERR_STRING(p)	(PU8)(p)class C_Exception;typedef	struct	_EXCEPTION_DATA{	int			nIndex;	jmp_buf		szJumps[MAX_EXCEPTIONS];	C_Exception		*szpExceptions[MAX_EXCEPTIONS];}	EXCEPTION_DATA,	*PEXCEPTION_DATA;extern PEXCEPTION_DATA	_gpExpData;class C_Exception{public:	C_Exception::C_Exception(void)		{ Constructor((PU8)"N/A", NDIS_STATUS_FAILURE); }			C_Exception::C_Exception(U32 uErr)		{ Constructor((PU8)"N/A", uErr); }			C_Exception::C_Exception(PU8 ptrErr, U32 uErr=NDIS_STATUS_FAILURE)		{ Constructor(ptrErr, uErr); }		C_Exception::~C_Exception(void)	{		NdisFreeString(m_ndisErrorMessage);	};	void Constructor(PU8 ptrErr, U32 uError)	{		m_uErrorCode = uError;		NdisInitializeString(&m_ndisErrorMessage,ptrErr);	};		void	PrintErrorMessage(void)	{		MSG((			TEXT("DM9 Exception Level(%d)"),_gpExpData->nIndex+1));		MSG((m_ndisErrorMessage.Buffer));	};		U32		GetErrorCode(void) { return m_uErrorCode; };	private:	U32				m_uErrorCode;	NDIS_STRING		m_ndisErrorMessage;	};#define	INIT_EXCEPTION()	(_gpExpData = (PEXCEPTION_DATA)malloc(sizeof(EXCEPTION_DATA)) \	, memset((void*)_gpExpData,0,sizeof(EXCEPTION_DATA)),_gpExpData->nIndex = -1)#define	TERM_EXCEPTION()	free(_gpExpData)#define	TRY	if(setjmp(_gpExpData->szJumps[++_gpExpData->nIndex]) == 0)#define	FI --(_gpExpData->nIndex)#define	CATCH(exp) \	else if(((exp) = _gpExpData->szpExceptions[_gpExpData->nIndex--]))#define	THROW(x) \	( _gpExpData->szpExceptions[_gpExpData->nIndex] = new C_Exception x, \	longjmp(_gpExpData->szJumps[_gpExpData->nIndex],-1))#define	CLEAN(x)	delete x/**************************************************************************************** * * Spinlock definition and implementation * ****************************************************************************************/class CSpinlock{public:	CSpinlock::CSpinlock(void)	{		memset((void*)&m_SpinLock,0,sizeof(m_SpinLock));		NdisAllocateSpinLock(&m_SpinLock);	};	CSpinlock::~CSpinlock(void)	{		NdisFreeSpinLock(&m_SpinLock);	};	void	Lock(void)	{		NdisAcquireSpinLock(&m_SpinLock);	};	void	Release(void)	{		NdisReleaseSpinLock(&m_SpinLock);	};private:	NDIS_SPIN_LOCK	m_SpinLock;};	/**************************************************************************************** * * Mutex definition and implementation * ****************************************************************************************/#define	WAIT_FOREVER	((U32)-1)#ifdef	IMPL_NO_CRITICAL_SECTION#error no critical sectionvoid fn(void){	CRITICAL_SECTION	cs;	InitializeCriticalSection(&cs);	TryEnterCriticalSection(&cs);	LeaveCriticalSection(&cs);}class	CMutex{public:	CMutex::CMutex(void)	{		memset((void*)&m_SpinLock,0,sizeof(m_SpinLock));		NdisAllocateSpinLock(&m_SpinLock);		m_Value = 0;	};	CMutex::~CMutex(void)	{		NdisFreeSpinLock(&m_SpinLock);	};	int	TryLock(void)	{		int		ret=1;		NdisAcquireSpinLock(&m_SpinLock);		if(m_Value)			ret = 0;		else			m_Value++;		NdisReleaseSpinLock(&m_SpinLock);		return ret;	};		int	Lock(U32	uMicroSeconds=WAIT_FOREVER, U32 uMicroPeriod=1000)	{		U32		remains=uMicroSeconds;		U32		waited;			for(;!TryLock();remains-=waited)		{			if(!remains) return 0;			NdisMSleep((waited=MINI(uMicroPeriod,remains)));		}		return 1;	};		void	Release(void)	{		NdisAcquireSpinLock(&m_SpinLock);		m_Value = 0;		NdisReleaseSpinLock(&m_SpinLock);	};private:		NDIS_SPIN_LOCK	m_SpinLock;	int				m_Value;};#elseclass	CMutex{public:	CMutex::CMutex(void)	{		memset((void*)&m_Critical,0,sizeof(m_Critical));		InitializeCriticalSection(&m_Critical);	};	CMutex::~CMutex(void)	{		DeleteCriticalSection(&m_Critical);	};	int	TryLock(void)	{		return TryEnterCriticalSection(&m_Critical);	};		int	Lock(U32 uMicroSeconds=WAIT_FOREVER, U32 uMicroPeriod=1000)	{		EnterCriticalSection(&m_Critical);		return 1;	};		void	Release(void)	{		LeaveCriticalSection(&m_Critical);	};private:	CRITICAL_SECTION	m_Critical;};#endif/**************************************************************************************** * * Queue definition and implementation * ****************************************************************************************/typedef	struct	_CQUEUE_GEN_HEADER{	struct	_CQUEUE_GEN_HEADER	*pNext;	U32		uFlags;	PVOID	pPacket;	U16		nReserved;	U16		nLength;} CQUEUE_GEN_HEADER, *PCQUEUE_GEN_HEADER;#define	CQueueGetUserPointer(ptr)	\	((PVOID)((U32)(ptr) + sizeof(CQUEUE_GEN_HEADER)))	class CQueue{public:	CQueue::CQueue(void)	{		m_pHead = m_pTail = NULL;	};		void Enqueue(PCQUEUE_GEN_HEADER	pObject)	{		HALT(!pObject);		m_spinLock.Lock();		pObject->pNext = NULL;		if(m_pTail == NULL)		{			m_pHead = m_pTail = pObject;		}		else			{			m_pTail->pNext = pObject;			m_pTail = pObject;		}		m_spinLock.Release();	};	PCQUEUE_GEN_HEADER	Dequeue(void)	{		PCQUEUE_GEN_HEADER	pcurr = m_pHead;		m_spinLock.Lock();		if(m_pHead != NULL) 		{			if(m_pHead == m_pTail)				m_pHead = m_pTail = NULL;			else				m_pHead = m_pHead->pNext;		}		m_spinLock.Release();		return pcurr;	};	PCQUEUE_GEN_HEADER	GetHead(void) 	{		return m_pHead;	};	int	IsQueueEmpty(void) { return (m_pHead == NULL); };	int	Size(void) 	{		int	size;		PCQUEUE_GEN_HEADER	pcurr;				for(size=0,pcurr=m_pHead;			pcurr;			pcurr=pcurr->pNext,size++) ;					return size;	};	private:	CSpinlock			m_spinLock;	CQUEUE_GEN_HEADER	*m_pHead,*m_pTail;};#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品99精品国产| 欧美日韩中文一区| 亚洲精品一线二线三线无人区| 久久新电视剧免费观看| 在线观看视频一区二区| 欧美一级欧美三级在线观看| 亚洲成人高清在线| 欧美日韩一区三区四区| 五月天激情综合网| 久久久精品免费网站| caoporm超碰国产精品| 一区二区三区四区乱视频| 在线观看一区不卡| 美女网站色91| 国产精品视频免费| 欧美三级三级三级| 精东粉嫩av免费一区二区三区| 久久男人中文字幕资源站| av电影在线观看完整版一区二区| 国产精品久久毛片a| 欧美吻胸吃奶大尺度电影| 久久精品国产成人一区二区三区| 成人小视频在线观看| 秋霞国产午夜精品免费视频| 2020国产精品自拍| 丰满岳乱妇一区二区三区| 亚洲人成在线观看一区二区| 欧美人狂配大交3d怪物一区| 国产麻豆视频精品| 亚洲最大的成人av| 亚洲成人激情社区| 激情丁香综合五月| 99久久夜色精品国产网站| 欧美四级电影网| www成人在线观看| 亚洲欧洲精品一区二区精品久久久 | 亚洲欧美在线视频观看| 亚洲精品成人悠悠色影视| 捆绑变态av一区二区三区| 91免费精品国自产拍在线不卡| 99re这里都是精品| 99国产精品久| 99在线精品免费| 亚洲综合精品自拍| 亚洲欧美在线另类| 国产日韩亚洲欧美综合| 亚洲福利视频三区| 午夜成人免费视频| 日韩国产欧美在线观看| 国产suv精品一区二区6| 一本色道久久综合亚洲aⅴ蜜桃| 91官网在线观看| 国产午夜精品久久久久久久| 一区二区三区精密机械公司| 久热成人在线视频| 欧美亚洲图片小说| 日韩一区在线免费观看| 国产精品一区在线观看乱码| 777a∨成人精品桃花网| 国产精品麻豆欧美日韩ww| 老司机精品视频在线| 欧美最猛性xxxxx直播| 国产欧美日韩久久| 亚洲图片欧美色图| 成人精品国产一区二区4080| 91精品欧美久久久久久动漫 | 欧美日产国产精品| 亚洲丰满少妇videoshd| 不卡的av电影| 久久人人超碰精品| 国产一区二区三区精品视频| 欧美日韩三级一区二区| 日韩伦理免费电影| av中文字幕在线不卡| 久久久久久久网| 国产在线播放一区三区四| 欧美视频日韩视频在线观看| √…a在线天堂一区| 丁香桃色午夜亚洲一区二区三区| 欧美一区二区福利在线| 亚洲午夜激情网页| 91成人免费在线视频| 亚洲一区在线看| 欧美中文字幕一区二区三区亚洲| 亚洲欧洲制服丝袜| 在线看日本不卡| 婷婷开心激情综合| 欧美一区二区免费观在线| 日韩在线观看一区二区| 欧美一区午夜视频在线观看| 蜜臀av一区二区在线免费观看| 精品国产1区二区| 成人sese在线| 亚洲一区二三区| 久久综合九色欧美综合狠狠| av激情成人网| av亚洲精华国产精华精华| 亚洲国产综合色| 精品国产精品网麻豆系列| 成人av在线影院| 久久国产综合精品| 亚洲三级免费观看| 欧美夫妻性生活| 国产成人精品综合在线观看| 亚洲一区二区欧美| 国产日韩欧美不卡在线| 91成人在线精品| 成年人午夜久久久| 美女视频黄免费的久久| 中文字幕一区二区在线播放 | 国产毛片一区二区| 亚洲va欧美va人人爽| 亚洲精品综合在线| 国产精品视频线看| 国产精品天干天干在线综合| 精品国产三级电影在线观看| 精品视频在线视频| eeuss国产一区二区三区| 国产九色精品成人porny | 国产99久久久精品| 国产精品18久久久久| 美女一区二区三区在线观看| 婷婷一区二区三区| 亚洲午夜激情网页| 亚洲国产日产av| 性感美女久久精品| 性做久久久久久久久| 一级女性全黄久久生活片免费| 自拍偷拍亚洲激情| 亚洲乱码国产乱码精品精可以看| 国产精品不卡在线| 一区二区国产视频| 亚洲国产精品嫩草影院| 日韩av在线免费观看不卡| 免播放器亚洲一区| 成人自拍视频在线| 一本一道久久a久久精品| 欧美特级限制片免费在线观看| 在线电影欧美成精品| 欧美一区二区三区成人| 日韩欧美中文一区二区| 精品久久久久久久久久久久久久久 | 毛片基地黄久久久久久天堂| 激情伊人五月天久久综合| www.日韩在线| 日韩片之四级片| 中文字幕亚洲在| 亚洲午夜久久久| 韩国精品在线观看| 91麻豆自制传媒国产之光| 91精品国产一区二区三区| 国产亚洲va综合人人澡精品| 亚洲欧美日韩国产综合| 美女网站一区二区| 在线国产电影不卡| 久久久国产一区二区三区四区小说 | 亚洲激情第一区| 国产精品123区| 欧美三级电影网| 亚洲欧洲av在线| 免费成人美女在线观看| 色先锋久久av资源部| 亚洲精品一区二区三区99| 亚洲男人电影天堂| 高清不卡一二三区| 久久这里只精品最新地址| 欧美aaaaa成人免费观看视频| 91福利国产成人精品照片| 亚洲人成电影网站色mp4| av午夜精品一区二区三区| 国产香蕉久久精品综合网| 国产高清精品在线| 欧美精品一区二区三区在线| 性做久久久久久免费观看| 日本韩国一区二区三区视频| 国产精品私人影院| 国产福利精品一区二区| 中文字幕人成不卡一区| 国产九色sp调教91| 久久综合丝袜日本网| 久久不见久久见中文字幕免费| 91精品国产色综合久久不卡电影| 午夜视频在线观看一区二区| 在线观看一区二区精品视频| 亚洲欧洲制服丝袜| 欧美三区免费完整视频在线观看| 亚洲精品精品亚洲| 欧美日韩一区二区不卡| 亚洲一级电影视频| 56国语精品自产拍在线观看| 狠狠色丁香久久婷婷综合丁香| 欧美国产视频在线| 欧美视频在线播放| 日本亚洲一区二区| 久久久久久久国产精品影院| 91玉足脚交白嫩脚丫在线播放| 午夜久久福利影院| 国产午夜亚洲精品理论片色戒 | 国产精品电影院| 日韩欧美中文字幕公布|