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

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

?? qpribmapalib.s

?? VxWorks BSP框架源代碼包含頭文件和驅動
?? 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一区二区三区免费野_久草精品视频
欧美精彩视频一区二区三区| 亚洲一区二区三区在线看| 亚洲视频中文字幕| 日韩成人精品在线| 91看片淫黄大片一级在线观看| 日韩欧美中文字幕一区| 亚洲女子a中天字幕| 国产一区二区剧情av在线| 欧美日韩美少妇| 亚洲精品成人悠悠色影视| 国产成人精品免费| 精品av综合导航| 免费人成黄页网站在线一区二区| 色香色香欲天天天影视综合网 | 国产丶欧美丶日本不卡视频| 精品久久久久久综合日本欧美| 国产精品人妖ts系列视频| 国内精品久久久久影院色| 欧美一区二区三区小说| 亚洲在线视频网站| 91国产免费看| 一区二区在线观看免费 | 精品国产伦一区二区三区观看方式| 一区二区在线电影| 成人成人成人在线视频| 国产精品美女久久久久久久久| 九色porny丨国产精品| 欧美一级搡bbbb搡bbbb| 日韩精品一级中文字幕精品视频免费观看 | 青草av.久久免费一区| 91麻豆精品国产自产在线观看一区| 一个色妞综合视频在线观看| 在线精品视频一区二区| 亚洲一区二区黄色| 欧美午夜精品一区二区三区| 午夜精品123| 日韩一级在线观看| 激情另类小说区图片区视频区| 欧美sm极限捆绑bd| 国产一区二区免费在线| 中日韩av电影| 色老头久久综合| 亚洲sss视频在线视频| 欧美久久久久免费| 极品美女销魂一区二区三区免费| 久久久久久久综合狠狠综合| 91美女片黄在线| 亚洲女与黑人做爰| 欧美电影影音先锋| 国产裸体歌舞团一区二区| 亚洲国产经典视频| 8x8x8国产精品| 自拍偷拍亚洲综合| 一本色道久久综合狠狠躁的推荐| 国产乱国产乱300精品| 性做久久久久久久免费看| av不卡一区二区三区| 欧美日韩国产小视频| 国产精品国产精品国产专区不片| 日韩欧美三级在线| 777久久久精品| 欧美三级欧美一级| 91女人视频在线观看| 国产成人日日夜夜| 国产成人免费视频网站 | 亚洲精品日日夜夜| 国产精品乱人伦中文| 久久久久久久久久看片| 久久综合国产精品| 日韩免费电影一区| 日韩一区二区在线观看视频播放| 欧美美女直播网站| 欧美精品粉嫩高潮一区二区| 欧美在线啊v一区| 欧美日韩视频专区在线播放| 欧美丝袜自拍制服另类| 欧美性做爰猛烈叫床潮| 欧美吻胸吃奶大尺度电影| 欧美性受xxxx| 欧美高清激情brazzers| 在线电影一区二区三区| 日韩欧美国产不卡| 精品久久久久av影院| 久久一区二区视频| 欧美激情一区二区| 日韩伦理电影网| 亚洲一本大道在线| 青娱乐精品视频| 国产美女一区二区三区| 成人永久aaa| 色国产综合视频| 在线91免费看| 欧美电影免费观看高清完整版在 | 九九热在线视频观看这里只有精品| 久久精品久久精品| 粉嫩av亚洲一区二区图片| 本田岬高潮一区二区三区| 91九色02白丝porn| 91精品国产综合久久福利软件| 欧美成人一区二区三区在线观看 | 亚洲男人的天堂av| 亚洲福利国产精品| 久久99热这里只有精品| 懂色av噜噜一区二区三区av| 色综合久久久久综合| 91麻豆精品国产91久久久资源速度| 精品国产凹凸成av人网站| 国产精品欧美一区二区三区| 日韩高清一级片| 国产综合久久久久久鬼色| 97se狠狠狠综合亚洲狠狠| 欧美日韩一区不卡| 久久你懂得1024| 亚洲午夜电影在线| 国产一区二区在线视频| 91免费国产在线| 精品区一区二区| 亚洲美女屁股眼交| 国内精品国产成人国产三级粉色 | 日韩精品视频网| 成人黄色电影在线| 欧美一卡二卡三卡四卡| 中文字幕在线不卡一区二区三区| 日韩在线播放一区二区| 成人爱爱电影网址| 26uuu久久天堂性欧美| 一区二区免费看| 国产成人亚洲综合a∨猫咪| 欧美蜜桃一区二区三区| **网站欧美大片在线观看| 老司机午夜精品| 欧美性受xxxx| 最近中文字幕一区二区三区| 久久不见久久见免费视频7| 欧美在线|欧美| 国产精品国产馆在线真实露脸| 免费成人在线观看| 精品视频一区二区三区免费| 中文字幕中文字幕在线一区| 九色综合狠狠综合久久| 欧美日本韩国一区二区三区视频| 亚洲丝袜美腿综合| 东方欧美亚洲色图在线| 亚洲精品一区二区三区香蕉| 视频一区二区国产| 91黄色免费版| 亚洲欧美一区二区三区久本道91| 高清不卡一区二区| 久久精品在线观看| 国产一区二区按摩在线观看| 欧美xxxxx裸体时装秀| 首页国产欧美久久| 欧美日韩在线三级| 亚洲国产裸拍裸体视频在线观看乱了 | 欧洲精品视频在线观看| 日本一区二区不卡视频| 国产成人精品网址| 久久久久免费观看| 国产一区二区在线观看免费| 日韩精品在线看片z| 日本人妖一区二区| 欧美一区二区久久久| 视频一区二区国产| 欧美精品久久久久久久久老牛影院| 亚洲午夜免费电影| 欧美日韩国产乱码电影| 亚洲va在线va天堂| 色老汉一区二区三区| 亚洲午夜视频在线观看| 欧美日韩国产首页在线观看| 亚洲aaa精品| 69堂亚洲精品首页| 精久久久久久久久久久| 久久久精品免费观看| 不卡一区二区三区四区| 亚洲美女视频在线观看| 欧美日韩一区三区| 蜜臀精品久久久久久蜜臀| 精品奇米国产一区二区三区| 国产精品 欧美精品| 中文字幕一区二| 欧美日韩色综合| 久久精品国产一区二区三| 欧美精品一区二区三区在线播放| 国产a久久麻豆| 玉足女爽爽91| 91精品国产高清一区二区三区蜜臀 | 国产伦精一区二区三区| 国产精品久久免费看| 在线观看成人小视频| 免费欧美高清视频| 国产情人综合久久777777| 91免费版在线看| 日本一区中文字幕| 国产午夜一区二区三区| 色婷婷国产精品综合在线观看| 天天亚洲美女在线视频| 国产目拍亚洲精品99久久精品| 欧美在线免费观看视频| 精品无人码麻豆乱码1区2区|