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

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

?? spelib.c

?? vxworks5.5.1源代碼。完整源代碼
?? C
字號:
/* speLib.c - SPE support library *//* Copyright 1984-1994 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01b,17oct02,dtr  Change bit masking of SPE bit in msr.01a,29mar01,pcs  Implement code review suggestions.*//*DESCRIPTIONThis library provides a general interface to the Spe part of the gpr's.To activate SPE support, speInit() must be called before anytasks using the SPE are spawned.  This is done automatically bythe root task, usrRoot(), in usrConfig.c when the configuration macroINCLUDE_SPE is defined.For information about architecture-dependent SPE routines, seethe manual entry for speArchLib.The speShow() routine displays spe registers on a per-task basis.For information on this facility, see the manual entries for speShow andspeShow().VX_SPE_TASK OPTIONSaving and restoring SPE registers adds to the context switchtime of a task.  Therefore, SPE registers are not savedand restored for every task.  Only those tasks spawned with the taskoption VX_SPE_TASK will have SPE registers saved and restored..RS 4 4\%NOTE:  If a task does any spe operations,it must be spawned with VX_SPE_TASK..REINTERRUPT LEVELSPE registers are not saved and restored for interruptservice routines connected with intConnect().  However, if necessary,an interrupt service routine can save and restore spe registersby calling routines in speArchLib.INCLUDE FILES: speLib.hSEE ALSO: speArchLib, speShow, intConnect(),.pG "Basic OS"*/#include "vxWorks.h"#include "objLib.h"#include "private/taskLibP.h"#include "taskArchLib.h"#include "taskHookLib.h"#include "memLib.h"#include "stdio.h"#include "iv.h"#include "speLib.h"#include "regs.h"#include "logLib.h"#include "string.h"/* globals */extern WIND_TCB *       pTaskLastSpeTcb;WIND_TCB *	pSpeTaskIdPrevious;	/* Task ID for deferred exceptions */FUNCPTR		speCreateHookRtn;	/* arch dependent create hook routine */FUNCPTR		speDisplayHookRtn;	/* arch dependent display routine *//* forward declarations */LOCAL void speCreateHook (WIND_TCB *pTcb);LOCAL void speSwapHook (WIND_TCB *pOldTcb, WIND_TCB *pNewTcb);LOCAL SPE_CONTEXT * pSpeDummyContext;/********************************************************************************* speInit - initialize spe coprocessor support** This routine initializes spe coprocessor support and must be* called before using the spe coprocessor.  This is done* automatically by the root task, usrRoot(), in usrConfig.c when the* configuration macro INCLUDE_SPE is defined.* * RETURNS: N/A*/void speInit (void)    {    if ( speProbe() == OK )       {       taskCreateHookAdd ((FUNCPTR) speCreateHook);       taskSwapHookAdd ((FUNCPTR) speSwapHook);       /* Allocate memory for Dummy spe task context */       pSpeDummyContext = (SPE_CONTEXT *) memalign (_CACHE_ALIGN_SIZE,sizeof (SPE_CONTEXT));       if ( pSpeDummyContext != NULL )       {            /* fills with Zero     */          bfill ((char *) pSpeDummyContext, sizeof (SPE_CONTEXT), 0);        }       speArchInit ();       }    }/********************************************************************************* speCreateHook - initialize spe coprocessor support for task** Carves an spe context from the end of the stack.* This routine is called whenever a task is created with the VX_SPE_TASK* option bit set. This routine has to installed in the Task Create Table via* the taskCreateHookAdd routine when the spe Library is initialized.** NOMANUAL*/LOCAL void speCreateHook    (    FAST WIND_TCB *pTcb		/* newly create task tcb */    )    {    unsigned int *pMem;    /* check for option bit and presence of the spe */    if (pTcb->options & VX_SPE_TASK)	{	/* allocate space for saving context and registers */        /*           * The spe context has to be 16 byte aligned.         * We have to ask for an extra 8 bytes to allow for the 	 * rounding up to the 16 byte address in case taskStackAllot()	 * returns an 8 byte aligned memory address.         */        pMem = taskStackAllot ((int) pTcb, sizeof (SPE_CONTEXT) + _CACHE_ALIGN_SIZE); 	if ( pMem == NULL )	   return;        /*  Align on a 16 byte boundary. */        pMem = (unsigned int *) ROUND_UP(pMem,_CACHE_ALIGN_SIZE);        SPE_CONTEXT_SET(pTcb,pMem);	pTcb->regs.msr |= (_PPC_MSR_SPE);           /* enable SPE */	taskSwapHookAttach ((FUNCPTR) speSwapHook, (int) pTcb, 			    TRUE, FALSE);	taskLock ();	speArchTaskCreateInit ((SPE_CONTEXT *)pMem);	taskUnlock ();                /* Call Arch specific routine. */	if (speCreateHookRtn != NULL)	    (*speCreateHookRtn) (pTcb);	}    else         SPE_CONTEXT_SET(pTcb,NULL);         }/********************************************************************************* speSwapHook - swap in task spe registers** This routine is the task swap hook that implements the task spe* registers facility.  It swaps the current and saved values of* all the task spe registers of the last spe task and the* in-coming spe task.* This routine is called whenever a task is Swapped in by the Kernel scheduler* This routine has to installed in the Task Swap Table via the taskSwapHookAdd * routine when the spe Library is initialized.*/LOCAL void speSwapHook    (    WIND_TCB *pOldTcb,      /* task tcb switching out */    FAST WIND_TCB *pNewTcb  /* task tcb switching in */    )    {    SPE_CONTEXT * pSpe;    if (pTaskLastSpeTcb == pNewTcb)        return;     /* save task spe registers into last spe task */    if (pTaskLastSpeTcb != NULL)        {        pSpeTaskIdPrevious = pTaskLastSpeTcb;        pSpe = SPE_CONTEXT_GET(pTaskLastSpeTcb);        speSave (pSpe);        }    else        speSave (pSpeDummyContext);     /* to avoid protocol errors */    /* restore task spe registers of incoming task */        if (pNewTcb->options & VX_SPE_TASK)       {       pSpe = SPE_CONTEXT_GET(pNewTcb);       speRestore (pSpe);       }    pTaskLastSpeTcb = pNewTcb;    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女脱光内衣内裤视频久久网站| 免费在线成人网| 欧美亚洲免费在线一区| 日本伊人午夜精品| 国产亚洲成年网址在线观看| 色婷婷亚洲精品| 久久99久久99精品免视看婷婷| 国产精品久久久久一区二区三区 | 欧美日韩国产片| 另类小说综合欧美亚洲| 欧美经典一区二区| 欧美视频一区二区三区在线观看 | proumb性欧美在线观看| 亚洲大片一区二区三区| 日韩欧美你懂的| 99国内精品久久| 老司机免费视频一区二区三区| 国产精品免费aⅴ片在线观看| 欧美日韩一区三区四区| 成人a级免费电影| 亚洲电影第三页| 国产精品麻豆网站| 日韩欧美久久一区| 欧美色综合久久| 成人午夜在线播放| 国产资源精品在线观看| 亚洲国产日韩a在线播放性色| 中文字幕免费在线观看视频一区| 91精品国产综合久久久久久| 一本到不卡精品视频在线观看| 国产一区视频网站| 日本aⅴ亚洲精品中文乱码| 亚洲黄色尤物视频| 综合欧美亚洲日本| 国产午夜精品一区二区三区四区| 欧美精品日韩精品| 99精品视频在线观看| 国产传媒久久文化传媒| 美女视频黄免费的久久 | 欧美一区二区人人喊爽| 色天使色偷偷av一区二区| 国产ts人妖一区二区| 麻豆freexxxx性91精品| 日本欧美在线看| 亚洲一区电影777| 亚洲综合精品久久| 亚洲天堂精品在线观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 免费精品视频在线| 亚洲一区二区在线免费观看视频 | 亚洲高清三级视频| 一区二区三区欧美激情| 樱花草国产18久久久久| 久久精品一二三| 久久久久成人黄色影片| 久久综合久久鬼色| 欧美精品一区二区三区很污很色的 | 亚洲午夜私人影院| 一卡二卡欧美日韩| 亚洲国产综合91精品麻豆 | 亚洲在线视频网站| 一区二区久久久久久| 亚洲精品免费播放| 亚洲一区av在线| 亚洲福中文字幕伊人影院| 亚洲福利视频导航| 日韩专区欧美专区| 免费一级片91| 国产美女在线观看一区| 国产成人精品一区二| 国产成人精品三级麻豆| 99久久精品国产一区二区三区| 成人网男人的天堂| 色国产精品一区在线观看| 欧美性一二三区| 91精品国产综合久久小美女| 精品国产欧美一区二区| 国产日韩欧美一区二区三区乱码| 国产欧美精品一区aⅴ影院| 日韩一区中文字幕| 亚洲国产综合在线| 美女高潮久久久| 成人午夜在线播放| 99re热这里只有精品免费视频| 欧美伊人久久久久久久久影院| 欧美精品粉嫩高潮一区二区| 久久综合色婷婷| 国产精品久久网站| 亚洲午夜精品网| 麻豆国产精品777777在线| 国产精品一品视频| 91黄色免费观看| 精品国产髙清在线看国产毛片| 国产欧美日韩另类视频免费观看| 亚洲天堂2014| 另类小说综合欧美亚洲| 成人免费av在线| 在线电影欧美成精品| 久久久精品综合| 亚洲在线中文字幕| 国产在线视频一区二区| 色老综合老女人久久久| 日韩欧美亚洲国产另类| 樱桃视频在线观看一区| 国产成人av电影在线播放| 日韩一区二区在线观看视频| 亚洲精品欧美综合四区| 国产不卡视频一区二区三区| 欧美一级爆毛片| 亚洲韩国精品一区| 色一情一乱一乱一91av| 欧美国产精品专区| 韩国av一区二区三区在线观看| 欧美人成免费网站| 亚洲一区电影777| 色94色欧美sute亚洲13| 国产精品视频线看| 激情综合色播五月| 欧美一级久久久久久久大片| 亚洲影视在线播放| 色偷偷88欧美精品久久久| 国产精品美女久久久久高潮 | 91丨porny丨中文| 国产欧美日韩不卡免费| 国产一区二区精品在线观看| 欧美一区二区三区影视| 午夜精品久久久久| 欧美三级中文字幕| 亚洲大片精品永久免费| 欧美在线观看视频在线| 一区二区三区免费看视频| 99久久免费精品| 国产精品久久久久久久岛一牛影视 | 高清视频一区二区| 国产片一区二区| 国产精华液一区二区三区| 久久久久青草大香线综合精品| 久久精品国产99国产| 欧美xxxx在线观看| 激情亚洲综合在线| 国产亚洲综合性久久久影院| 国产大陆a不卡| 国产精品久久久久一区| 91丨porny丨在线| 亚洲影院理伦片| 91精品国产综合久久精品性色 | 91在线视频官网| 亚洲日本一区二区| 欧美综合视频在线观看| 五月天激情综合| 日韩亚洲电影在线| 国产综合久久久久久鬼色| 中文字幕免费不卡| 99国内精品久久| 亚洲国产色一区| 日韩精品一区二区三区中文精品 | 国产精品一区二区三区乱码 | 视频在线在亚洲| 日韩一区二区精品在线观看| 精品综合久久久久久8888| 久久精品免视看| 色综合久久天天| 日韩av网站在线观看| 久久毛片高清国产| 91蝌蚪porny| 美女精品自拍一二三四| 国产精品美女久久久久高潮| 欧美亚洲国产怡红院影院| 免费在线观看不卡| 国产精品理论在线观看| 欧美日本在线视频| 国产精品影视在线| 一区二区成人在线视频| 日韩欧美在线影院| www.日本不卡| 天天av天天翘天天综合网| 国产三级精品在线| 欧美在线视频全部完| 国产精品18久久久久久久久久久久| 亚洲免费观看视频| 精品国产凹凸成av人网站| 99re66热这里只有精品3直播 | 精品在线播放午夜| 亚洲特级片在线| 欧美精品一区二区三区蜜桃| 色噜噜狠狠色综合欧洲selulu| 日本视频中文字幕一区二区三区| 日本一区免费视频| 欧美一卡二卡在线| 91污片在线观看| 国产精品白丝jk黑袜喷水| 亚洲va欧美va天堂v国产综合| www国产精品av| 欧美精品v国产精品v日韩精品| 成人午夜视频福利| 捆绑紧缚一区二区三区视频 | 中文字幕日本不卡| 亚洲精品一线二线三线无人区| 在线免费观看一区| eeuss鲁一区二区三区|