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

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

?? usbpcistub.c

?? sl811hs_vxworks_host_driver_v1_0_13 sl811的主驅(qū)動(dòng)
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
*
* Inputs a byte from a PCI I/O address <address>.
*
* RETURNS: byte input from i/o address
*/

UINT8 usbPciByteIn
    (
    UINT32 address		/* PCI I/O address */
    )

    {
    return USB_PCI_IN_BYTE (address);
    }


/***************************************************************************
*
* usbPciWordIn - input a word from PCI I/O space
*
* Inputs a word from a PCI I/O address <address>.
*
* NOTE: This function adjusts for big vs. little endian environments.
*
* RETURNS: word input from i/o address
*/

UINT16 usbPciWordIn
    (
    UINT32 address		/* PCI I/O address */
    )

    {
    UINT16 w = USB_PCI_IN_WORD (address);
    return FROM_LITTLEW (w);
    }


/***************************************************************************
*
* usbPciDwordIn - input a dword from PCI I/O space
*
* Inputs a dword from a PCI I/O address <address>.
*
* NOTE: This function adjusts for big vs. little endian environments.
*
* RETURNS: dword input from i/o address
*/

UINT32 usbPciDwordIn
    (
    UINT32 address		/* PCI I/O address */
    )

    {
    UINT32 l = USB_PCI_IN_DWORD (address);
    return FROM_LITTLEL (l);
    }


/***************************************************************************
*
* usbPciByteOut - output a byte to PCI I/O space
*
* Outputs <value> to the PCI I/O address <address>.
*
* RETURNS: N/A
*/

VOID usbPciByteOut
    (
    UINT32 address,		/* PCI I/O address */
    UINT8 value 		/* value */
    )

    {
    USB_PCI_OUT_BYTE (address, value);
    CACHE_PIPE_FLUSH ();
    }


/***************************************************************************
*
* usbPciWordOut - outputs a word to PCI I/O space
*
* Outputs <value> to the PCI I/O address <address>.
*
* NOTE: This function adjusts for big vs. little endian environments.
*
* RETURNS: N/A
*/

VOID usbPciWordOut
    (
    UINT32 address,		/* PCI I/O address */
    UINT16 value		/* value */
    )

    {
    UINT16 w = TO_LITTLEW (value);
    USB_PCI_OUT_WORD (address, w);
    CACHE_PIPE_FLUSH ();
    }


/***************************************************************************
*
* usbPciDwordOut - outputs a dword to PCI I/O space
*
* Outputs <value> to the PCI I/O address <address>.
*
* NOTE: This function adjusts for big vs. little endian environments.
*
* RETURNS: N/A
*/

VOID usbPciDwordOut
    (
    UINT32 address,		/* PCI I/O address */
    UINT32 value		/* value */
    )

    {
    UINT32 l = TO_LITTLEL (value);
    USB_PCI_OUT_DWORD (address, l);
    CACHE_PIPE_FLUSH ();
    }
#endif


/***************************************************************************
*
* usbPciMemioOffset - Return PCI MEMIO to CPU MEMIO offset
*
* For memory-mapped I/O, the CPU's view of a memory address may not be the
* same as that programmed into the base address register of a PCI adapter.
* The CPU should add the value returned by this function to the BAR in order
* to produce the correct CPU-visible memory address.
*
* RETURNS: PCI_MEMIO_OFFSET
*/

UINT32 usbPciMemioOffset (void)
    {
#ifdef INCLUDE_USB_PCI
    return PCI_MEMIO_OFFSET;
#else
    return 0;
#endif
    }


/***************************************************************************
*
* usbMemToPci - Convert a memory address to a PCI-reachable memory address
*
* Converts <pMem> to an equivalent 32-bit memory address visible from the 
* PCI bus.  This conversion is necessary to allow PCI bus masters to address
* the same memory viewed by the processor.
*
* RETURNS: converted memory address
*/

UINT32 usbMemToPci
    (
    pVOID pMem			/* memory address to convert */
    )

    {
#ifdef INCLUDE_USB_PCI
    pVOID pPhys;
    
    /* The conversion is a two-step process.  First, we need to convert the
     * logical processor address (virtual) to a physical address.  Then, we
     * convert the physical address to one which can be seen from the PCI
     * bus.
     */

    pPhys = CACHE_DRV_VIRT_TO_PHYS (&cacheUserFuncs, pMem);

    return ((UINT32) pPhys) + PCI_MEM_OFFSET;
#else
    return(UINT32)pMem ;
#endif

    }


/***************************************************************************
*
* usbPciToMem - Convert a PCI-reachable address to a CPU-reachable pointer
*
* Converts <pciAdrs> to an equivalent CPU memory address.  
*
* RETURNS: pointer to PCI memory
*/

pVOID usbPciToMem
    (
    UINT32 pciAdrs		/* 32-bit PCI address to be converted */
    )

    {

#ifdef INCLUDE_USB_PCI
    return CACHE_DRV_PHYS_TO_VIRT (&cacheUserFuncs, 
	(void *) (pciAdrs - PCI_MEM_OFFSET));
#else
    return (pVOID)pciAdrs ;
#endif

    }


