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

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

?? spelib.c

?? vxworks的源代碼
?? 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视频一区二区三区| 精品成人免费观看| 无码av中文一区二区三区桃花岛| 成人教育av在线| 久久这里只有精品首页| 日韩高清在线观看| 欧美日韩精品欧美日韩精品一| 最新热久久免费视频| 国产91色综合久久免费分享| 精品国产91洋老外米糕| 奇米精品一区二区三区在线观看一 | 午夜亚洲国产au精品一区二区| 粉嫩欧美一区二区三区高清影视 | 久久久电影一区二区三区| 视频在线在亚洲| 欧美日韩一区二区三区高清 | 成年人网站91| 国产欧美日韩视频一区二区| 精品影院一区二区久久久| 日韩一级免费观看| 日韩精品久久久久久| 69久久夜色精品国产69蝌蚪网| 亚洲综合免费观看高清在线观看| 色综合久久综合中文综合网| 亚洲视频一区二区在线| 99v久久综合狠狠综合久久| 亚洲欧洲美洲综合色网| aa级大片欧美| 亚洲在线中文字幕| 欧美三级日韩在线| 日韩在线观看一区二区| 日韩一区二区三| 久草在线在线精品观看| 久久久激情视频| 99久久er热在这里只有精品15| 亚洲日本va在线观看| 一本色道综合亚洲| 首页国产欧美久久| 2021久久国产精品不只是精品| 国产精品一线二线三线| 国产精品美女久久久久久久| 一本大道久久a久久精品综合| 一区二区三区免费在线观看| 欧美三级电影网站| 久久精品99国产精品日本| 国产午夜精品理论片a级大结局| 高清不卡在线观看| 亚洲免费伊人电影| 日韩欧美在线一区二区三区| 成人免费高清在线| 亚洲丰满少妇videoshd| 精品国产电影一区二区| gogogo免费视频观看亚洲一| 亚洲图片自拍偷拍| 欧美mv日韩mv国产网站| av在线不卡观看免费观看| 亚洲大片免费看| 国产三级一区二区| 欧美午夜电影网| 国产一区二区三区四区五区美女| 国产精品久久久久永久免费观看 | 欧美日韩欧美一区二区| 国内精品免费**视频| 亚洲美女偷拍久久| 欧美mv和日韩mv的网站| 97超碰欧美中文字幕| 久久国产精品免费| 一区二区在线电影| 国产午夜精品一区二区三区视频 | 国产一区二区三区日韩| 亚洲猫色日本管| 久久综合久色欧美综合狠狠| 一本到三区不卡视频| 久久国产精品一区二区| 亚洲免费视频成人| 国产日产欧美一区| 678五月天丁香亚洲综合网| 99天天综合性| 国产精品一级二级三级| 日韩激情一区二区| 伊人婷婷欧美激情| 欧美国产禁国产网站cc| 欧美成人官网二区| 欧美日本韩国一区| 色94色欧美sute亚洲13| 高清不卡在线观看| 极品美女销魂一区二区三区免费| 亚洲午夜久久久久久久久电影院| 亚洲国产高清在线| 国产日韩在线不卡| 久久一区二区三区国产精品| 欧美高清视频在线高清观看mv色露露十八 | 日韩一区二区精品在线观看| 91国在线观看| 91视频免费看| av不卡一区二区三区| 国产激情一区二区三区| 国内精品久久久久影院薰衣草| 青青草成人在线观看| 天堂精品中文字幕在线| 亚洲成人免费在线观看| 亚洲福利视频三区| 午夜精品一区二区三区三上悠亚| 亚洲欧美日韩久久| 一区二区三区四区不卡视频| 亚洲欧洲精品天堂一级| 最新不卡av在线| 亚洲人吸女人奶水| 一区二区三区中文在线| 亚洲欧美经典视频| 亚洲图片欧美综合| 五月激情综合网| 美日韩黄色大片| 国产一区二区美女| 国产高清精品在线| av在线播放成人| 欧美综合一区二区三区| 欧美日韩一级片网站| 欧美一区二区在线不卡| 精品欧美乱码久久久久久1区2区| 欧美变态凌虐bdsm| 国产精品区一区二区三| 亚洲欧美日韩一区| 亚洲成人激情社区| 精品一区二区在线免费观看| 国内精品国产成人| 成人av免费网站| 欧洲av在线精品| 日韩欧美成人激情| 欧美国产一区在线| 一区二区三区日韩精品视频| 日本美女一区二区三区| 国产美女av一区二区三区| av中文一区二区三区| 欧美日韩一级二级| 久久久久亚洲综合| 有码一区二区三区| 狠狠色狠狠色综合日日91app| 播五月开心婷婷综合| 欧美日韩国产123区| 久久久久9999亚洲精品| 亚洲亚洲精品在线观看| 九色综合国产一区二区三区| 91猫先生在线| 欧美tickling挠脚心丨vk| 国产精品第四页| 免费成人结看片| 一本色道亚洲精品aⅴ| 欧美电影免费观看高清完整版在线观看 | 亚洲aaa精品| 国产精品一区二区在线播放| 欧美日韩在线不卡| 亚洲国产精品成人综合色在线婷婷| 亚洲国产日韩a在线播放性色| 国产精品一区专区| 337p亚洲精品色噜噜狠狠| 日韩美女久久久| 狠狠色狠狠色综合| 欧美日韩视频第一区| 国产精品成人一区二区艾草| 看电视剧不卡顿的网站| 日本精品裸体写真集在线观看| 久久这里只有精品首页| 五月婷婷激情综合| 91香蕉视频在线| 欧美国产欧美综合| 韩国毛片一区二区三区| 欧美日韩美女一区二区| 自拍偷在线精品自拍偷无码专区| 久久国产人妖系列| 欧美精品粉嫩高潮一区二区| 亚洲人成人一区二区在线观看| 日韩欧美在线123| 无码av免费一区二区三区试看 | 久久美女高清视频| 免费高清在线视频一区·| 欧美日韩在线播放三区四区| 亚洲欧美自拍偷拍色图| 风流少妇一区二区| 久久久精品免费观看| 国产一区二区三区在线观看免费| 337p亚洲精品色噜噜狠狠| 亚洲成av人**亚洲成av**| 日本韩国一区二区三区| 亚洲女同ⅹxx女同tv| 97精品超碰一区二区三区| 中文字幕欧美一| 99这里都是精品| 亚洲人精品一区| 一本色道久久综合亚洲91| 亚洲精品视频免费看| 日本道色综合久久|