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

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

?? qpribmapalib.s

?? vxworks5.5.1源代碼。完整源代碼
?? S
字號:
/* qPriBMapALib.s - optimized bit mapped priority queue internals *//* Copyright 1984-2000 Wind River Systems, Inc. */	.data	.globl	_copyright_wind_river	.long	_copyright_wind_river/*modification history--------------------01f,28mar00,hk   added .type directive to function names.01e,17mar00,zl   made use of alignment macro _ALIGN_TEXT01d,29jul96,hk   changed to use 'mova', added DEBUG_LOCAL_SYMBOLS option.		 changed 'jsr' to _qPriBMapRemove in _qPriBMapGet to 'bsr'.01c,19may95,hk   worked around 'mova' alignment problem.01b,01may95,hk   optimized.01a,23apr95,hk   written based on mc68k-01m.*//*DESCRIPTIONThis module contains internals to the VxWorks kernel.These routines have been coded in assembler because they have been optimizedfor performance.INTERNALThe C code versions of these routines can be found in qPriBMapLib.c.*/#define _ASMLANGUAGE#include "vxWorks.h"#include "asm.h"#include "qPriNode.h"#if defined(PORTABLE)#define qPriBMapALib_PORTABLE#endif#ifndef qPriBMapALib_PORTABLE#define	BMAP_LIST_ARRAY		36	/* globals */#undef	DEBUG_LOCAL_SYMBOLS	.globl	_qPriBMapPut	.globl	_qPriBMapGet	.globl	_qPriBMapRemove#ifdef	DEBUG_LOCAL_SYMBOLS	.globl	qPriBMapPut1	.globl	qPriBMapPut2	.globl	qPriBMapPut3	.globl	qPriBMapGet1	.globl	dllRemove1	.globl	dllRemove2	.globl	clearMaps	.globl	qPriBMapNoMeta	.globl	qPriBMapMswLsb	.globl	qPriBMapLsw	.globl	qPriBMapLswLsb	.globl	qPriBMapGetHigh	.globl	qPriBMapDExit	.globl	qPriBitTable	.globl	FfsMsbTbl#endif	/* DEBUG_LOCAL_SYMBOLS */	.text/********************************************************************************* qPriBMapPut - insert the specified TCB into the ready queue** This routine inserts a node into a priority bit mapped queue.  The insertion* is based on the specified priority key which is constrained to the range* 0 to 255.  The highest priority is zero.* void qPriBMapPut*     (*     Q_PRI_BMAP_HEAD	*pQPriBMapHead,*     Q_PRI_NODE	*pQPriNode,*     ULONG		key*     )* INTERNAL:*                      +-- Q_PRI_BMAP_HEAD -----+*    pQPriBMapHead --->| Q_PRI_NODE *highNode   |   +-- BMAP_LIST -------------+*                      | BMAP_LIST  *pBMapList ---->| UINT32  metaBMap         |*                      | UINT        nPriority  |   | UINT8   bMap [32]        |*                      +------------------------+   | DL_LIST listArray [256] -+*                                                   |  | DL_NODE *head         |*                  +---- Q_PRI_NODE -----+          |  | DL_NODE *tail         |*    pQPriNode --->| DL_NODE node -------+          +--+-----------------------+*               +0 |  | dlnode *next     |*               +4 |  | dlnode *previous |*                  |  +------------------+*               +8 | ULONG   key         |*                  +---------------------+*/	.align	_ALIGN_TEXT	.type	_qPriBMapPut,@function					/* r4: pQPriBMapHead           */					/* r5: pQPriNode               */_qPriBMapPut:				/* r6: key                     */	mov.l	@r4,r7			/* r7: pQPriBMapHead->highNode */	mov.l	r6,@(Q_PRI_NODE_KEY,r5)	/* pQPriNode->key = key        */	tst	r7,r7	bt	qPriBMapPut1	mov.l	@(Q_PRI_NODE_KEY,r7),r0	/* r0: pQPriBMapHead->highNode->key */	cmp/hi	r6,r0	bf	qPriBMapPut2qPriBMapPut1:	mov.l	r5,@r4			/* pQPriBMapHead->highNode = pQPriNode*/qPriBMapPut2:	mov.l	@(4,r4),r4		/* r4: pQPriBMapHead->pBMapList *//* LOCAL void qPriBMapSet (BMAP_LIST *pBMapList, int priority) * *		r7:	(priority & 0x7) *		r6:	priority ('key' in outer level) *		r4:	pBMapList, &pBMapList->metaBMap *		r3:	(priority >> 3) *		r0:	&qPriBitTable */		not	r6,r3		extu.b	r3,r3		/* r3: priority = 255 - priority */		mov	#0x7,r7		and	r3,r7		/* r7: (priority & 0x7)          */		shlr	r3		shlr2	r3		/* r3: (priority >> 3)           */		mova	qPriBitTable,r0	/* (qPriBitTable must be long aligned)*/		mov	r3,r1		shll2	r1		mov.l	@(r0,r1),r2	/* r2: (1 << (priority >> 3))    */		mov.l	@r4,r1		/* r1: pBMapList->metaBMap       */		or	r2,r1		mov.l	r1,@r4		shll2	r7		mov.l	@(r0,r7),r2	/* r2: (1 << (priority & 0x7))   */		add	r4,r3		mov.b	@(4,r3),r0;	/* r0: pBMapList->bMap [priority >> 3]*/	shll r6		or	r2,r0		mov.b	r0,@(4,r3)	shll2	r6	add	#BMAP_LIST_ARRAY,r6	add	r6,r4		/*r4:&pQPriBMapHead->pBMapList->listArray[key]*//* * void dllAdd (pList, pNode) */		mov.l	@(4,r4),r1	/* r1: pPrev = pList->tail */		mov	#0,r0		/* r0: NULL                */		mov.l	r5,@(4,r4)	/* pList->tail     = pNode */		mov.l	r0,@r5		/* pNode->next     = NULL  */		mov.l	r1,@(4,r5)	/* pNode->previous = pPrev */		tst	r1,r1		/* (pPrev == NULL) ?       */		bt	qPriBMapPut3		mov	r1,r4qPriBMapPut3:	rts;	mov.l	r5,@r4		/* pList->head     = pNode *//********************************************************************************* qPriBMapGet - remove and return first node in priority bit-mapped queue** This routine removes and returns the first node in a priority bit-mapped* queue.  If the queue is empty, NULL is returned.* Q_PRI_NODE *qPriBMapGet*     (*     Q_PRI_BMAP_HEAD *pQPriBMapHead*     )* RETURN: Pointer to first queue node in queue head, or NULL if queue is empty.* INTERNAL:*	r5:	pQPriNode*	r4:	pQPriBMapHead*/#define	QPRIBMAPREMOVE_NOT_CLOBBER_R5	.align	_ALIGN_TEXT	.type	_qPriBMapGet,@function_qPriBMapGet:	mov.l	@r4,r5;	tst	r5,r5	bt	qPriBMapGet1		/* if highNode is NULL we're done */#ifdef	QPRIBMAPREMOVE_NOT_CLOBBER_R5	sts.l	pr,@-sp	bsr	_qPriBMapRemove;	/* r4: pQPriBMapHead, r5: pQPriNode */	nop	lds.l	@sp+,pr#else	/* QPRIBMAPREMOVE_NOT_CLOBBER_R5 */	mov.l	r8,@-sp	sts.l	pr,@-sp	bsr	_qPriBMapRemove;	/* r4: pQPriBMapHead, r5: pQPriNode */	mov	r5,r8			/* save pQPriNode */	mov	r8,r0			/* r0: pQPriNode */	lds.l	@sp+,pr	rts;	mov.l	@sp+,r8#endif	/* QPRIBMAPREMOVE_NOT_CLOBBER_R5 */qPriBMapGet1:	rts;	mov	r5,r0			/* r0: pQPriNode *//********************************************************************************* qPriBMapRemove - remove a node from a priority bit mapped queue** This routine removes a node from the specified bit mapped queue.* STATUS qPriBMapRemove*     (*     Q_PRI_BMAP_HEAD *pQPriBMapHead;*     Q_PRI_NODE      *pQPriNode;*     )* RETURN: OK, always.* INTERNAL:*                      +-- Q_PRI_BMAP_HEAD -----+*    pQPriBMapHead --->| Q_PRI_NODE *highNode   |   +-- BMAP_LIST -------------+*                      | BMAP_LIST  *pBMapList ---->| UINT32  metaBMap         |*                      | UINT        nPriority  |   | UINT8   bMap [32]        |*                      +------------------------+   | DL_LIST listArray [256] -+*                                                   |  | DL_NODE *head         |*                  +---- Q_PRI_NODE -----+          |  | DL_NODE *tail         |*    pQPriNode --->| DL_NODE node -------+          +--+-----------------------+*                  |  | dlnode *next     |*                  |  | dlnode *previous |*                  |  +------------------+*                  | ULONG   key         |*                  +---------------------+*/	.align	_ALIGN_TEXT	.type	_qPriBMapRemove,@function					/* r4: pQPriBMapHead            */_qPriBMapRemove:			/* r5: pQPriNode                */	mov.l	@(Q_PRI_NODE_KEY,r5),r7	/* r7: pQPriNode->key           */	mov.l	@(4,r4),r0		/* r0: pQPriBMapHead->pBMapList */	mov	r7,r6	shll	r6	shll2	r6			/*     key*8 indexes listArray[256] */	add	#BMAP_LIST_ARRAY,r6	/*     add offset to listArray[0]   */	add	r0,r6			/* r6: &pQPriBMapHead->pBMapList    */					/*	->listArray[pQPriNode->key] *//*		    r6     r5 * void dllRemove (pList, pNode) * * (same)	r7:			(pQPriNode->key) * (same)	r6:	pList		(&listArray[pQPriNode->key]) * (same)	r5:	pNode		(pQPriNode) * (same)	r4:			(pQPriBMapHead) * (clobber)	r3: * (clobber)	r2: * (clobber)	r1: * (clobber)	r0: */		mov	r6,r3		mov.l	@(4,r5),r1	/* r1: pNode->previous        */		mov.l	@r5,r0		/* r0: pNode->next            */		mov	r1,r2		tst	r1,r1		/* (pNode->previous == NULL)? */		bf	dllRemove1	/* r1: pNode->previous        */		mov	r3,r1		/* r1: pList                  */dllRemove1:	mov.l	r0,@r1		tst	r0,r0		/* (pNode->next == NULL)?     */		bt	dllRemove2		mov	r0,r3dllRemove2:	mov.l	r2,@(4,r3)	mov.l	@r6,r0;			/* r0: pList->head              */	mov.l	@(4,r4),r3		/* r3: pQPriBMapHead->pBMapList */	tst	r0,r0			/* If (pList->head == NULL)         */	bt	clearMaps		/*     then we clear maps           */	mov.l	@r4,r1			/* r1: pQPriBMapHead->highNode  */	cmp/eq	r1,r5			/* If not deleting highest priority */	bf	qPriBMapDExit		/*     then we are done             */	bra	qPriBMapDExit;	mov.l	r0,@r4			/* update the highest priority task */clearMaps:/*			 r3          r7 * void qPriBMapClear (pBMapList, priority) * * (clobber)	r7:	(priority & 0x7) * (clobber)	r6:	(priority >> 3) * (same)	r5: * (same)	r4: * (same)	r3:	pBMapList, &pBMapList->metaBMap * (clobber)	r2: * (clobber)	r1: * (clobber)	r0:	&qPriBitTable */		not	r7,r6		extu.b	r6,r6		/* r6: priority = 255 - priority */		mov	#7,r7		and	r6,r7		/* r7: (priority & 0x7) */		shlr	r6		shlr2	r6		/* r6: (priority >> 3) */		mova	qPriBitTable,r0	/* (qPriBitTable must be long aligned)*/		shll2	r7		mov.l	@(r0,r7),r1	/* r1: (1 << (priority & 0x7)) */		mov	r3,r2		add	r6,r2		mov.b	@(4,r2),r0	/* r0: pBMapList->bMap [priority >> 3]*/		not	r1,r1		and	r1,r0		mov.b	r0,@(4,r2)		tst	#0xff,r0		bf	qPriBMapNoMeta		mova	qPriBitTable,r0	/* (qPriBitTable must be long aligned)*/		shll2	r6		mov.l	@(r0,r6),r1	/* r1: (1 << (priority >> 3)) */		mov.l	@r3,r0		/* r0: pBMapList->metaBMap */		not	r1,r1		and	r1,r0		mov.l	r0,@r3qPriBMapNoMeta:	mov.l	@r4,r1	cmp/eq	r1,r5			/* have we deleted highest priority? */	bf	qPriBMapDExit		/* If not, then we are done          *//*			r3 * int qPriBMapHigh (pBMapList) * * (clobber)	r7: * (clobber)	r6: * (same)	r5:	(pQPriNode) * (same)	r4:	(pQPriBMapHead) * (same)	r3:	 pBMapList * (clobber)	r2:	 * (clobber)	r1: * (clobber)	r0: */		mov.l	@r3,r6			/* r6: pBMapList->metaBMap */		mov.l	FfsMsbTbl,r0		/* lookup table address in r0 */		mov	r6,r1		shlr16	r1		tst	r1,r1		bt	qPriBMapLsw		mov	r1,r2			/* 0x????xxxx */		shlr8	r1		tst	r1,r1		bt	qPriBMapMswLsb		mov.b	@(r0,r1),r7		/* 0x??xxxxxx */		bra	qPriBMapGetHigh;		add	#24,r7qPriBMapMswLsb:		mov.b	@(r0,r2),r7		/* 0x00??xxxx */		bra	qPriBMapGetHigh;		add	#16,r7qPriBMapLsw:		mov	r6,r1			/* 0x0000???? */		shlr8	r1		tst	r1,r1		bt	qPriBMapLswLsb		mov.b	@(r0,r1),r7		/* 0x0000??xx */		bra	qPriBMapGetHigh;		add	#8,r7qPriBMapLswLsb:		mov.b	@(r0,r6),r7		/* 0x000000?? */qPriBMapGetHigh:		mov	r0,r2			/* r2: _ffsMsbTbl */		mov	r3,r1			/* r3: pBMapList */		add	r7,r1			/* r7: highBits */		mov.b	@(4,r1),r0		shll	r7		extu.b	r0,r0			/* r0: bMap[highBits] */		mov.b	@(r0,r2),r6		/* r6: lowBits */		shll2	r7			/* r7: (highBits << 3) */		or	r6,r7	/* r7: (((highBits << 3) | lowBits) & 0xff) */		not	r7,r7		extu.b	r7,r0			/* r0: 255 - r7 *//* qPriBMapNewHigh: */	shll	r0	shll2	r0			/* scale r0 by sizeof (DL_HEAD) 8 */	add	r3,r0	mov.l	@(BMAP_LIST_ARRAY,r0),r0	mov.l	r0,@r4			/* put highest task into highNode */qPriBMapDExit:	rts;	mov	#0,r0			/* return OK *//* r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 sp pr jsr JSR */		.align	2		.type	qPriBitTable,@objectqPriBitTable:	.long	0x00000001, 0x00000002, 0x00000004, 0x00000008		.long	0x00000010, 0x00000020, 0x00000040, 0x00000080		.long	0x00000100, 0x00000200, 0x00000400, 0x00000800		.long	0x00001000, 0x00002000, 0x00004000, 0x00008000		.long	0x00010000, 0x00020000, 0x00040000, 0x00080000		.long	0x00100000, 0x00200000, 0x00400000, 0x00800000		.long	0x01000000, 0x02000000, 0x04000000, 0x08000000		.long	0x10000000, 0x20000000, 0x40000000, 0x80000000FfsMsbTbl:	.long	_ffsMsbTbl#endif	/* !qPriBMapALib_PORTABLE */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国一区二区在线观看| 国产精品三级电影| 日韩欧美二区三区| 久久蜜桃av一区二区天堂| 国产精品素人一区二区| 亚洲激情第一区| 亚洲国产综合色| 六月丁香婷婷色狠狠久久| 国产.欧美.日韩| 欧美日韩国产在线观看| 中文字幕一区二区三区视频| 国产99久久久精品| 在线观看视频91| 1000部国产精品成人观看| 成人免费看片app下载| 精品久久久久一区二区国产| 日韩精品一区二区三区中文不卡| 日韩视频一区二区在线观看| 久久影视一区二区| 亚洲一卡二卡三卡四卡五卡| 视频一区视频二区中文| 国内精品伊人久久久久影院对白| 久久超碰97人人做人人爱| 成人精品国产一区二区4080| 亚洲天堂精品在线观看| 国产精品影视在线| 在线综合+亚洲+欧美中文字幕| 国产精品久久三区| 99精品热视频| 欧美极品美女视频| 福利电影一区二区| 国产精品乱子久久久久| 精品一区二区国语对白| 日韩女优视频免费观看| 首页欧美精品中文字幕| 欧美高清激情brazzers| 亚洲国产wwwccc36天堂| 欧美日韩在线播放三区四区| 午夜精品久久久久久久久久| 久久久久久免费毛片精品| 99久久精品一区| 久久先锋影音av鲁色资源| 国产精品美女久久久久久久网站| 成人国产精品免费观看动漫 | 北岛玲一区二区三区四区| 亚洲成av人片一区二区| 久久久精品影视| 日韩欧美一级精品久久| 色综合久久88色综合天天| 美女在线一区二区| 欧美性淫爽ww久久久久无| 亚洲国产欧美日韩另类综合| 在线播放视频一区| 精品一二三四在线| 国产精品女主播av| 欧美日韩国产a| 黑人精品欧美一区二区蜜桃| 国产精品视频你懂的| 欧美影院一区二区| 国产91丝袜在线播放| 亚洲综合男人的天堂| 精品成人a区在线观看| 色八戒一区二区三区| 蜜乳av一区二区三区| 国产亚洲制服色| 色国产综合视频| 国产老肥熟一区二区三区| 久久久电影一区二区三区| 一本大道综合伊人精品热热| 日韩高清不卡在线| 1区2区3区欧美| 日韩欧美123| 国产精品资源在线看| 中文字幕在线不卡| 精品成a人在线观看| 色综合久久久久综合| 国产一区二区免费在线| 亚洲午夜影视影院在线观看| 26uuu国产电影一区二区| 国产91精品久久久久久久网曝门| 日本不卡不码高清免费观看| 日韩一区在线看| 久久久久国产精品免费免费搜索| 91官网在线观看| 99re这里只有精品视频首页| 另类调教123区| 日韩高清欧美激情| 亚洲高清在线视频| 一区二区三区四区视频精品免费 | 中文幕一区二区三区久久蜜桃| 欧美三日本三级三级在线播放| 成人丝袜18视频在线观看| 日本女人一区二区三区| 日韩av网站免费在线| 亚洲成a人片在线观看中文| 亚洲va中文字幕| 天天色天天操综合| 男人操女人的视频在线观看欧美| 亚洲尤物视频在线| 亚洲欧美国产毛片在线| 日韩高清一区二区| 国产精品一区二区男女羞羞无遮挡| 久久精品久久精品| 成人丝袜高跟foot| av不卡免费在线观看| 91精品福利视频| 精品国产123| 国产精品久久久久9999吃药| 粉嫩嫩av羞羞动漫久久久| 美女尤物国产一区| 国产99久久久国产精品潘金| 波多野结衣视频一区| 91久久精品国产91性色tv| 欧美日韩综合在线免费观看| 日韩免费高清视频| |精品福利一区二区三区| 亚洲va国产va欧美va观看| 国产自产高清不卡| 精品视频在线免费看| 26uuu国产电影一区二区| 免费观看一级特黄欧美大片| 不卡av在线网| 欧美成人性战久久| 亚洲一区二区三区四区在线观看 | 亚洲一区二区四区蜜桃| 国产麻豆成人精品| 8x8x8国产精品| 久久综合成人精品亚洲另类欧美| 亚洲欧美日韩中文字幕一区二区三区 | 一二三区精品福利视频| 国产美女视频91| 欧美高清在线视频| 国产精品自拍网站| 欧美电视剧在线看免费| 日本免费在线视频不卡一不卡二| av电影在线观看不卡| 欧美成人一区二区三区在线观看 | 日本欧美一区二区| 欧美日本乱大交xxxxx| 亚洲不卡av一区二区三区| 色综合天天做天天爱| 亚洲色图欧洲色图| 91色婷婷久久久久合中文| 久久精品欧美一区二区三区不卡 | 亚洲一区二区视频| 56国语精品自产拍在线观看| 日韩中文欧美在线| 欧美成人免费网站| 国产aⅴ精品一区二区三区色成熟| 日韩午夜激情av| 波多野结衣91| 日韩精品乱码免费| 国产丝袜欧美中文另类| 99久久伊人精品| 五月天视频一区| 欧美电影免费观看完整版| 国产成人啪免费观看软件| 最新不卡av在线| 欧美大黄免费观看| 91老师国产黑色丝袜在线| 一区二区三区在线影院| 婷婷综合久久一区二区三区| 欧美日本乱大交xxxxx| 国产一区二区精品久久91| 亚洲va国产va欧美va观看| xnxx国产精品| 欧美日韩国产成人在线91| 国产传媒日韩欧美成人| 热久久免费视频| 亚洲综合色婷婷| 国产精品电影院| 精品区一区二区| 日韩一级完整毛片| 国产一区在线精品| 国产一区二区福利| 久久99九九99精品| 日韩av不卡一区二区| 亚洲精品高清在线观看| 中文字幕一区二区视频| 国产精品久久久久久福利一牛影视| 欧美福利视频一区| 欧美精品乱码久久久久久| 欧美天天综合网| 欧美人狂配大交3d怪物一区| 欧美精品丝袜中出| 日韩一区二区高清| 久久久国产精品午夜一区ai换脸| 精品国产一区二区三区久久久蜜月 | 日韩免费性生活视频播放| 韩国av一区二区| 看片的网站亚洲| 亚洲chinese男男1069| 亚洲自拍偷拍麻豆| 亚洲精品免费播放| 图片区小说区区亚洲影院| 免费看日韩a级影片| 国产不卡视频在线观看| 九色综合狠狠综合久久| 国精产品一区一区三区mba桃花| a美女胸又www黄视频久久|