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

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

?? spelib.c

?? VxWorks BSP框架源代碼包含頭文件和驅(qū)動(dòng)
?? C
字號(hào):
/* 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;    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费视频一区二区| 色婷婷综合激情| 久久亚洲精华国产精华液| 一本大道久久a久久综合婷婷| 欧美国产日本韩| 色综合天天综合| 久久成人免费电影| 日韩欧美一区二区不卡| 国产一区二区三区免费| 国产精品短视频| 欧美日韩国产另类不卡| 欧美aaa在线| 欧美国产日本韩| 欧美性猛片aaaaaaa做受| 蜜桃视频免费观看一区| 国产三级精品视频| 欧美性xxxxxxxx| 久久99九九99精品| 国产精品久99| 日韩欧美一级在线播放| 成人深夜视频在线观看| 亚洲线精品一区二区三区| 欧美xxx久久| 99精品国产视频| 日本中文字幕一区| 中文字幕永久在线不卡| 91精品在线麻豆| 成人蜜臀av电影| 日韩激情一二三区| 18成人在线观看| 日韩欧美一区二区视频| 91猫先生在线| 国产精品一区二区免费不卡| 亚洲欧美激情插| 337p日本欧洲亚洲大胆色噜噜| 91在线国内视频| 久久99精品一区二区三区 | 国内久久精品视频| ...中文天堂在线一区| 日韩欧美亚洲一区二区| 99久久99久久精品免费看蜜桃| 日本亚洲欧美天堂免费| 亚洲婷婷国产精品电影人久久| 日韩三级在线观看| 欧美无砖专区一中文字| 成人一二三区视频| 奇米精品一区二区三区在线观看一 | www国产成人免费观看视频 深夜成人网| 成人国产精品免费观看动漫| 丝袜国产日韩另类美女| 亚洲人一二三区| 国产日韩精品一区二区三区| 欧美一区二区三区视频| 色婷婷国产精品| 99久久精品国产一区二区三区| 久久成人免费网站| 奇米综合一区二区三区精品视频| 一区二区三区高清不卡| 国产精品久久毛片a| 久久精品一区二区三区四区| 欧美韩国日本不卡| 91色综合久久久久婷婷| 免费观看30秒视频久久| 香港成人在线视频| 亚洲人成影院在线观看| 国产精品妹子av| 久久精品一区二区| 久久久久久亚洲综合影院红桃 | 国产精品国产三级国产普通话三级| 日韩欧美的一区| 911国产精品| 宅男在线国产精品| 日韩一区二区三区视频| 欧美一级日韩一级| 日韩一区二区三区观看| 91精品国产综合久久精品app| 在线观看av一区| 欧美日韩精品二区第二页| 欧美在线999| 欧美日本在线看| 欧美一级在线免费| 欧美精品一区二区三区一线天视频| 欧美一区2区视频在线观看| 制服丝袜亚洲色图| 日韩精品一区二区在线| 久久久精品日韩欧美| 久久久久青草大香线综合精品| 国产无遮挡一区二区三区毛片日本| 久久久不卡影院| 国产精品久久久久久久久搜平片| 国产精品国产三级国产专播品爱网 | 国产午夜亚洲精品午夜鲁丝片| 久久综合色鬼综合色| 日本一区二区三区四区在线视频| 中文字幕精品一区| 亚洲免费在线视频| 日本亚洲最大的色成网站www| 欧美a级理论片| 国产91精品久久久久久久网曝门| 成人国产精品视频| 欧美色窝79yyyycom| 欧美一区二区三区婷婷月色| 久久久噜噜噜久噜久久综合| 日本一区二区三区在线不卡| 亚洲免费色视频| 日韩av电影天堂| 国产一区在线看| 91福利在线播放| 日韩精品中文字幕一区二区三区 | 日韩丝袜美女视频| 国产亚洲精品资源在线26u| 最新高清无码专区| 奇米影视一区二区三区| 成人激情文学综合网| 欧美酷刑日本凌虐凌虐| 久久奇米777| 亚洲国产一区二区a毛片| 国产在线视频一区二区| 在线精品观看国产| www久久精品| 亚洲高清中文字幕| 成人中文字幕在线| 91精品在线免费观看| 国产精品初高中害羞小美女文| 午夜精品福利一区二区三区av| 国产精品乡下勾搭老头1| 欧美日韩激情在线| 国产精品麻豆99久久久久久| 日韩电影在线观看网站| 91香蕉国产在线观看软件| 欧美成人bangbros| 亚洲国产日韩在线一区模特| 国产精品99久久久久久似苏梦涵 | 中文字幕不卡的av| 日韩高清不卡一区二区| 91蝌蚪porny| 国产午夜精品理论片a级大结局| 一区二区三区日韩欧美| 国产91丝袜在线18| 欧美成人精品福利| 亚洲va天堂va国产va久| 92精品国产成人观看免费| 久久久久久日产精品| 日韩成人一区二区| 欧美色国产精品| 亚洲视频一区二区在线观看| 国产精品一品二品| 精品国产网站在线观看| 日韩精品高清不卡| 欧美日韩一区二区三区在线看| 亚洲色欲色欲www| 丰满放荡岳乱妇91ww| 久久综合九色综合97婷婷女人| 麻豆国产91在线播放| 欧美精品v日韩精品v韩国精品v| 一区二区三区在线免费| 99热99精品| 亚洲欧洲国产专区| 成人精品小蝌蚪| 国产精品嫩草99a| 成人h版在线观看| 国产精品国产自产拍高清av| 国产98色在线|日韩| 国产丝袜美腿一区二区三区| 韩国三级电影一区二区| 日韩精品一区二区三区在线观看| 免费看欧美女人艹b| 日韩一区二区三区视频| 老司机免费视频一区二区三区| 91麻豆精品国产91久久久久久久久| 丝袜亚洲另类欧美| 欧美一区二区三区视频在线| 美女免费视频一区二区| www精品美女久久久tv| 国产精品亚洲人在线观看| 亚洲国产精品传媒在线观看| 国产不卡视频在线播放| 中文字幕在线视频一区| 99久久er热在这里只有精品66| 综合在线观看色| 欧美午夜片在线观看| 日韩高清不卡在线| 久久综合狠狠综合久久激情| 国产成人av福利| 亚洲免费毛片网站| 欧美高清www午色夜在线视频| 毛片av一区二区| 国产清纯白嫩初高生在线观看91| 春色校园综合激情亚洲| 一区二区三区四区在线免费观看| 欧美日韩视频不卡| 久久99国产精品久久99果冻传媒| 欧美极品少妇xxxxⅹ高跟鞋| 91亚洲大成网污www| 日韩精品乱码av一区二区| 国产亚洲污的网站| 欧美日韩一区二区三区不卡| 久久国产精品99久久人人澡| 国产精品区一区二区三区| 欧美三级中文字幕在线观看|