#ifdef INCLUDE_USB_PCI
/***************************************************************************
*
* usbPciMemInvalidate - Invalidate cache for a region of memory
*
* When another bus master, such as a PCI bus master, writes to memory, the
* cache may need to be invalidated for that region of memory.
*
* NOTE: Returns immediately if size == 0.
*
* RETURNS: N/A
*/

VOID usbPciMemInvalidate
    (
    pVOID pMem, 		/* base of memory region to invalidate */
    UINT32 size 		/* size of region to invalidate */
    )

    {
    if (size != 0)
	CACHE_USER_INVALIDATE (pMem, size);
    }


/***************************************************************************
*
* usbPciMemFlush - Flush a region of memory through the cache
*
* In systems which implement a non-write-thru cache, the processor may have
* written data to memory which has not yet been flushed to the actual system
* memory.  Before other bus masters may interrogate this memory, it may be
* necessary to flush the cache.
*
* NOTE: Returns immediately if size == 0.
*
* RETURNS: N/A
*/

VOID usbPciMemFlush
    (
    pVOID pMem, 		/* base of memory region to invalidate */
    UINT32 size 		/* size of region to invalidate */
    )

    {
    if (size != 0)
	CACHE_USER_FLUSH (pMem, size);
    }
#endif


/***************************************************************************
*
* usbPciIntConnect - Connect to a interrupt vector
*
* Connects the <func> to the interrupt number <intNo>.	<param> is an
* application-specific value which will be passed to <func> each time
* the interrupt handler is invoked.  
*
* RETURNS: OK, or ERROR if unable to connect/enable interrupt
*/

STATUS usbPciIntConnect
    (
    INT_HANDLER_PROTOTYPE func,     /* new interrupt handler */
    pVOID param,		    /* parameter for int handler */
    UINT16 intNo		    /* interrupt vector number */
    )

    {
#ifdef INCLUDE_USB_PCI
    if (USB_INT_CONNECT (intNo, func, param) != OK)
	return ERROR;

    if (USB_INT_ENABLE (intNo) != OK)
	{
	USB_INT_DISCONNECT (intNo, func, param);
	return ERROR;
	}

    if (intNo < USB_MAX_INT_NO) 
	intUsage [intNo]++;
#endif

    return OK;
    }


/***************************************************************************
*
* usbPciIntDisconnect - Removes an interrupt handler
*
* Removes an interrupt handler installed by usbPciIntConnect().  <func>,
* <param>, and <intNo> must match the corresponding parameters from an earlier 
* call to usbPciIntConnect().
*
* RETURNS: N/A
*/

VOID usbPciIntRestore
    (
    INT_HANDLER_PROTOTYPE func,     /* int handler to be removed */
    pVOID param,		    /* parameter for int handler */
    UINT16 intNo		    /* interrupt vector number */
    )

    {
#ifdef INCLUDE_USB_PCI
    if (intNo >= USB_MAX_INT_NO || 
	(intUsage [intNo] != 0 && --intUsage [intNo] == 0))
	{
	USB_INT_DISABLE (intNo);
	}

    USB_INT_DISCONNECT (intNo, func, param);
#endif
    }


