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

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

?? ipiarchlib.c

?? vxwork源代碼
?? C
字號(hào):
/* ipiArchLib.c - I86 Inter Processor Interrupt (IPI) handling facilities *//* Copyright 1984-2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01d,28feb02,hdn  initialized ipiHandlerTbl[] with NULL		 moved IPI_MAX_XXX macros to ipiI86Lib.h01c,27feb02,hdn  moved BSP part of shutdown code to sysShutdownSup()01b,26feb02,hdn  replaced loApicIpiIntNumGet() to ipiIntNum01a,20feb02,hdn  written*//*This module contains I80X86 architecture dependent portions of theInter Processor Interrupt (IPI) handling facilities.  See ipiALib for the companion assembly routines.SEE ALSO: ipiALib*/#include "vxWorks.h"#include "esf.h"#include "iv.h"#include "sysLib.h"#include "intLib.h"#include "taskLib.h"#include "qLib.h"#include "errno.h"#include "string.h"#include "vxLib.h"#include "logLib.h"#include "arch/i86/pentiumLib.h"#include "arch/i86/ipiI86Lib.h"#include "drv/intrCtl/loApic.h"/* defines */#undef	IPI_DBG#ifdef	IPI_DBG#   define IPI_DBG_MSG(STR,VALUE)	printf(STR,VALUE);#else#   define IPI_DBG_MSG(STR,VALUE)#endif	/* IPI_DEBUG *//* externals */IMPORT int	sysCsExc;		/* CS for IPI */IMPORT volatile UINT32 * sysNipi;	/* IPI counter */IMPORT void 	sysShutdownSup ();	/* BSP shutdown routine *//* globals */VOIDFUNCPTR	ipiHandlerTbl [IPI_MAX_HANDLERS] = {NULL}; /* IPI handlers *//* locals */LOCAL UINT32	ipiIntNum;		/* IPI base intNum *//* forward static functions *//********************************************************************************* ipiVecInit - initialize the IPI vectors** This routine sets all IPI vectors in IDT and assigns the default handlers.* IPI_MAX_HANDLERS vectors are initialized starting from the IPI base vector.** RETURNS: OK (always).*/void ipiVecInit     (    UINT32 intNum		/* IPI base intNum */    )    {    INT32 ix;    ipiIntNum = intNum;		/* remember it */    /* make all IPI vectors point to generic IPI handler */    for (ix = 0; ix < IPI_MAX_HANDLERS; ix++, intNum++)	{	intVecSet2 ((FUNCPTR *)INUM_TO_IVEC (intNum),		    (FUNCPTR) &ipiCallTbl[ix << 3],		    IDT_INT_GATE, sysCsExc);	}    }/********************************************************************************* ipiConnect - connect a C routine to the Inter Processor Interrupt** This routine connects a specified C routine to a specified Inter Processor * Interrupt vector.  The address of <routine> is stored in ipiHandlerTbl[] * that is called by ipiHandler(index) when the IPI occurs.  The connected * routine is invoked in supervisor mode in the interrupt level. ** The routine can be any normal C code, except that it must not invoke* certain operating system functions that may block or perform I/O* operations.** NOMANUAL*/STATUS ipiConnect    (    UINT32	intNum,		/* IPI interrupt number */    VOIDFUNCPTR	routine		/* routine to be called */    )    {    /* sanity check */      if ((intNum < ipiIntNum) ||         (intNum >= (ipiIntNum + IPI_MAX_HANDLERS)))        {	return (ERROR);	}    /* register the routine */    ipiHandlerTbl[intNum - ipiIntNum] = routine;    return (OK);    }/********************************************************************************* ipiHandler - interrupt level IPI handling routine** This routine handles Inter Processor Interrupt (IPI).  It is never to be * called except from the special assembly language interrupt stub routine.* Since it runs in the interrupt level, the task level work may be deferred * by excJobAdd()/logMsg(). ** RETURNS: N/A** NOMANUAL*/void ipiHandler    (    UINT32	index		/* index in the ipiHandlerTbl[] */    )    {    /* send EOI */    *(int *)(loApicBase + LOAPIC_EOI) = 0;    /* sanity check */      if (index >= IPI_MAX_HANDLERS)	return;    /* increment the counter */    sysNipi[index]++;    /* call the registered IPI handler */    if (ipiHandlerTbl[index] != NULL)        (*(ipiHandlerTbl[index])) ();    }/********************************************************************************* ipiHandlerShutdown - interrupt level Shutdown IPI handling routine** This routine handles Shutdown Inter Processor Interrupt (IPI).** Note that this routine runs in the context of the task that got the IPI.** RETURNS: N/A** NOMANUAL*/void ipiHandlerShutdown (void)    {    /*      * do it in the interrupt level or task level?     * doing it in the interrupt level      * - is more reliable (works even if the kernel is misbehaving)     * - doesn't require context switch (to excTask) working     * - happens immediatly (may be nested interrupt)     * doing it in the task level      * - is more graceful     * - require context switch (to excTask) working     * - servicing interrupts will be completed     * What about having two handlers, one for each?     */         sysShutdownSup ();			/* shutdown the included components */    loApicEnable (FALSE);		/* disable the LOAPIC */    intLock ();				/* LOCK INTERRUPTS */    ipiShutdownSup ();			/* never come back */    }/********************************************************************************* ipiStartup - start up the specified Application Processor (AP)** This routine starts up the specified Application Processor (AP).** RETURNS: N/A** NOMANUAL*/STATUS ipiStartup    (    UINT32	apicId,		/* AP's local APIC ID */    UINT32	vector,		/* entry point address */    UINT32	nTimes		/* send SIPI nTimes */    )    {    INT32 ix;    /* BSP sends AP an INIT IPI */    if (loApicIpi (apicId, 0, 0, 1, 0, 5, 0) != OK)	{	IPI_DBG_MSG ("failed - 1st INIT %d\n",0)	return (ERROR);	}    if (loApicIpi (apicId, 0, 1, 0, 0, 5, 0) != OK)	{	IPI_DBG_MSG ("failed - 2nd INIT %d\n",0)	return (ERROR);	}    /* BSP delay 10msec */    for (ix = 0; ix < 15000; ix++)	/* 15000*720 ~= 10.8 msec */         sysDelay ();			/* 720ns */    while (nTimes-- > 0)	{        /* BSP sends AP a STARTUP IPI again */        if (loApicIpi (apicId, 0, 0, 1, 0, 6, (vector >> 12)) != OK)	    {	    IPI_DBG_MSG ("failed - SIPI %d\n", nTimes)	    return (ERROR);	    }        /* BSP delays 200usec again */            for (ix = 0; ix < 300; ix++)	/* 300*720 ~= 216usec */             sysDelay ();		/* 720ns */	}    return (OK);    }/********************************************************************************* ipiShutdown - shutdown the specified Application Processor (AP)** This routine shutdowns the specified Application Processor (AP).** NOMANUAL*/STATUS ipiShutdown    (    UINT32	apicId,		/* AP's local APIC ID */    UINT32	intNum		/* intNum of IPI_SHUTDOWN */    )    {    STATUS status = OK;    INT32 retry = 0;    /* BP sends AP a SHUTDOWN IPI */    while (loApicIpi (apicId, 0, 0, 1, 0, 0, intNum) != OK)	{        taskDelay (1);	if (retry++ > IPI_MAX_RETRIES)	    {            status = ERROR;	    break;	    }	}    return (status);    }#if	FALSE	/* XXX will be done soon *//********************************************************************************* ipiFixedDest - send IPI to the specified Application Processor** This routine sends IPI to the specified Application Processor** NOMANUAL*/STATUS ipiFixedDest    (    UINT32	apicId,		/* AP's local APIC ID */    UINT32	intNum		/* intNum to send */    )    {    }/********************************************************************************* ipiFixedSelf - send IPI to myself** This routine sends IPI to myself** NOMANUAL*/STATUS ipiFixedSelf    (    UINT32	intNum		/* intNum to send */    )    {    }/********************************************************************************* ipiFixedAlli - send IPI to all processors including self** This routine sends IPI to all processors including self** NOMANUAL*/STATUS ipiFixedAlli    (    UINT32	intNum		/* intNum to send */    )    {    }/********************************************************************************* ipiFixedAlle - send IPI to all processors excluding self** This routine sends IPI to all processors excluding self** NOMANUAL*/STATUS ipiFixedAlle    (    UINT32	intNum		/* intNum to send */    )    {    }/********************************************************************************* ipiNmiDest - send NMI to the specified Application Processor** This routine sends NMI to the specified Application Processor** NOMANUAL*/STATUS ipiNmiDest    (    UINT32	apicId		/* AP's local APIC ID */    )    {    }/********************************************************************************* ipiNmiSelf - send NMI to myself** This routine sends NMI to myself** NOMANUAL*/STATUS ipiNmiSelf (void)    {    }/********************************************************************************* ipiNmiAlli - send NMI to all processors including self** This routine sends NMI to all processors including self** NOMANUAL*/STATUS ipiNmiAlli (void)    {    }/********************************************************************************* ipiNmiAlle - send NMI to all processors excluding self** This routine sends NMI to all processors excluding self** NOMANUAL*/STATUS ipiNmiAlle (void)    {    }/********************************************************************************* ipiLowestAlli - send IPI to the lowest priority processor including self** This routine sends IPI to the lowest priority processor including self** NOMANUAL*/STATUS ipiLowestAlli    (    UINT32	intNum		/* intNum to send */    )    {    }/********************************************************************************* ipiLowestAlle - send IPI to the lowest priority processor excluding self** This routine sends IPI to the lowest priority processor excluding self** NOMANUAL*/STATUS ipiLowestAlle    (    UINT32	intNum		/* intNum to send */    )    {    }#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频一区二区| 亚洲欧美在线视频观看| 精品国产乱码久久久久久久| 亚洲国产精品二十页| 亚洲一区二三区| 国产一级精品在线| 欧美精品乱码久久久久久按摩| 国产免费观看久久| 日本美女一区二区三区| 欧洲人成人精品| 国产女主播视频一区二区| 免费成人你懂的| 在线观看三级视频欧美| 国产精品色哟哟网站| 国内精品伊人久久久久影院对白| 欧美日韩精品综合在线| 亚洲欧美日韩国产一区二区三区| 国产精品亚洲人在线观看| 91精品国产欧美一区二区| 曰韩精品一区二区| 91丨porny丨蝌蚪视频| 国产亚洲成av人在线观看导航| 丝袜美腿亚洲一区二区图片| 在线视频中文字幕一区二区| 中文字幕一区二区5566日韩| 东方欧美亚洲色图在线| 欧美大片在线观看一区二区| 日韩精品电影一区亚洲| 欧美日韩精品一区视频| 亚洲午夜激情网站| 色播五月激情综合网| 亚洲免费av高清| 91一区一区三区| 亚洲码国产岛国毛片在线| eeuss鲁片一区二区三区在线观看| 欧美国产精品v| 成人免费毛片aaaaa**| 久久午夜国产精品| 国产成人午夜99999| 欧美国产日本韩| 成人国产精品免费观看| 亚洲久本草在线中文字幕| 色老汉一区二区三区| 一区二区三区欧美日韩| 色爱区综合激月婷婷| 亚洲欧美电影一区二区| 色激情天天射综合网| 日韩经典中文字幕一区| 日韩欧美精品三级| 国产99久久久国产精品潘金网站| 欧美国产一区二区| 91国在线观看| 麻豆免费精品视频| 国产欧美一区二区精品婷婷| 99精品视频在线免费观看| 亚洲尤物在线视频观看| 日韩三级在线观看| 国产精品一二三区| 亚洲国产精品av| 欧美性大战xxxxx久久久| 亚洲成a人v欧美综合天堂下载 | 亚洲第一狼人社区| 制服.丝袜.亚洲.中文.综合| 精品亚洲欧美一区| 一区在线观看视频| 91精品国产综合久久福利软件| 精品无码三级在线观看视频| 国产精品国产三级国产专播品爱网 | 26uuu亚洲综合色| av中文字幕在线不卡| 日韩黄色小视频| 国产婷婷色一区二区三区四区| 欧美优质美女网站| 经典一区二区三区| 亚洲一区二区三区四区不卡| 久久久国际精品| 欧美日韩久久不卡| zzijzzij亚洲日本少妇熟睡| 日韩电影在线观看一区| 国产精品久久久99| 精品精品国产高清a毛片牛牛| 91国产免费观看| 国产老妇另类xxxxx| 亚洲综合偷拍欧美一区色| 久久综合九色综合97婷婷| 欧美性猛片aaaaaaa做受| 国产精品一区二区果冻传媒| 三级亚洲高清视频| 亚洲激情自拍偷拍| 欧美激情在线免费观看| 欧美一区二区美女| 欧美日韩成人在线一区| 色婷婷久久久久swag精品| 韩国成人精品a∨在线观看| 亚洲va欧美va人人爽| 中文字幕一区三区| 久久久99精品久久| 日韩欧美在线影院| 欧美性大战久久久久久久蜜臀| 成人高清视频免费观看| 国产一区二区三区在线看麻豆| 日韩高清在线观看| 亚洲精品国产精品乱码不99| 中文字幕av资源一区| 2020国产精品自拍| 欧美一区午夜精品| 欧美群妇大交群中文字幕| 色欧美片视频在线观看在线视频| 国产999精品久久久久久| 国产一区二区免费在线| 天天影视网天天综合色在线播放 | 国产偷国产偷精品高清尤物 | 精品国产一区二区三区不卡 | 日韩一区二区免费电影| 国产成人aaaa| 亚洲成在人线免费| 国模无码大尺度一区二区三区| 91精品国产色综合久久ai换脸| 亚洲.国产.中文慕字在线| 国产suv一区二区三区88区| 成人aa视频在线观看| 国产成a人亚洲精品| av男人天堂一区| 国产在线精品免费| 91免费看片在线观看| 欧美激情一区二区三区| 九九**精品视频免费播放| 国产精品原创巨作av| 亚洲靠逼com| 日韩欧美你懂的| 91在线观看免费视频| 国产精品一二三四五| 亚洲一卡二卡三卡四卡五卡| 久久久久99精品一区| 国产精品久久久久久久久搜平片| 1000部国产精品成人观看| 国产精品久99| 久久99精品国产91久久来源| 色综合久久久久综合99| 欧美一级片免费看| 亚洲精品一区二区三区影院| 国产欧美一区视频| 亚洲乱码日产精品bd| 国产精品久久久久久久久图文区| 国产午夜三级一区二区三| 国产精品毛片高清在线完整版| 亚洲一区视频在线| 久久精品国产免费看久久精品| 色综合视频在线观看| 国产精品天干天干在观线| 2024国产精品视频| 国产性天天综合网| 亚洲一二三区不卡| 日本不卡一区二区三区| 老鸭窝一区二区久久精品| 国产精品久久久一本精品| 国产日韩影视精品| 婷婷久久综合九色国产成人 | 蜜桃免费网站一区二区三区 | 国产黄色91视频| 91在线视频播放地址| 久久这里只有精品首页| 韩国av一区二区三区四区| 成人国产精品视频| 欧美国产视频在线| 一本在线高清不卡dvd| 奇米色一区二区| 欧美丰满高潮xxxx喷水动漫| 亚洲人成精品久久久久| 日本sm残虐另类| 91一区在线观看| 2020国产精品自拍| 三级久久三级久久| heyzo一本久久综合| 久久蜜桃一区二区| 亚洲成av人**亚洲成av**| 99久久久久久| 国产欧美日韩三级| 亚洲视频一区在线| 国产农村妇女精品| 久久99精品久久久久久国产越南 | 日本高清免费不卡视频| 国产亚洲精品中文字幕| 日本不卡免费在线视频| 欧美在线观看视频一区二区 | 色综合久久久久| 国产色婷婷亚洲99精品小说| 青青草91视频| 欧美日韩一区二区三区在线| 亚洲欧洲www| 成人app软件下载大全免费| 国产日韩av一区| 国产伦精品一区二区三区视频青涩 | 欧美日韩国产美| 亚洲午夜激情网页| 在线一区二区视频| 国产精品久久久爽爽爽麻豆色哟哟 | 欧美日韩精品一区二区在线播放| 日韩理论在线观看| 色婷婷国产精品综合在线观看|