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

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

?? universe.c

?? VxWorks下 Mv2100的BSP源碼
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
            univVecNum = UNIV_MBOX3_INT_VEC;            break;        case UNIVERSE_LM1_INT:            univVecNum = UNIV_LM1_INT_VEC;            break;        case UNIVERSE_LM2_INT:            univVecNum = UNIV_LM2_INT_VEC;            break;        case UNIVERSE_LM3_INT:            univVecNum = UNIV_LM3_INT_VEC;            break;	default:	    /* doesn't match one of the intr. types, so return an error */	    return(ERROR);	}    /* install the handler in the vector table */    if (intConnect (INUM_TO_IVEC(univVecNum), routine, parameter) == ERROR)        return(ERROR);    return (OK);    }/********************************************************************************* sysMailboxInt - mailbox interrupt handler** This routine calls the installed mailbox routine, if it exists.*/LOCAL void sysMailboxInt (void)    {    if (sysMailboxRoutine != NULL)        sysMailboxRoutine (sysMailboxArg);    }/********************************************************************************* sysMailboxConnect - connect a routine to the mailbox interrupt** This routine specifies the interrupt service routine to be called at each* mailbox interrupt.** NOTE: The mailbox interrupt is the Location Monitor 0 interrupt on the* UNIVERSE II chip.** RETURNS: OK, or ERROR if the routine cannot be connected to the interrupt.** SEE ALSO: intConnect(), sysMailboxEnable()*/STATUS sysMailboxConnect    (    FUNCPTR routine,    /* routine called at each mailbox interrupt */    int arg             /* argument with which to call routine      */    )    {    static BOOL sysMailboxConnected = FALSE;    if (!sysMailboxConnected &&        intConnect (INUM_TO_IVEC (UNIV_LM0_INT_VEC),                    sysMailboxInt, 0) == ERROR)        {        return (ERROR);        }    sysMailboxConnected = TRUE;    sysMailboxRoutine   = routine;    sysMailboxArg       = arg;    return (OK);    }/********************************************************************************* sysMailboxEnable - enable the mailbox interrupt** This routine enables the mailbox interrupt.** NOTE: The mailbox interrupt is the Location Monitor 0 interrupt on the* UNIVERSE II chip.** RETURNS: OK, if mailbox interrupt becomes enabled, else ERROR.** SEE ALSO: sysMailboxConnect(), sysMailboxDisable()*/STATUS sysMailboxEnable    (    char *mailboxAdrs           /* address of mailbox (ignored) */    )    {    /* enable the location monitor 0 interrupt */    if (sysUnivIntEnable(UNIVERSE_LM0_INT) == OK)        return (OK);    else	return (ERROR);    }/********************************************************************************* sysMailboxDisable - disable the mailbox interrupt** This routine disables the mailbox interrupt.** NOTE: The mailbox interrupt is the Location Monitor 0 interrupt on the* UNIVERSE II chip.** RETURNS: OK, if the mailbox interrupt gets disabled, else ERROR** SEE ALSO: sysMailboxConnect(), sysMailboxEnable()*/STATUS sysMailboxDisable    (    char *mailboxAdrs           /* address of mailbox (ignored) */    )    {    /* disable the mailbox interrupt */    if (sysUnivIntDisable(UNIVERSE_LM0_INT) == OK)        return (OK);    else        return (ERROR);    }/********************************************************************************* sysUnivVERRClr - Universe VMEbus Error Clear routine** This is the VMEbus Error clear routine for the Tundra Universe PCI to VME* Bridge.  It counts the ocuurances at the specified counter and clears the* error condition in the three registers associated with VME Bus Errors:* LINT_STAT, VINT_STAT, and V_AMERR.** RETURNS: N/A*/void sysUnivVERRClr (void)    {    UINT32 status;    /* Count occurances */    ++sysUnivVERRCnt;    /* Get current address error status */    UNIV_IN_LONG(UNIVERSE_V_AMERR, &status);    /* Clear any error */    status &= V_AMERR_V_STAT;    UNIV_OUT_LONG(UNIVERSE_V_AMERR, status);    /* Get current VME error status */    UNIV_IN_LONG(UNIVERSE_VINT_STAT, &status);    /* Clear any error */    status &= VINT_STAT_VERR;    UNIV_OUT_LONG(UNIVERSE_VINT_STAT, status);    /* Get current PCI error status */    UNIV_IN_LONG(UNIVERSE_LINT_STAT, &status);    /* Clear any error */    status &= LINT_STAT_VERR;    UNIV_OUT_LONG(UNIVERSE_LINT_STAT, status);    /* Force write due to Write-Posting and get updated status */    UNIV_IN_LONG(UNIVERSE_PCI_CSR, &status);    }/********************************************************************************* sysUnivLevelDecode - decode highest pending priority Universe interrupt** This routine decodes the highest pending priority Universe interrupt from a* bit field of interrupts and returns the associated interrupt vector, priority* level and priority level bit mask.** RETURNS: highest pending interrupt priority level bit mask** SEE ALSO: register and bit field defs in universe.h*/int sysUnivLevelDecode    (    int   bitField,	/* one interrupt per bit, up to 23 bits */    int * vecNum,	/* where to return associated vector */    int * intLvl	/* where to return associated Universe int level */    )    {    int    bitLvlMsk;    int    i;    int    vector;    /* Compare bits in order of highest priority first */    for (i = UNIV_NUM_INT; i >= 0; --i)	{	if (bitField & univIntTable[i].bitMask)	    break;	}    /* Determine and return interrupt vector, priority level and level mask */    bitLvlMsk = univIntTable[i].bitMask;    if (univIntTable[i].vector != -1)        *vecNum = univIntTable[i].vector;    else	{	switch (bitLvlMsk)            {            case LVL7:                UNIV_IN_LONG(UNIVERSE_V7_STATID, &vector);                break;            case LVL6:                UNIV_IN_LONG(UNIVERSE_V6_STATID, &vector);                break;            case LVL5:                UNIV_IN_LONG(UNIVERSE_V5_STATID, &vector);                break;            case LVL4:                UNIV_IN_LONG(UNIVERSE_V4_STATID, &vector);                break;            case LVL3:                UNIV_IN_LONG(UNIVERSE_V3_STATID, &vector);                break;            case LVL2:                UNIV_IN_LONG(UNIVERSE_V2_STATID, &vector);                break;            case LVL1:                UNIV_IN_LONG(UNIVERSE_V1_STATID, &vector);                break;            }	/*	 * Check for errors	 *   At this point, if a VME bus error has occured, it must be	 * cleared by the sysUnivVERRClr() routine and the vector discarded.	 * The vector returned during a VME bus error is bogus.	 */	if ((vector & V1_STATID_ERR) != 0)            {	    /* Clear VME bus error */	    sysUnivVERRClr ();            /* Discard bad vector */            *vecNum = 0;            }        else            *vecNum = vector & 0xFF;  /* only eight bits of useful info */	}    *intLvl = i;    return (bitLvlMsk);    }/********************************************************************************* sysUnivVmeIntr - VMEbus interrupt handler** This is the VMEbus interrupt handler for the Motorola PCI Host* Bridge (PHB) and Embedded Processor Interrupt Controller (EPIC).  It is* connected to the single VMEbus interrupt from the EPIC and examines the* Universe chip to determine the interrupt level and vector of the* interrupt source.  Having obtained the vector number, this routine then* indexes into the system vector table, calling the specified interrupt* handler routine.** RETURNS: N/A*/void sysUnivVmeIntr (void)    {    int                 pendingIntr;    int                 highestIntr;    int			prevIntLvl;    int			univIntLvl;    int			vec_num = 0;    INT_HANDLER_DESC *  currHandler;    /* get pending interrupt level(s) */    UNIV_IN_LONG(UNIVERSE_LINT_STAT, &pendingIntr);    pendingIntr &= LINT_STAT_INT_MASK;    pendingIntr &= sysUnivIntsEnabled;    /*     * Handle pending interrupts in order of highest priority.     *     * For each interrupt, determine the level, get vector associated     * with the interrupt, set the appropriate interrupt level, clear the     * interrupt in the Universe, and dispatch to all associated ISRs.     */    if (pendingIntr != 0)	{	/* Determine highest interrupt priority level and vector */        highestIntr = sysUnivLevelDecode (pendingIntr, &vec_num, &univIntLvl);	/* Set intr level: mask out all ints at and below this level */        prevIntLvl = sysUnivIntLevelSet (univIntLvl);        vec_num   &= 0xff;        if (vec_num == 0)	    {	    logMsg ("bad vme interrupt %d\n", vec_num, 0,0,0,0,0);	    }        else if ((currHandler = sysIntTbl[vec_num]) == NULL)	    logMsg ("uninitialized vme interrupt %d\n", vec_num, 0,0,0,0,0);        else	    {	    while (currHandler != NULL)	        {	        currHandler->vec (currHandler->arg);	        currHandler = currHandler->next;	        }	    }        /* Clear interrupt request in Universe */	UNIV_OUT_LONG(UNIVERSE_LINT_STAT, highestIntr);	/* restore previous interrupt level */	(void)sysUnivIntLevelSet (prevIntLvl);        }    return;    }/******************************************************************************** sysBusRmwEnable - enable Read-Modify-Write (RMW) cycle on VMEbus** NOTE: These parameters are written to the SCG as Big-Endian values.* This is probably a bug because all other registers in the* Universe are Little-Endian.** RETURNS: N/A*/void sysBusRmwEnable    (    UINT swapCompareEnable,	/* Enabled bits involved in compare and swap */    UINT compareData,		/* Data to compare with read portion of RMW */    UINT swapData,		/* Data to write during write portion of RMW */    char *  rmwAddress		/* RMW address */    )    {    *UNIVERSE_SCYC_EN = swapCompareEnable;    *UNIVERSE_SCYC_CMP = compareData;    *UNIVERSE_SCYC_SWP = swapData;    /* Convert RMW address to a PCI address */#ifdef CHRP_ADRS_MAP    UNIV_OUT_LONG(UNIVERSE_SCYC_ADDR, (UINT)rmwAddress);#else	/* psuedo-PReP Mapping */    UNIV_OUT_LONG(UNIVERSE_SCYC_ADDR,  (UINT)((UINT)rmwAddress +					(UINT)(ISA_MSTR_IO_LOCAL << 16)));#endif	/* CHRP_ADRS_MAP */    /* Configure Special Cycle Generator to generate a RMW cycle */    UNIV_OUT_LONG(UNIVERSE_SCYC_CTL, SCYC_CTL_RMW);    }/******************************************************************************** sysBusRmwDisable - Disable Read-Modify-Write (RMW) cycle on the VMEbus.** Disable Read-Modify-Write (RMW) cycle on the VMEbus.** RETURNS: N/A*/void sysBusRmwDisable ()    {    UNIV_OUT_LONG(UNIVERSE_SCYC_CTL, SCYC_CTL_DISABLE);    }#ifdef	INCLUDE_VME_DMA/* * The following routines whose names start with "sysVmeDma" * comprise the DMA driver. *//******************************************************************************** sysVmeDmaInit - Inititalize the Universe's DMA engine** This routine will initialize the Universe's DMA engine.  This involves* using the following #defines listed in config.h as defaults to configure* the appropriate fields in the DMA's DCTL and DGCS registers.* .CS*	VME_DMA_XFER_TYPE*	VME_DMA_ADDR_SPACE*	VME_DMA_DATA_TYPE*	VME_DMA_USER_TYPE* .CE* The DMA engine will also be permanently configured so that the PCI Bus* will perform 64-bit transactions.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲一区二区在线播放| 国产精品免费视频一区| 成人免费观看男女羞羞视频| 亚洲永久精品国产| 欧美精品一区二区三区视频| 欧洲生活片亚洲生活在线观看| 久久疯狂做爰流白浆xx| 亚洲精品欧美在线| 国产日产欧美一区二区三区 | 色一区在线观看| 韩日精品视频一区| 天天av天天翘天天综合网 | 天天综合色天天综合色h| 久久免费的精品国产v∧| 欧美视频在线一区二区三区| 懂色av噜噜一区二区三区av| 美女在线视频一区| 亚洲mv在线观看| 亚洲欧美福利一区二区| 精品久久久久久无| 91精品国产福利| 欧美日韩一区二区三区在线| 波多野结衣在线一区| 国产综合久久久久久鬼色| 亚洲h动漫在线| 亚洲午夜激情av| 亚洲精品高清在线| 亚洲欧美日韩中文播放 | 国产日本欧美一区二区| 日韩一区二区影院| 精品视频一区二区不卡| 色爱区综合激月婷婷| 99久久伊人网影院| 国产成人av资源| 国产福利电影一区二区三区| 激情综合一区二区三区| 久久成人免费电影| 精一区二区三区| 精品一区二区免费看| 久久精品999| 久久av老司机精品网站导航| 美女尤物国产一区| 国内精品国产成人国产三级粉色| 日韩精品国产欧美| 秋霞午夜鲁丝一区二区老狼| 日本欧美韩国一区三区| 午夜欧美2019年伦理| 五月婷婷欧美视频| 日本 国产 欧美色综合| 毛片av一区二区| 国产一区999| 国产精品一区在线观看乱码| 国产盗摄一区二区三区| 波多野结衣中文字幕一区 | 4438x亚洲最大成人网| 日韩午夜三级在线| 2022国产精品视频| 中文字幕亚洲在| 亚洲午夜av在线| 美女www一区二区| 国产成人精品三级| 色综合天天性综合| 欧美高清视频不卡网| 日韩欧美电影在线| 国产欧美日韩视频一区二区| 亚洲欧美在线观看| 亚洲一级二级三级在线免费观看| 亚洲电影一区二区| 精品无人区卡一卡二卡三乱码免费卡 | 国产亚洲精品精华液| 国产精品蜜臀av| 午夜精品久久久久| 粗大黑人巨茎大战欧美成人| 91蜜桃传媒精品久久久一区二区| 欧美日韩一区二区电影| 久久久无码精品亚洲日韩按摩| 国产精品国产精品国产专区不片| 亚洲国产日韩精品| 国产精一品亚洲二区在线视频| av在线播放不卡| 欧美一级黄色大片| 国产精品国产精品国产专区不片| 午夜精品一区二区三区三上悠亚| 国产综合一区二区| 欧美日韩美少妇| 国产亚洲精品精华液| 亚洲午夜精品一区二区三区他趣| 国产一区中文字幕| 欧美三级蜜桃2在线观看| 久久久噜噜噜久噜久久综合| 亚洲视频在线观看三级| 国内一区二区视频| 欧美日韩免费电影| 国产精品国产自产拍高清av王其| 日本亚洲最大的色成网站www| 菠萝蜜视频在线观看一区| 欧美不卡一区二区| 亚洲一二三区视频在线观看| 国产成人综合自拍| 欧美一区二区精品在线| 亚洲最新在线观看| 大美女一区二区三区| 精品免费一区二区三区| 亚洲国产婷婷综合在线精品| a亚洲天堂av| 久久久精品黄色| 久久99久久99小草精品免视看| 在线看国产一区| 最近日韩中文字幕| 国产东北露脸精品视频| 精品国产乱码久久久久久图片| 亚洲一区二区美女| 91毛片在线观看| 中文字幕欧美日韩一区| 国模娜娜一区二区三区| 777奇米四色成人影色区| 亚洲精品国久久99热| aa级大片欧美| 国产精品黄色在线观看| 成人综合在线观看| 久久亚区不卡日本| 国产中文一区二区三区| 日韩久久久精品| 免费看欧美女人艹b| 日韩一区二区三区在线| 日韩中文字幕区一区有砖一区| 在线观看av一区| 亚洲香蕉伊在人在线观| 欧美亚洲一区二区在线| 亚洲美女视频在线观看| 99久久伊人精品| 亚洲视频在线一区观看| 91免费观看视频在线| 欧美不卡一二三| 亚洲图片欧美综合| 欧美亚洲一区三区| 亚洲成人免费在线观看| 欧美福利视频一区| 日韩精品电影在线| 欧美一级片在线看| 美女网站视频久久| 久久先锋资源网| 成人99免费视频| 亚洲人成精品久久久久| 色天使久久综合网天天| 亚洲国产另类av| 欧美精品在线一区二区三区| 日本亚洲三级在线| 欧美精品一区二区三| 国产成人精品网址| 亚洲美女偷拍久久| 欧美日韩高清一区二区三区| 免费xxxx性欧美18vr| 久久综合给合久久狠狠狠97色69| 国产成人av电影在线| 国产精品久久久久7777按摩 | 91在线看国产| 亚洲超碰97人人做人人爱| 欧美一区二区视频在线观看| 国产一区二区在线影院| 亚洲欧洲国产日本综合| 欧美日韩中文字幕一区| 狠狠色综合色综合网络| 国产精品三级av在线播放| 色哟哟亚洲精品| 美国十次了思思久久精品导航| 久久久精品天堂| 欧美性猛片aaaaaaa做受| 看国产成人h片视频| 国产精品人成在线观看免费| 91福利在线看| 韩日av一区二区| 亚洲精选一二三| 精品成人免费观看| 91精品办公室少妇高潮对白| 强制捆绑调教一区二区| 国产精品免费人成网站| 777色狠狠一区二区三区| 成人在线综合网| 日韩在线卡一卡二| 国产精品国产三级国产专播品爱网 | 欧美三级欧美一级| 国产精品夜夜爽| 亚洲电影一级黄| 亚洲国产精品99久久久久久久久| 欧美亚日韩国产aⅴ精品中极品| 国产一区二区按摩在线观看| 亚洲国产美女搞黄色| 国产欧美一区二区精品婷婷| 欧美色偷偷大香| 成人午夜短视频| 毛片一区二区三区| 一区二区免费在线| 国产日本亚洲高清| 日韩免费观看高清完整版在线观看| 成人精品电影在线观看| 久久99精品久久久久久久久久久久| 亚洲精品免费播放| 国产人伦精品一区二区| 日韩一区二区三区视频在线观看|