/* End of file. */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久久久久久久久久 | 亚洲欧美另类图片小说| 亚洲精品国产精华液| 美女任你摸久久| 色婷婷久久久亚洲一区二区三区| 555www色欧美视频| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲午夜精品网| 成人免费视频一区二区| 日韩视频在线观看一区二区| 亚洲欧美日韩系列| 成人性生交大片免费看中文| 精品精品国产高清a毛片牛牛 | 五月婷婷激情综合网| 97se亚洲国产综合自在线观| 2020日本不卡一区二区视频| 亚洲成人免费看| 色噜噜狠狠一区二区三区果冻| 久久久欧美精品sm网站| 美女一区二区视频| 欧美日本在线一区| 亚洲一区二区在线视频| 盗摄精品av一区二区三区| 欧美一二三区精品| 日韩国产精品久久久| 欧美日韩国产精选| 亚洲国产一区二区a毛片| 色综合色狠狠天天综合色| 国产精品色在线| 高清beeg欧美| 中文字幕精品在线不卡| 国产 日韩 欧美大片| 久久精品人人做人人综合 | 亚洲va韩国va欧美va| 欧美三级中文字| 午夜国产精品影院在线观看| 欧美日韩高清一区二区不卡| 亚洲福利一区二区| 欧美电影一区二区三区| 日本伊人色综合网| 日韩精品中午字幕| 精品一区二区三区影院在线午夜| 欧美电影免费提供在线观看| 久久91精品国产91久久小草| 久久亚区不卡日本| 国产成人福利片| 日韩美女视频19| 欧美在线你懂得| 日韩成人午夜精品| 久久综合九色综合欧美就去吻 | 精品国一区二区三区| 国产伦精品一区二区三区在线观看| 精品动漫一区二区三区在线观看| 国产乱子伦视频一区二区三区| 国产欧美一区二区三区网站| 99久久婷婷国产综合精品| 亚洲欧美日韩国产另类专区| 精品1区2区3区| 黄色资源网久久资源365| 久久久不卡网国产精品二区 | 久久99精品久久久久久动态图 | 亚洲天堂中文字幕| 在线不卡中文字幕| 国产成人在线观看免费网站| 国产精品久久久久久户外露出| 欧美日韩中文国产| 国内不卡的二区三区中文字幕| 一区免费观看视频| 91麻豆精品国产91久久久久久久久 | 国产精品亚洲专一区二区三区 | 青青草原综合久久大伊人精品| 日韩午夜av一区| 91在线无精精品入口| 日本va欧美va欧美va精品| 欧美国产成人在线| 555夜色666亚洲国产免| a级精品国产片在线观看| 日韩国产欧美在线视频| 国产精品美女久久久久aⅴ| 欧美精品久久天天躁| 风间由美一区二区三区在线观看 | 国产精品一级片在线观看| 亚洲第一成年网| 国产精品欧美一区二区三区| 欧美老肥妇做.爰bbww视频| 粉嫩高潮美女一区二区三区| 三级久久三级久久久| 中文字幕亚洲一区二区va在线| 日韩一卡二卡三卡| 色悠久久久久综合欧美99| 韩国av一区二区三区四区| 亚欧色一区w666天堂| 国产精品久久久久久久第一福利| 日韩欧美亚洲国产另类| 欧美在线影院一区二区| 丁香桃色午夜亚洲一区二区三区| 日韩高清电影一区| 伊人色综合久久天天人手人婷| 国产欧美日本一区二区三区| 日韩一区二区在线看| 欧美日韩国产美女| 欧美亚洲禁片免费| 91免费国产在线观看| 成人在线视频一区| 国产高清精品久久久久| 免费成人在线播放| 亚洲123区在线观看| 亚洲国产欧美一区二区三区丁香婷| 中文字幕第一区二区| 久久久777精品电影网影网| 日韩精品资源二区在线| 欧美电影精品一区二区| 欧美一区二区国产| 6080国产精品一区二区| 欧美日韩一级片网站| 欧美日韩不卡在线| 欧美精品在欧美一区二区少妇| 色999日韩国产欧美一区二区| 91啦中文在线观看| 91网站最新网址| 色婷婷综合久久久中文一区二区| 99精品国产99久久久久久白柏| 成人久久18免费网站麻豆| 成人av在线网| 色综合久久久网| 欧美三日本三级三级在线播放| 欧美精品tushy高清| 精品视频一区三区九区| 欧美性大战xxxxx久久久| 欧美三级欧美一级| 日韩一区二区在线观看| 日韩精品一区二区三区在线观看 | 青青草成人在线观看| 激情综合色综合久久| 国产一区 二区| 成人黄色777网| 色综合色狠狠天天综合色| 欧美人xxxx| 欧美变态口味重另类| 日本一区二区三区四区 | 国产一区二区三区久久久| 国产成人精品免费网站| 欧美在线观看一区| 日韩欧美aaaaaa| 亚洲国产成人私人影院tom| 亚洲精品中文在线影院| 亚洲图片有声小说| 免费成人在线视频观看| av在线播放不卡| 欧美日韩另类一区| 国产色产综合产在线视频| 中文字幕一区二区三区av| 日韩精品一级二级| 成人av综合在线| 欧美一级欧美三级在线观看| 亚洲国产精品激情在线观看| 亚洲一区二区三区四区不卡| 免费成人av在线| 91在线porny国产在线看| 91精品婷婷国产综合久久竹菊| 精品国产乱码久久久久久久久| 国产精品国产精品国产专区不蜜 | 欧美日韩aaaaaa| 久久久久久久久久美女| 樱桃视频在线观看一区| 国产剧情在线观看一区二区| 欧洲av一区二区嗯嗯嗯啊| 欧美第一区第二区| 亚洲中国最大av网站| 国产成人综合在线| 在线电影一区二区三区| 中文字幕在线观看一区| 精品一区二区久久久| 91丨九色丨国产丨porny| 日韩欧美一区二区不卡| 亚洲三级理论片| 国产成人一区二区精品非洲| 欧美私人免费视频| 国产精品美女www爽爽爽| 精品一区二区三区免费毛片爱| 色哟哟一区二区在线观看 | 91精品国产免费久久综合| 曰韩精品一区二区| 成人福利在线看| 国产亚洲午夜高清国产拍精品 | 精品福利一区二区三区| 蜜臀av一区二区三区| 欧美午夜宅男影院| 《视频一区视频二区| 国产精一品亚洲二区在线视频| 欧美一区二区三区喷汁尤物| 亚洲第一精品在线| 精品视频一区 二区 三区| 亚洲激情成人在线| 成人av影视在线观看| 亚洲精品一区二区三区99 | 亚洲欧洲精品一区二区三区 | 日韩免费视频一区| 美女久久久精品| 欧美日韩夫妻久久|