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

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

?? windalib.s

?? vxworks的源代碼
?? S
?? 第 1 頁 / 共 2 頁
字號:
	/* exiting task code */taskCode:	mfmsr	p0				/* read msr */	/* carve stack - equavalent to STACK_ROUND_UP (2*_PPC_REG_SIZE) */ 	stwu	sp, -_STACK_ALIGN_SIZE(sp)	/* carve space */	stw	p0, 0(sp)			/* save msr on stack */	INT_MASK(p0, p1)			/* mask ee bit */	mtmsr	p1				/* LOCK INTERRUPT */	isync					/* SYNC */checkTaskSwitch:	/*	 * p7 = taskIdCurrent	 * p1 = readyQHead	 */        lis     p7, HIADJ(taskIdCurrent)        lwz     p7, LO(taskIdCurrent)(p7)        lis     p1, HIADJ(readyQHead)        lwz     p1, LO(readyQHead)(p1)	cmpw	p7, p1				/* if same */	beq	checkWorkQ	lwz	p1, WIND_TCB_LOCK_CNT(p7)	/* load task lock counter */	cmpwi	p1, 0				/* task preemption allowed */	beq	saveTaskContext			/* yes, save task context */	lwz	p2, WIND_TCB_STATUS(p7)		/* load task status */	cmpwi	p2, 0				/* is task ready to run */	bne	saveTaskContextcheckWorkQ:	/* p3 = workQIsEmpty */        lis     p3, HIADJ(workQIsEmpty)        lwz     p3, LO(workQIsEmpty)(p3)	cmpwi	p3, 0				/* check work queue */	bne	workQueueEmpty			/* no work to do */	 	lwz	p0, 0(sp)			/* pass original MSR in p0 */	stwu	sp, -FRAMEBASESZ(sp)	     	/* carve frame base */	mfspr	p4, LR		    	     	/* read lr to p4 */	stw	p4, FRAMEBASESZ+_PPC_REG_SIZE(sp) /* save lr */	bl	emptyWorkQueue			/* empty workQueue */	addi	sp, sp, FRAMEBASESZ		/* recover frame stack */	lwz	p4, _PPC_REG_SIZE(sp)		/* load saved lr */	mtspr	LR, p4				/* restore lr */	b	checkTaskSwitch			/* go to checkTaskSwitch */workQueueEmpty:	/* kernelState = FALSE */        xor     p0, p0, p0        lis     p1, HIADJ(kernelState)        stw     p0, LO(kernelState)(p1)	lwz	p3, 0(sp)			/* restore msr from stack */	mtmsr	p3				/* UNLOCK INTERRUPT if neccessary */	isync					/* SYNC */	/* recover stack - equavalent to STACK_ROUND_UP (2*_PPC_REG_SIZE) */ 	addi	sp, sp, _STACK_ALIGN_SIZE	/* recover stack */	blrsaveTaskContext:	/* p7 points to taskIdCurrent */	/* p1 = errno */        lis     p1, HIADJ(errno)        lwz     p1, LO(errno)(p1)	mfspr	p2, LR				/* load LR */	stw	p1, WIND_TCB_ERRNO(p7)		/* save errno */	lwz	p3, 0(sp)			/* read saved msr */	stw	p2, WIND_TCB_PC(p7)		/* save lr to be new pc */	li	p1, 0				/* move zero p1 */	/* recover stack - equavalent to 	 * STACK_ROUND_UP (2*_PPC_REG_SIZE)) */ 	addi	sp, sp, _STACK_ALIGN_SIZE	/* recover stack */	stw	p3, WIND_TCB_MSR(p7) 		/* save msr */	stw	sp, WIND_TCB_SP(p7)		/* save stack pointer */	stw	p1, WIND_TCB_P0(p7)		/* return zero for windExit */#if	(CPU==PPC601)	mfspr	p2, MQ				/* load mq to p2 */	stw	p2, WIND_TCB_MQ(p7)		/* save mq to p2 */#endif	/* (CPU==PPC601) */#if	(CPU==PPC85XX)	mfspr	p2, SPEFSCR			/* load SPEFSCR to p2 */	stw	p2, WIND_TCB_SPEFSCR(p7)	/* save SPEFSCR from p2 */#endif	/* (CPU==PPC85XX) */	mfcr	p1				/* save cr */  	stw	p1, WIND_TCB_CR(p7)		/* save cr */	stw	r2, WIND_TCB_R2(p7)		/* save r2 */	stw	r13, WIND_TCB_R13(p7)		/* save r13 */	stw	t0, WIND_TCB_T0(p7)		/* save non-volatile reg */	stw	t1, WIND_TCB_T1(p7)		/* save non-volatile reg */	stw	t2, WIND_TCB_T2(p7)		/* save non-volatile reg */	stw	t3, WIND_TCB_T3(p7)		/* save non-volatile reg */	stw	t4, WIND_TCB_T4(p7)		/* save non-volatile reg */	stw	t5, WIND_TCB_T5(p7)		/* save non-volatile reg */	stw	t6, WIND_TCB_T6(p7)		/* save non-volatile reg */	stw	t7, WIND_TCB_T7(p7)		/* save non-volatile reg */	stw	t8, WIND_TCB_T8(p7)		/* save non-volatile reg */	stw	t9, WIND_TCB_T9(p7)		/* save non-volatile reg */	stw	t10, WIND_TCB_T10(p7) 		/* save non-volatile reg */	stw	t11, WIND_TCB_T11(p7) 		/* save non-volatile reg */	stw	t12, WIND_TCB_T12(p7) 		/* save non-volatile reg */	stw	t13, WIND_TCB_T13(p7) 		/* save non-volatile reg */	stw	t14, WIND_TCB_T14(p7) 		/* save non-volatile reg */	stw	t15, WIND_TCB_T15(p7) 		/* save non-volatile reg */	stw	t16, WIND_TCB_T16(p7) 		/* save non-volatile reg */	stw	t17, WIND_TCB_T17(p7) 		/* save non-volatile reg */	mtmsr	p3				/* restore msr when it's called */	isync					/* SYNC */	b	FUNC(reschedule)/******************************************************************************** windLoadContext - load the register context from the control block** The registers of the current executing task, (the one reschedule chose),* are restored from the control block.  This means that all registers* are available for usage since the prior task context was saved* before reschedule was called. There is no exception stack frame in the* PowerPC architecture so none is simulated in doing the context switch.* Previous interrupt state and new context is restored and a jump to PC* places us in the new context.  Interrupts are locked on entry to this* routine so moving the old status register to the processor with a mtmsr* will re-enable interrupts if previously enabled.*** NOMANUAL* void windLoadContext ()*/FUNC_LABEL(windLoadContext)	/* r3 = taskIdCurrent */        lis     r3, HIADJ(taskIdCurrent)        lwz     r3, LO(taskIdCurrent)(r3)	lwz	r4, WIND_TCB_ERRNO(r3)		/* read errno */	/* save errno */        lis     r5, HIADJ(errno)        stw     r4, LO(errno)(r5)	lwz	r0, WIND_TCB_R0(r3)		/* restore r0 */	lwz	r5, WIND_TCB_R5(r3)		/* restore r5 */	lwz	r6, WIND_TCB_R6(r3)		/* restore r6 */	lwz	r4, WIND_TCB_LR(r3)		/* get lr */	lwz	r7, WIND_TCB_R7(r3)		/* restore r7 */	mtspr	LR, r4				/* restore lr */	lwz	r8, WIND_TCB_R8(r3)		/* restore r8 */	lwz	r4, WIND_TCB_CTR(r3)		/* get counter register */	lwz	r9, WIND_TCB_R9(r3)		/* restore r9 */	mtspr	CTR, r4				/* restore counter register */	lwz	r10, WIND_TCB_R10(r3)		/* restore r10 */	lwz	r4, WIND_TCB_XER(r3)		/* get xer */	lwz	r11, WIND_TCB_R11(r3)		/* restore r11 */	mtspr	XER, r4				/* restore xer */	lwz	r12, WIND_TCB_R12(r3)		/* restore r12 */	lwz	r13, WIND_TCB_R13(r3)		/* restore r13 */	lwz	r14, WIND_TCB_R14(r3)		/* restore r14 */	lwz	r15, WIND_TCB_R15(r3)		/* restore r15 */	lwz	r16, WIND_TCB_R16(r3)		/* restore r16 */	lwz	r17, WIND_TCB_R17(r3)		/* restore r17 */	lwz	r18, WIND_TCB_R18(r3)		/* restore r18 */	lwz	r19, WIND_TCB_R19(r3)		/* restore r19 */	lwz	r20, WIND_TCB_R20(r3)		/* restore r20 */	lwz	r21, WIND_TCB_R21(r3)		/* restore r21 */	lwz	r22, WIND_TCB_R22(r3)		/* restore r22 */	lwz	r23, WIND_TCB_R23(r3)		/* restore r23 */	lwz	r24, WIND_TCB_R24(r3)		/* restore r24 */	lwz	r25, WIND_TCB_R25(r3)		/* restore r25 */	lwz	r26, WIND_TCB_R26(r3)		/* restore r26 */	lwz	r27, WIND_TCB_R27(r3)		/* restore r27 */	lwz	r28, WIND_TCB_R28(r3)		/* restore r28 */	lwz	r29, WIND_TCB_R29(r3)		/* restore r29 */	lwz	r30, WIND_TCB_R30(r3)		/* restore r30 */	lwz	r31, WIND_TCB_R31(r3)		/* restore r31 */#if	(CPU==PPC601)	lwz	r4, WIND_TCB_MQ(r3)		/* load mq */	mtspr	MQ, r4				/* restore mq */#endif	/* (CPU==PPC601) */#if	(CPU==PPC85XX)	lwz	r4, WIND_TCB_SPEFSCR(r3)	/* load SPEFSCR */	mtspr	SPEFSCR, r4			/* restore SPEFSCR */#endif	/* (CPU==PPC85XX) */	lwz	r2, WIND_TCB_R2(r3)		/* restore r2 */	lwz	sp, WIND_TCB_SP(r3)		/* restore sp */	lwz	r4, WIND_TCB_CR(r3)		/* get cr */	mtcrf	255, r4				/* restore cr */	mfmsr	r4				/* read msr */	INT_MASK(r4,r4)				/* clear EE bit in msr */	mtmsr	r4 				/* DISABLE INTERRUPT */	isync#ifdef	_WRS_TLB_MISS_CLASS_SW	/*	 * Turn off MMU to keep SW TLB Miss handler from corrupting	 * SRR0, SRR1.	 */	lwz	r4, WIND_TCB_PC(r3)		/* restore pc */	mtspr	SPRG0, r4			/* restore pc */	lwz	r4, WIND_TCB_MSR(r3)		/* restore msr */	mtspr	SPRG3, r4			/* restore msr */	lwz	r4, WIND_TCB_R4(r3)		/* restore r4 */	lwz	r3, WIND_TCB_R3(r3)		/* restore r3 */	mtspr	SPRG2,r3						/* turn off the MMU before */						/* to restore the SRR0/SRR1 */	mfmsr	r3				/* read msr */	rlwinm	r3,r3,0,28,25			/* disable Instr/Data trans */	mtmsr	r3				/* set msr */	isync					/* synchronization */	mfspr	r3, SPRG0	mtspr	SRR0, r3	mfspr	r3, SPRG3	mtspr	SRR1, r3	mfspr	r3, SPRG2#else  /* !_WRS_TLB_MISS_CLASS_SW */	/*	 * both MMU-less and MMU with miss handler in HW use this code	 */	lwz	r4, WIND_TCB_PC(r3)	mtspr	SRR0, r4			/* restore pc */	lwz	r4, WIND_TCB_MSR(r3)	mtspr	SRR1, r4			/* restore msr */	lwz	r4, WIND_TCB_R4(r3)		/* restore r4 */	lwz	r3, WIND_TCB_R3(r3)		/* restore r3 */#endif  /* _WRS_TLB_MISS_CLASS_SW */	rfi					/* restore context *//********************************************************************************* windIntStackSet - set the interrput stack pointer** This routine sets the inerrupt stack pointer to the sepecified address.* Software register 0 is used to point to the stack pointer.  Software* register 1 is set to the interrupt nesting count.** NOMANUAL* void windIntStackSet*     (*     char * pBotStack	/@ pointer to bottom of interrupt stack @/*     )*/FUNC_LABEL(windIntStackSet)	mfmsr	p1				/* load msr to p1 */	INT_MASK(p1, p2)			/* mask EE bit */	mtmsr	p2				/* LOCK INTERRUPT */	isync					/* SYNC */	mtspr	SPRG0, p0			/* set stack */	li	p2, 0				/* set p2 to 0 */	mtspr	SPRG1, p2			/* set intCnt to 0 */        lis     p3, HIADJ(vxIntStackBase)        stw     p0, LO(vxIntStackBase)(p3)     /* save vxIntStackBase */	mtmsr	p1				/* UNLOCK INTERRUPT */	isync					/* SYNC */	blr

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美综合一区| 一区二区三区四区蜜桃 | 韩国毛片一区二区三区| 国产精品国产a| 日韩视频在线观看一区二区| 白白色 亚洲乱淫| 蜜臀精品久久久久久蜜臀| 亚洲色图都市小说| 26uuu色噜噜精品一区| 欧美嫩在线观看| 色婷婷久久久亚洲一区二区三区 | 亚洲欧洲日本在线| 久久嫩草精品久久久精品一| 7777精品伊人久久久大香线蕉的 | 日韩一二三区不卡| 在线亚洲高清视频| 暴力调教一区二区三区| 国产老肥熟一区二区三区| 日本网站在线观看一区二区三区| 中文字幕欧美一| 国产日韩影视精品| 26uuu国产一区二区三区| 91麻豆精品国产自产在线观看一区 | 欧美亚洲国产一卡| 97精品久久久午夜一区二区三区 | 色欧美日韩亚洲| www.欧美日韩| 成人午夜激情视频| 国产福利91精品一区二区三区| 日本特黄久久久高潮| 日本特黄久久久高潮| 日韩高清不卡一区二区三区| 亚洲小说春色综合另类电影| 亚洲综合小说图片| 亚洲一区二区三区四区中文字幕| 亚洲日本青草视频在线怡红院 | 久久久亚洲综合| www国产精品av| 精品久久五月天| 久久天堂av综合合色蜜桃网| 久久女同精品一区二区| 国产亚洲视频系列| 中文字幕乱码一区二区免费| 欧美激情一区二区三区四区| 欧美国产精品一区二区| 国产精品国产成人国产三级| 亚洲欧美另类久久久精品 | 97aⅴ精品视频一二三区| 成人久久视频在线观看| 国产成人av一区二区三区在线| 久久爱另类一区二区小说| 国产综合久久久久久久久久久久| 国产成人精品免费一区二区| 岛国av在线一区| 91啪在线观看| 精品视频在线免费观看| 69堂精品视频| 精品国产麻豆免费人成网站| 久久精品一区二区三区不卡| 日本一区二区三区在线不卡| 亚洲欧美视频在线观看| 五月综合激情网| 久久激情五月激情| 粉嫩13p一区二区三区| 色综合久久久久久久久| 欧美日韩一区二区三区高清| 91.麻豆视频| 久久色中文字幕| 亚洲色欲色欲www在线观看| 亚洲成人av资源| 国产在线一区二区| 色综合天天视频在线观看| 欧美日韩卡一卡二| xnxx国产精品| 亚洲欧美另类图片小说| 日本午夜精品视频在线观看| 国产69精品久久777的优势| 91亚洲大成网污www| 91精品婷婷国产综合久久| 久久久亚洲精华液精华液精华液| 亚洲乱码中文字幕| 久久成人免费电影| 色老汉av一区二区三区| 亚洲成人动漫av| 粉嫩aⅴ一区二区三区四区| 欧美日本不卡视频| 国产视频一区在线播放| 亚洲.国产.中文慕字在线| 国产成人a级片| 在线综合亚洲欧美在线视频| 国产精品视频第一区| 午夜激情一区二区| av欧美精品.com| 精品久久一区二区三区| 一二三区精品视频| 成人高清视频在线| 欧美成人综合网站| 亚洲国产成人av| 99天天综合性| 久久毛片高清国产| 日本成人中文字幕| 91黄色在线观看| 久久精品男人的天堂| 日韩1区2区3区| 在线亚洲+欧美+日本专区| 中国色在线观看另类| 免费高清成人在线| 欧美私人免费视频| 亚洲欧美日韩国产手机在线| 国产一区二区三区美女| 欧美日本精品一区二区三区| 国产成人99久久亚洲综合精品| 欧美美女直播网站| 亚洲一区免费观看| 99re成人精品视频| 国产精品国产馆在线真实露脸| 国产在线看一区| 日韩色视频在线观看| 五月天激情综合| 欧美日韩一本到| 亚洲在线视频网站| 日本久久精品电影| 亚洲精品中文字幕乱码三区| 成人av在线电影| 国产精品网友自拍| 国产91对白在线观看九色| 久久精品亚洲精品国产欧美 | 色av成人天堂桃色av| 国产精品午夜久久| 成人美女在线观看| 国产精品麻豆99久久久久久| 国产宾馆实践打屁股91| 国产亚洲欧美在线| 粉嫩av一区二区三区粉嫩| 国产欧美日韩另类一区| 国产一区二区三区免费| 久久久精品黄色| 国产99久久久精品| 国产精品污www在线观看| 国产美女一区二区| 国产欧美精品在线观看| 国产精品18久久久久久久久久久久 | 日韩不卡一二三区| 7777精品伊人久久久大香线蕉的| 日韩国产成人精品| 婷婷丁香久久五月婷婷| 欧美婷婷六月丁香综合色| 日韩经典中文字幕一区| 91精品国产欧美一区二区成人| 日本vs亚洲vs韩国一区三区| 精品国产伦一区二区三区观看体验 | 国产成人aaa| 中文字幕一区视频| 欧美在线视频不卡| 免费av网站大全久久| 精品美女一区二区| 丰满少妇久久久久久久| 国产精品久久久久久久久快鸭| 91视频在线观看| 天天射综合影视| 精品国产91乱码一区二区三区 | 国产99久久久国产精品潘金网站| 中文子幕无线码一区tr| 欧美在线视频全部完| 久久精品99久久久| 国产精品网站在线观看| 欧美三级中文字| 国产精品一二三四| 亚洲国产你懂的| 精品免费一区二区三区| 99vv1com这只有精品| 免费精品视频在线| 中文字幕成人av| 欧美精品日韩一区| 国产成人激情av| 亚洲国产精品久久人人爱| 欧美精品一区二区不卡| 91美女片黄在线观看91美女| 日韩黄色免费电影| 国产精品美女视频| 欧美一区二区三区在线视频| 岛国精品在线播放| 蜜桃视频一区二区| 亚洲三级免费电影| 欧美精品一区二区三| 欧美色偷偷大香| 岛国精品在线观看| 麻豆成人久久精品二区三区红| 国产精品国产三级国产普通话99| 欧美一区二区三区成人| 成年人网站91| 加勒比av一区二区| 亚洲成人av免费| 亚洲免费在线观看| 久久精品一级爱片| 日韩一本二本av| 欧美日韩一区二区在线观看| 不卡视频在线看| 精品写真视频在线观看| 五月天视频一区|