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

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

?? dec2155xcpci.c

?? vxworks的bsp開發包(基于POWERPC的PRPMC800)
?? C
?? 第 1 頁 / 共 4 頁
字號:
            };        pWinParam++;        }    /*     * no window was found to contain adrs. indicate that translation was     * not possible.     */    return (ERROR);    }/******************************************************************************** sysDec2155xCaptWindows - captures Dec2155x window configuration** This routine searches through either the upstream or downstream Dec2155x* windows and captures the information required by the sysDec2155xCnvrtAdrs* routine. ** NOTE: This routine should not be called until the responsible processor has* enumerated the PCI bus. This is assured by checking the status of the* enable bits in the Primary and Secondary PCI command registers.** RETURNS: N/A** SEE ALSO: sysLocalToBusAdrs(), sysBusToLocalAdrs(), sysDec2155xCnvrtAdrs()*/LOCAL void sysDec2155xCaptWindows     (    UINT32 winCnt,    WINDOW_OFFSETS *pWinOffsets,    WINDOW_PARAMETERS *pWinParam,    UINT32 *winsValid    )    {    UINT32 bar;   /* holds contents of base address register */    UINT32 mask;  /* holds mask used to isolate valid bits translation reg */    UINT32 trans; /* value used to convert between address spaces */    *winsValid = 0;    while (winCnt--)        {        /* read setup register offset from the offset table. */        mask  = pWinOffsets->setup;        /*         * if the setup value from the table is an offset, then read the setup         * register. if the value from the table is a default setup value         * (indicates no setup register for this bar), then just use it as is.         */        if ( !(mask & DEC2155X_SETUP_REG_BAR_ENABLE) )            DEC2155X_CFG_RD_LONG(mask, &mask);        /* see if the register is enabled */        if ( mask & DEC2155X_SETUP_REG_BAR_ENABLE )            {            /*              * determine which PCI space the register is in (memory or i/o).             * and, setup the window type. adjust the mask to eliminate             * reserved bits from the setup register.             */            if ( (mask & PCI_BAR_SPACE_MASK) == PCI_BAR_SPACE_MEM )                {                pWinParam->windowType = PCI_BAR_SPACE_MEM;                mask &= ~DEC2155X_MEM_TB_RSV_MSK;                }            else               {                pWinParam->windowType = PCI_BAR_SPACE_IO;                mask &= ~DEC2155X_IO_OR_MEM_TB_RSV_MSK;               }            /* read the remaining register contents */            DEC2155X_CFG_RD_LONG(pWinOffsets->bar, &bar);            DEC2155X_CFG_RD_LONG(pWinOffsets->trans, &trans);           /* remove unused bits */            bar   &= mask;            trans &= mask;            /*             * save the base address of the window as seen from the originating             * and target sides. calculate limit of the window as seen from             * the target side.             */             pWinParam->origBase = bar + pWinOffsets->unuseable;             pWinParam->trgtBase = trans + pWinOffsets->unuseable;            pWinParam->trgtLimit = trans + ~mask;            if ( pWinParam->trgtLimit > pWinParam->trgtBase )               {               (*winsValid)++;               pWinParam++;               }            /* advance to next window */            pWinOffsets++;            }        else            {            /*             * pci base address registers must be contiguous, first disabled             * register terminates the loop.             */            break;            }        }    }/******************************************************************************** sysDec2155xChkEnables - check the originating and target bus enables** This routine examines the states of the I/O or Memory enables on the* originating bus and the Master Enable on the target bus. Both must be* enabled before the Dec2155x can pass a transaction across to the opposite* bus.** RETURNS: OK if the bridge is active, else ERROR** SEE ALSO: sysLocalToBusAdrs(), sysBusToLocalAdrs(), sysDec2155xCnvrtAdrs()*/STATUS sysDec2155xChkEnables    (UINT32 origOffset,     UINT32 trgtOffset,     UINT32 adrsSpace     )     {    UINT16 cmdReg;    UINT16 mask;    /* first determine if the required originating side enable is active */    switch (adrsSpace)        {        case PCI_BAR_SPACE_MEM:            mask = PCI_CMD_MEM_ENABLE;            break;        case PCI_BAR_SPACE_IO:            mask = PCI_CMD_IO_ENABLE;            break;        default:            mask = 0;            break;        }    /* read the PCI command register as seen from the originating side */    DEC2155X_CFG_RD_WORD(origOffset, &cmdReg);    if ( !(cmdReg & mask) )        return (ERROR); /* access not enabled */    /* now determine if the target side bus master enable is set */    DEC2155X_CFG_RD_WORD(trgtOffset, &cmdReg);    if (cmdReg & PCI_CMD_MASTER_ENABLE)        return (OK);    else        return (ERROR);    }    /******************************************************************************** sysPciToCpciAdrs - convert a local PCI address to a Compact PCI bus address** Given a local PCI address, this routine returns the corresponding Compact PCI* address provided that such an address exists. The translation is performed by* examining downstream windows in sequence until a window is found which* contains the specified local address. The translation is then performed using * the base addresses of the window as viewed from the local PCI and Compact PCI* bus sides.*** RETURNS: OK, or ERROR if the address space is unknown or the mapping is not* possible.** SEE ALSO: sysCpciToPciAdrs(), sysDec2155xCaptWindows(),*           sysDec2155xCnvrtAdrs()*/LOCAL STATUS sysPciToCpciAdrs    (    int     adrsSpace,     /* bus address space where busAdrs resides */    char *  localAdrs,     /* bus address to convert */    char ** pBusAdrs       /* where to return bus address */    )    {    /*      * before a downstream window can be operational, the host processor must     * have enabled the dec2155x memory and/or i/o access in the PCI primary     * command register and the local processor must have enabled the bus     * master bit in the secondary PCI command register. before proceeding,     * verify that the required access is enabled     */    if ( sysDec2155xChkEnables (PCI_CFG_COMMAND + DEC2155X_PRI_FROM_SEC_OFFSET,                                 PCI_CFG_COMMAND, adrsSpace) != OK )        return (ERROR);    /* if the downstream windows array is un-initialized, go initialize it */    if (dsWindows[0].trgtLimit == 0)        sysDec2155xCaptWindows (DS_WINDOW_COUNT, &dsWindowOffsets[0],                                &dsWindows[0], &dsWinsValid);    /* convert a local pci address to a compact pci address */    return ( sysDec2155xCnvrtAdrs (adrsSpace, (UINT32)localAdrs,                                   (UINT32 *)pBusAdrs, dsWinsValid,                                   &dsWindows[0]) );    }/******************************************************************************** sysCpciToPciAdrs - convert a compact pci bus address to a local pci address** Given a Compact PCI address, this routine returns the corresponding local PCI* address provided that such an address exists. The translation is performed by* examining the upstream windows in sequence until a window is found which* contains the specified Compact PCI bus address. The translation is then* performed using the base addresses of the window as viewed from the bus and* local sides. ** RETURNS: OK, or ERROR if the address space is unknown or the mapping is not* possible.** SEE ALSO: sysPciToCpciAdrs(), sysDec2155xCaptWindows(),*           sysDec2155xCnvrtAdrs()*/LOCAL STATUS sysCpciToPciAdrs    (    int     adrsSpace,      /* bus address space where busAdrs resides */    char *  busAdrs,        /* bus address to convert */    char ** pLocalAdrs      /* where to return local address */    )    {    /*      * before an upstream window can be operational, the local processor must     * have enabled the dec2155x memory and/or i/o spaces in the PCI secondary     * command register and the host processor must have enabled the bus     * master bit in the primary PCI command register. before proceeding     * verify that the required access is enabled.     */    if ( sysDec2155xChkEnables (PCI_CFG_COMMAND,                                PCI_CFG_COMMAND + DEC2155X_PRI_FROM_SEC_OFFSET,                                adrsSpace) != OK )        return (ERROR);    /* if the upstream windows array is un-initialized, go initialize it */    if (usWindows[0].trgtLimit == 0)        sysDec2155xCaptWindows (US_WINDOW_COUNT, &usWindowOffsets[0],                                &usWindows[0], &usWinsValid);    /* convert a compact pci address to a local pci address */    return ( sysDec2155xCnvrtAdrs (adrsSpace, (UINT32)busAdrs,                                   (UINT32 *)pLocalAdrs, usWinsValid,                                   &usWindows[0]) );    }/******************************************************************************* sysPciConfigPack21554 - Pack address for Dec 21554 configuration access** This function packs bus, device, function, and offset into a single* word in preparation for a Dec21554 configuration access.** RETURNS: Packed address*/LOCAL int sysPciConfigPack21554    (    int busNo,     /* bus number */    int deviceNo,  /* device number */    int funcNo,    /* function number */    int offset     /* offset into the configuration space */    )    {    int pciPackedAddr;    if (busNo ==  SYS_BACKPLANE_BUS_NUMBER)        /* Type 0 (device on bus) configuration access */        pciPackedAddr = ( ((1 << deviceNo) << 16) | (funcNo << 8) |                           (offset << 0) );    else        /* Type 1 (device beyond this bus) configuration access) */        pciPackedAddr = ( (1 << 31) | (busNo << 16) | (deviceNo << 11) |                          (funcNo << 8) | (offset << 0) | 1);    return ( pciPackedAddr );    }/******************************************************************************* sysPciConfig21554InLong - Perform Dec21554 long input configuration access** This function peforms a Dec21554 style long input configuration access* on the input bus, device, and function using the passed in offset.** RETURNS: OK if configuration access succeeded* ERROR of configuration access failed*/STATUS sysPciConfig21554InLong    (    int busNo,     /* bus number */    int deviceNo,  /* device number */    int funcNo,    /* function number */    int offset,    /* offset into the configuration space */    UINT32 * pData /* data read from the offset */    )    {    int pciPackedAddr;    /* Pack the address correctly for this bridge and transaction type */    pciPackedAddr = sysPciConfigPack21554 (busNo, deviceNo, funcNo, offset);    /* Set bit to enable upstream configuration transactions */    if ( (pciConfigModifyLong (DEC2155X_PCI_BUS_NUMBER,                               DEC2155X_PCI_DEV_NUMBER, 0,                               DEC2155X_CFG_CFG_CTRL_AND_STS-2,                               (DEC2155X_CCS_US_CFG_CTRL << 16),                               (DEC2155X_CCS_US_CFG_CTRL << 16))) != OK )       return (ERROR);    if ( pciConfigOutLong ( DEC2155X_PCI_BUS_NUMBER,                            DEC2155X_PCI_DEV_NUMBER, 0,                            DEC2155X_CFG_US_CONFIG_ADDRESS,                            pciPackedAddr ) != OK )        return (ERROR);    if ( pciConfigInLong (DEC2155X_PCI_BUS_NUMBER, DEC2155X_PCI_DEV_NUMBER, 0,                          DEC2155X_CFG_US_CONFIG_DATA,                          pData ) != OK )        return (ERROR);    return (OK);    }/******************************************************************************* sysCpciToPciAdrsDs - Translate cPCI address through downstream transaction** This function takes a compactPCI address and calculates the translated* address which will be produced as the address is converted through the* downstream registers of the drawbridge.** RETURNS: OK if the given cPCI address is accepted (and translated) by the * drawbridge.  ERROR if the address is not accepted by the drawbridge (not* mappable to any downstream windows).*/LOCAL STATUS sysCpciToPciAdrsDs    (    int     adrsSpace,      /* bus address space where busAdrs resides */    char *  busAdrs,        /* bus address to convert */    char ** pLocalAdrs      /* where to return local address */    )    {    int i=0;    /*      * before a downstream window can be operational, the host processor must     * have enabled the dec2155x memory and/or i/o access in the PCI primary     * command register and the local processor must have enabled the bus     * master bit in the secondary PCI command register. before proceeding,     * verify that the required access is enabled     */    if ( sysDec2155xChkEnables (PCI_CFG_COMMAND + DEC2155X_PRI_FROM_SEC_OFFSET,                                 PCI_CFG_COMMAND, adrsSpace) != OK )        return (ERROR);    while (i < dsWinsValid)	{	if ( (adrsSpace == dsWindows[i].windowType) &&	     (((UINT32)busAdrs >= dsWindows[i].origBase) && 	      ((UINT32)busAdrs <= (dsWindows[i].origBase + 				   (dsWindows[i].trgtLimit -	                            dsWindows[i].trgtBase)))) )	    {	    *pLocalAdrs = (char *)( ((UINT32)busAdrs - dsWindows[i].origBase) | 			              dsWindows[i].trgtBase );	    return(OK);	    }        i++;	}    return(ERROR);    }/******************************************************************************* sysDec2155xPrimaryBusMaster - Determine if Primary Bus master set on Dec2155x** This function examines the Dec2155x Primary Command Register to determine* if the Bus Master Enable bit is set.** RETURNS: TRUE if bus mastering enabled, FALSE otherwise.*/BOOL sysDec2155xPrimaryBusMaster (void)    {    UINT32 commandReg;    DEC2155X_CFG_RD_LONG (PCI_CFG_COMMAND + DEC2155X_PRI_FROM_SEC_OFFSET,		          &commandReg);    return ((commandReg & PCI_CMD_MASTER_ENABLE) != 0);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频在线观看一区二区三区| 精品裸体舞一区二区三区| 午夜精品成人在线视频| 日韩一级大片在线| 日本伊人精品一区二区三区观看方式| 欧美日韩精品二区第二页| 韩国v欧美v日本v亚洲v| 亚洲精品高清在线观看| 精品国产免费人成电影在线观看四季 | 国产精品二三区| 欧美日韩免费观看一区二区三区| 国模无码大尺度一区二区三区 | 日本人妖一区二区| 国产精品久久久久国产精品日日| 欧美日韩视频在线一区二区| 99精品黄色片免费大全| 国产精品一区二区三区乱码| 日韩精品乱码av一区二区| 国产精品免费免费| 欧美一区二区久久| 色94色欧美sute亚洲线路一ni| 国产一区二区三区免费播放| 日韩一区欧美二区| 一区二区三区日韩| 国产精品久久99| 精品人伦一区二区色婷婷| 欧美日韩不卡视频| 成人激情电影免费在线观看| 男男gaygay亚洲| 一区二区三区不卡视频| 精品粉嫩超白一线天av| eeuss鲁一区二区三区| 九九久久精品视频| 蜜桃精品视频在线| 婷婷激情综合网| 亚洲一区二区精品视频| 国产精品久久久久国产精品日日| 久久男人中文字幕资源站| 7777精品伊人久久久大香线蕉超级流畅 | 日日夜夜精品视频免费 | 韩国成人精品a∨在线观看| 污片在线观看一区二区| 亚洲国产另类av| 亚洲欧美日韩在线播放| 亚洲欧洲国产日本综合| 日本一区二区三区dvd视频在线| 日韩女优av电影在线观看| 欧美性受xxxx黑人xyx性爽| 91性感美女视频| proumb性欧美在线观看| 成人精品视频.| 成人综合日日夜夜| 国产成人在线影院| 国产不卡视频一区二区三区| 国产中文字幕精品| 韩国成人在线视频| 国产在线乱码一区二区三区| 看片的网站亚洲| 丝袜美腿亚洲综合| 日韩—二三区免费观看av| 日本不卡一区二区三区| 日韩av午夜在线观看| 毛片不卡一区二区| 久草热8精品视频在线观看| 韩国精品在线观看| 国产成人亚洲综合a∨猫咪| 国产九色sp调教91| 成人精品免费视频| 91久久精品网| 在线不卡的av| 欧美大黄免费观看| 在线观看区一区二| 欧美婷婷六月丁香综合色| 91精品国产全国免费观看 | 日本韩国一区二区| 在线电影一区二区三区| 精品久久久久久久久久久久包黑料| 欧美一区二区高清| 久久九九久久九九| 亚洲免费在线视频一区 二区| 亚洲伊人伊色伊影伊综合网| 一区二区三区四区中文字幕| 天天影视涩香欲综合网| 另类综合日韩欧美亚洲| 国产99一区视频免费| 色综合色狠狠天天综合色| 欧美日韩的一区二区| 精品少妇一区二区三区在线播放| 久久久久久久久久电影| 一区二区久久久| 国产91精品精华液一区二区三区| 欧美日韩一本到| 国产精品福利一区| 国产中文字幕一区| 欧美色手机在线观看| 2023国产精品| 一区二区理论电影在线观看| 精品亚洲国产成人av制服丝袜| 不卡的av中国片| 91福利国产成人精品照片| 久久综合色之久久综合| 国产精品二三区| 午夜精品久久一牛影视| 高清av一区二区| 欧美一级免费观看| 亚洲人成7777| 国产不卡视频在线观看| 欧美激情一二三区| 亚洲精品国产无套在线观| 麻豆成人av在线| 色婷婷国产精品| 国产视频在线观看一区二区三区| 久久精品亚洲国产奇米99| 亚洲大尺度视频在线观看| 成人在线一区二区三区| 欧美一区二区三区系列电影| 亚洲人成小说网站色在线 | 日本一区二区三级电影在线观看 | 欧美sm美女调教| 亚洲国产wwwccc36天堂| 国产毛片精品一区| 日韩视频国产视频| 国产精品久久久久久久久搜平片 | 欧美精品v国产精品v日韩精品| 国产精品久久久久影院亚瑟| 久久99久久99精品免视看婷婷 | 国产精品久久久久影院色老大| 蜜臂av日日欢夜夜爽一区| 欧美三级电影在线看| 2023国产精品| 久久er99热精品一区二区| 欧美日韩激情一区| 亚洲精品成人在线| www.性欧美| 国产精品毛片久久久久久久| 国产一区二三区好的| 日韩一级高清毛片| 三级亚洲高清视频| 欧美精品自拍偷拍动漫精品| 亚洲精品视频在线看| av动漫一区二区| 国产精品久久国产精麻豆99网站| 国产宾馆实践打屁股91| 久久奇米777| 狠狠色狠狠色综合系列| 精品国产乱码久久久久久1区2区| 青青草原综合久久大伊人精品| 日韩精彩视频在线观看| 欧美三区在线视频| 日本欧美大码aⅴ在线播放| 欧美精品一区在线观看| 国产精品综合一区二区| 国产精品国产三级国产a| 日本高清成人免费播放| 午夜精品久久久久久久蜜桃app| 制服.丝袜.亚洲.中文.综合| 精品一区二区三区免费观看 | 91久久精品午夜一区二区| 亚洲成人免费在线| 日韩精品一区二区三区视频| 国产精品一区二区在线观看网站| 国产精品你懂的在线欣赏| 色美美综合视频| 天天做天天摸天天爽国产一区| 精品国产a毛片| 色综合一个色综合亚洲| 天堂va蜜桃一区二区三区| 精品久久久久久久久久久院品网| 国产成人免费高清| 亚洲国产日韩一区二区| 精品国产乱码91久久久久久网站| 99视频一区二区| 日韩黄色一级片| 国产精品日韩成人| 欧美日韩免费观看一区三区| 国产精品一区二区视频| 亚洲最大成人综合| 国产亚洲一区二区三区在线观看 | 日韩欧美高清dvd碟片| 岛国一区二区在线观看| 91免费小视频| 伦理电影国产精品| 亚洲精品videosex极品| www国产亚洲精品久久麻豆| 色婷婷久久久久swag精品 | 成人性生交大片免费看视频在线 | 亚洲欧美日韩一区二区三区在线观看| 这里只有精品电影| 97精品视频在线观看自产线路二| 免费精品99久久国产综合精品| 亚洲日本va午夜在线影院| 日韩一级在线观看| 在线免费观看成人短视频| 国产成人免费av在线| 美腿丝袜亚洲三区| 亚洲永久免费视频| 国产精品高潮久久久久无| 26uuu久久天堂性欧美| 欧美日韩一区二区三区在线| 懂色中文一区二区在线播放|