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

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

?? uicintr.c

?? WINDRIVER SBC405 BSP
?? C
字號:
/* uicIntr.c - IBM Universal Interrupt Controller (UIC) library *//*******************************************************************************   This source and object code has been made available to you by IBM on an   AS-IS basis.   IT IS PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING THE WARRANTIES OF   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE OR OF NONINFRINGEMENT   OF THIRD PARTY RIGHTS.  IN NO EVENT SHALL IBM OR ITS LICENSORS BE LIABLE   FOR INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES.  IBM'S OR ITS LICENSOR'S   DAMAGES FOR ANY CAUSE OF ACTION, WHETHER IN CONTRACT OR IN TORT, AT LAW OR   AT EQUITY, SHALL BE LIMITED TO A MAXIMUM OF $1,000 PER LICENSE.  No license   under IBM patents or patent applications is to be implied by the copyright   license.   Any user of this software should understand that neither IBM nor its   licensors will be responsible for any consequences resulting from the use   of this software.   Any person who transfers this source code or any derivative work must   include the IBM copyright notice, this paragraph, and the preceding two   paragraphs in the transferred software.   Any person who transfers this object code or any derivative work must   include the IBM copyright notice in the transferred software.   COPYRIGHT   I B M   CORPORATION 2000   LICENSED MATERIAL  -  PROGRAM PROPERTY OF  I B M"*******************************************************************************//* Copyright 1984-2001 Wind River Systems, Inc. *//* modification history-----------------------01f,11jan02,pch  fix Diab warnings01e,24jul01,aeg  re-enabled CE & EE exceptions in sysUicIntHandler (SPR #69542).01d,15may00,mcg  register name updates to match 405GP User Manual01c,17mar00,mcg  Set initial trigger, level, and priority with macros, and                 simplified sysUicIntHandler01b,23jan00,mcg  bug fix in sysUicIntDisable01a,19sep99,mcg  created from Spruce CPC700Intr.c version 01a. Uses DCR regs.*//*This library provides various interface routines to manipulate and connectto external hardware interrupts of the IBM Universal Interrupt Controller (UIC).This controller is in the IBM Blue Logic ASIC core libary.*/#include "private/eventP.h"/* defines */#define INT_LEVEL_MAX   31             /* the UIC has 32 interrupt sources */#define INT_LEVEL_MIN   0/* externals */IMPORT STATUS   (*_func_intConnectRtn) (VOIDFUNCPTR *, VOIDFUNCPTR, int);IMPORT int      (*_func_intEnableRtn) (int);IMPORT int      (*_func_intDisableRtn) (int);/* globals */void sysUicIntHandler (void);/* locals */LOCAL VOIDFUNCPTR       sysIntBlTbl [32] = {(VOIDFUNCPTR) NULL};LOCAL int               sysIntArg [32]   = {0};/* forward LOCAL functions declarations */LOCAL STATUS    sysUicIntConnect (VOIDFUNCPTR * vector, VOIDFUNCPTR routine,                                  int parameter);LOCAL STATUS    sysUicIntEnable  (int intLevel);LOCAL STATUS    sysUicIntDisable (int intLevel);/********************************************************************************* sysUicIntrInit - initialize the UIC interrupt facility** This routine initializes the interrupt facility for the UIC interrupt* controller.** RETURNS: OK, always.*/STATUS sysUicIntrInit    (    void    )    {    /* set the BSP driver specific Interrupt Handler and intConnect routines */    _func_intConnectRtn = sysUicIntConnect;    _func_intEnableRtn = sysUicIntEnable;    _func_intDisableRtn = sysUicIntDisable;    /*     * Initial Interrupt controller setup     */    sysDcrUicsrClear(0xFFFFFFFF);        /* clear all ints                    */    sysDcrUicerSet(0x00000000);          /* disable all ints                  */    sysDcrUiccrSet(UIC_INTR_CRITICAL);   /* All ints except FPGA SMI non-crit */    sysDcrUicprSet(UIC_INTR_POLARITY);   /* set int polarities                */    sysDcrUictrSet(UIC_INTR_TRIGGER);    /* set int trigger levels all level  */    sysDcrUicvcrSet(0x00000001);         /* INT0 has highest priority         */    sysDcrUicsrClear(0xFFFFFFFF);        /* clear all ints again              */    return (OK);    }/********************************************************************************* sysUicIntConnect - connect a C routine to a hardware interrupt** This routine connects a specified C routine to a specified* interrupt vector.  It is called by intConnect().** The UIC does not provide vectors for external interrupts. Instead, vectors* are assigned according to the bits in the UIC's Enable Register (UIC_ER).** RETURNS: OK, or ERROR if <vector> is out of range.** SEE ALSO: intConnect(), sysUicIntHandler()*/LOCAL STATUS sysUicIntConnect    (    VOIDFUNCPTR * vector,       /* interrupt vector to attach to     */    VOIDFUNCPTR   routine,      /* routine to be called              */    int           parameter     /* parameter to be passed to routine */    )    {    if (((int)vector > INT_LEVEL_MAX) || ((int)vector < INT_LEVEL_MIN))        return (ERROR);    else        {        sysIntBlTbl[(int)vector] = routine;        sysIntArg[(int)vector]   = parameter;        return (OK);        }    }/********************************************************************************* sysUicIntHandler - UIC external interrupt handler** This is the external interrupt handler for the UIC** RETURNS: N/A*/void sysUicIntHandler    (    void    )    {    int vector;    UINT32 uicmsr;               /* contents of Masked Status Register */    UINT32 uicer;		 /* contents of the Enable Register */    UINT32 uiccr;		 /* contents of the Critical Register */    /*     * Get contents of UIC_MSR.  This register is read-only     * and relects the value of UIC_SR ANDed with UIC_ER.     */    uicmsr = sysDcrUicmsrGet();    /*     * Determine the interrupt source.     */    vector = vxFirstBit(uicmsr);#ifdef INCLUDE_WINDVIEW    WV_EVT_INT_ENT(vector)#endif    if (vector <= INT_LEVEL_MAX)        {	/*	 * The current interrupt and all lower priority interrupts are	 * masked out.  The initialization performed in sysUicIntrInit()	 * configures INT0 (MSB of the UIC enable register) as the highest 	 * priority interrupt.  Note that the UIC enable register does	 * NOT affect the watchdog, PIT, or FIT interrupts.	 */	uicer = sysDcrUicerGet ();	sysDcrUicerSet (uicer & (0xFFFFFFFF << (INT_LEVEL_MAX + 1 - vector)));	/* 	 * To enable interrupt nesting, an intUnlock() is performed to	 * set the EE and/or CE bits in the MSR.  The critical register	 * (UIC_CR) is read to determine if the current vector has been 	 * configured as a critical exception.  If the current interrupt	 * is critical, only the CE bit is set in the MSR permitting the	 * nesting of only critical interrupts.  Otherwise, both the CE	 * and EE bits are set permitting the nesting of critical and	 * non-critical interrupts.	 */        uiccr = sysDcrUiccrGet ();	if ((uiccr & (0x80000000 >> vector)) == 0)	    intUnlock (_PPC_MSR_EE | _PPC_MSR_CE);	else	    intUnlock (_PPC_MSR_CE);        /*         * Call the appropriate handler with the appropriate argument         */        if (sysIntBlTbl [vector] != (VOIDFUNCPTR) NULL)            (*sysIntBlTbl [vector]) (sysIntArg[vector]);        else            logMsg ("uninitialized interrupt vector %d\n", vector, 0,0,0,0,0);	/*	 * Clear the appropriate interrupt status bit in the UIC_SR.  This	 * is performed after the handler is invoked to ensure the hardware	 * device has been acknowledged prior to clearing the status bit.  	 * This is important for interrupts configured as level sensitive.	 */        sysDcrUicsrClear (1 << (INT_LEVEL_MAX - vector));        /* re-enable the current and lower priority interrupts */        sysDcrUicerSet (uicer);        }    }/********************************************************************************* sysUicIntDisable - disable an external interrupt level** This routine disables a specified external interrupt for the UIC** RETURNS: OK, or ERROR if <intLevel> is not in the range 0 - 31.** SEE ALSO: sysUicIntEnable()*/LOCAL STATUS sysUicIntDisable    (    int intLevel        /* interrupt level to disable */    )    {    UINT32 intMask;    if (intLevel > INT_LEVEL_MAX || intLevel < INT_LEVEL_MIN)        return (ERROR);    intMask = 1 << (INT_LEVEL_MAX - intLevel);    /*     * disable the interrupt level     */    sysDcrUicerSet((~intMask) & sysDcrUicerGet());    sysDcrUicsrClear(intMask);                    /* clear pending interrupts */    return (OK);    }/********************************************************************************* sysUicIntEnable - enable an external interrupt level** This routine enables a specified external interrupt for the UIC** RETURNS: OK, or ERROR if <intLevel> is not in the range 0 - 31.** SEE ALSO: sysUicIntDisable()*/LOCAL STATUS sysUicIntEnable    (    int intLevel        /* interrupt level to enable */    )    {    UINT32 intMask;    if (intLevel > INT_LEVEL_MAX || intLevel < INT_LEVEL_MIN)        return (ERROR);    intMask = 1 << (INT_LEVEL_MAX - intLevel);    sysDcrUicsrClear(intMask);                    /* clear pending interrupts */    /*     * enable the interrupt level     */    sysDcrUicerSet(intMask | sysDcrUicerGet());    return (OK);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天综合| 亚洲aⅴ怡春院| 欧美美女视频在线观看| 蜜臀av亚洲一区中文字幕| 精品国产一区二区亚洲人成毛片 | 日韩免费视频一区| 在线亚洲一区二区| 丰满亚洲少妇av| 粉嫩一区二区三区性色av| 久久国产三级精品| 精品在线亚洲视频| 麻豆freexxxx性91精品| 三级久久三级久久久| 亚洲国产精品影院| 最新日韩av在线| 亚洲女子a中天字幕| 亚洲欧美偷拍三级| 亚洲美女视频一区| 亚洲精品成a人| 亚洲国产视频直播| 爽好多水快深点欧美视频| 日韩精品一级二级| 精品一二三四在线| 成人免费黄色在线| 91视频免费观看| 欧美午夜精品理论片a级按摩| 91免费看视频| 欧美视频中文字幕| 日韩欧美中文字幕精品| 精品国产sm最大网站免费看| 欧美精品一区男女天堂| 久久精品欧美日韩精品| 自拍偷自拍亚洲精品播放| 亚洲精品日韩综合观看成人91| 一区二区理论电影在线观看| 性久久久久久久久久久久| 奇米影视在线99精品| 国产精品91一区二区| a亚洲天堂av| 91精品国产入口| 久久久精品中文字幕麻豆发布| 中文字幕在线观看一区| 亚洲成人资源网| 成人av第一页| 日韩欧美亚洲国产另类| 亚洲欧美韩国综合色| 国产一区在线不卡| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 在线播放视频一区| 一区二区三区91| 99久久国产综合精品女不卡| 欧美mv日韩mv国产网站app| 一区二区三区自拍| 成人教育av在线| 久久久夜色精品亚洲| 午夜欧美电影在线观看| 91亚洲国产成人精品一区二三| 久久婷婷一区二区三区| 午夜精品成人在线| 欧美日韩一区二区不卡| 中文字幕不卡三区| 国产一区二区三区四区五区入口| 欧美在线观看一二区| 最新高清无码专区| 成人黄动漫网站免费app| 久久日韩粉嫩一区二区三区| 日本不卡在线视频| 91精品国产麻豆| 天堂va蜜桃一区二区三区| 欧洲在线/亚洲| 亚洲精品va在线观看| 91亚洲资源网| 亚洲午夜一区二区| 欧美日韩国产在线播放网站| 午夜视频一区在线观看| 欧美二区三区91| 麻豆国产91在线播放| 精品va天堂亚洲国产| 久久精品国产亚洲5555| 精品欧美乱码久久久久久| 老司机精品视频线观看86| 日韩精品一区二区三区在线播放| 黄色小说综合网站| 国产精品乱码一区二三区小蝌蚪| 成人午夜视频免费看| 亚洲一区二区三区在线看| 日韩欧美一区在线| 国产成人日日夜夜| 亚洲一二三四在线观看| 日韩欧美国产精品一区| 99vv1com这只有精品| 日本欧美大码aⅴ在线播放| 久久精品水蜜桃av综合天堂| 色狠狠综合天天综合综合| 美美哒免费高清在线观看视频一区二区| 亚洲精品一区二区三区四区高清 | 亚洲成精国产精品女| 精品不卡在线视频| 日本大香伊一区二区三区| 国产毛片精品国产一区二区三区| 一区二区三区影院| 欧美激情一区二区三区不卡| 91麻豆精品国产91久久久使用方法 | 偷拍日韩校园综合在线| 中文字幕亚洲电影| 精品福利一二区| 欧美精品一级二级三级| 91色porny在线视频| 国产精品一线二线三线| 麻豆中文一区二区| 亚洲电影中文字幕在线观看| 18成人在线视频| 中文字幕一区二区不卡| 国产精品丝袜在线| 久久久精品中文字幕麻豆发布| 在线成人小视频| 91麻豆精品国产91| 欧美日韩亚洲综合在线 | 日本不卡在线视频| 日本特黄久久久高潮| 午夜精品久久久久久久99水蜜桃 | 在线观看一区不卡| 欧美情侣在线播放| 91精品视频网| 欧美电视剧在线看免费| 久久久精品黄色| 国产欧美日韩卡一| 亚洲区小说区图片区qvod| 一区二区三区四区在线播放 | 欧美亚洲国产一区二区三区 | 91麻豆精品国产自产在线观看一区 | 亚洲与欧洲av电影| 视频一区二区不卡| 午夜a成v人精品| 日本视频中文字幕一区二区三区| 青青草国产成人99久久| 精品一区二区三区在线播放| 国产剧情一区二区| 91亚洲国产成人精品一区二三| 欧美主播一区二区三区美女| 欧美xxxxxxxx| 亚洲视频电影在线| 午夜精品久久久久久久99水蜜桃| 日本欧美韩国一区三区| av一本久道久久综合久久鬼色| 欧美亚洲动漫精品| 国产亚洲成aⅴ人片在线观看| 亚洲激情中文1区| 精品午夜久久福利影院| 色播五月激情综合网| 中文字幕欧美区| 九色综合狠狠综合久久| av网站一区二区三区| 精品国产污污免费网站入口 | 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲一级二级三级在线免费观看| 国产一区二区三区香蕉| 欧美另类高清zo欧美| 亚洲免费在线播放| 成人黄色在线看| 国产日韩影视精品| 久久99热99| 91精品中文字幕一区二区三区| 亚洲欧美一区二区在线观看| 激情六月婷婷综合| 日韩视频一区二区三区| 一区二区三区高清| 在线国产电影不卡| 亚洲欧美激情小说另类| 不卡视频一二三四| 国产精品色哟哟网站| 岛国av在线一区| 中文字幕一区二区三中文字幕| 国产精品伊人色| 国产欧美综合色| 白白色亚洲国产精品| 亚洲三级视频在线观看| 欧美亚洲动漫精品| 日韩中文字幕一区二区三区| 91精品国产综合久久小美女| 婷婷开心久久网| 亚洲精品在线免费观看视频| 精品写真视频在线观看| 久久精品无码一区二区三区| 成人网在线免费视频| 亚洲婷婷综合色高清在线| 色综合天天综合网天天看片| 一区二区三区四区视频精品免费| 欧美色综合久久| 国产毛片精品视频| 亚洲成av人在线观看| 日韩无一区二区| 成人夜色视频网站在线观看| 一区二区在线电影| 日韩一区二区视频在线观看| 丰满亚洲少妇av| 亚洲国产成人91porn| 国产欧美一区视频| 日韩一二三区不卡| 色综合久久久久综合体桃花网|