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

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

?? ccio-rm-dma.c

?? 一個2.4.21版本的嵌入式linux內核
?? C
字號:
/* * ccio-rm-dma.c: *	DMA management routines for first generation cache-coherent machines. *	"Real Mode" operation refers to U2/Uturn chip operation. The chip *      can perform coherency checks w/o using the I/O MMU. That's all we *      need until support for more than 4GB phys mem is needed. *  *	This is the trivial case - basically what x86 does. * *	Drawbacks of using Real Mode are: *	o outbound DMA is slower since one isn't using the prefetching *	  U2 can do for outbound DMA. *	o Ability to do scatter/gather in HW is also lost. *      o only known to work with PCX-W processor. (eg C360) *        (PCX-U/U+ are not coherent with U2 in real mode.) * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * * Original version/author: *      CVSROOT=:pserver:anonymous@198.186.203.37:/cvsroot/linux-parisc *      cvs -z3 co linux/arch/parisc/kernel/dma-rm.c * *	(C) Copyright 2000 Philipp Rumpf <prumpf@tux.org> * * * Adopted for The Puffin Group's parisc-linux port by Grant Grundler. *	(C) Copyright 2000 Grant Grundler <grundler@puffin.external.hp.com> *	 */#include <linux/types.h>#include <linux/init.h>#include <linux/mm.h>#include <linux/string.h>#include <linux/pci.h>#include <asm/uaccess.h>#include <asm/pgalloc.h>#include <asm/io.h>#include <asm/hardware.h>#include <asm/page.h>/* Only chose "ccio" since that's what HP-UX calls it....** Make it easier for folks to migrate from one to the other :^)*/#define MODULE_NAME "ccio"#define U2_IOA_RUNWAY 0x580#define U2_BC_GSC     0x501#define UTURN_IOA_RUNWAY 0x581#define UTURN_BC_GSC     0x502#define IS_U2(id) ( \    (((id)->hw_type == HPHW_IOA) && ((id)->hversion == U2_IOA_RUNWAY)) || \    (((id)->hw_type == HPHW_BCPORT) && ((id)->hversion == U2_BC_GSC))  \)#define IS_UTURN(id) ( \    (((id)->hw_type == HPHW_IOA) && ((id)->hversion == UTURN_IOA_RUNWAY)) || \    (((id)->hw_type == HPHW_BCPORT) && ((id)->hversion == UTURN_BC_GSC))  \)static int ccio_dma_supported( struct pci_dev *dev, u64 mask){	if (dev == NULL) {		printk(KERN_ERR MODULE_NAME ": EISA/ISA/et al not supported\n");		BUG();		return(0);	}	/* only support 32-bit devices (ie PCI/GSC) */	return((int) (mask >= 0xffffffffUL));}static void *ccio_alloc_consistent(struct pci_dev *dev, size_t size,				 dma_addr_t *handle){	void *ret;		ret = (void *)__get_free_pages(GFP_ATOMIC, get_order(size));	if (ret != NULL) {		memset(ret, 0, size);		*handle = virt_to_phys(ret);	}	return ret;}	static void ccio_free_consistent(struct pci_dev *dev, size_t size,			       void *vaddr, dma_addr_t handle){	free_pages((unsigned long)vaddr, get_order(size));}static dma_addr_t ccio_map_single(struct pci_dev *dev, void *ptr, size_t size,			  int direction){	return virt_to_phys(ptr);}static void ccio_unmap_single(struct pci_dev *dev, dma_addr_t dma_addr,			    size_t size, int direction){	/* Nothing to do */}static int ccio_map_sg(struct pci_dev *dev, struct scatterlist *sglist, int nents, int direction){	int tmp = nents;        /* KISS: map each buffer seperately. */	while (nents) {		sg_dma_address(sglist) = ccio_map_single(dev, sglist->address, sglist->length, direction);		sg_dma_len(sglist) = sglist->length;		nents--;		sglist++;	}	return tmp;}static void ccio_unmap_sg(struct pci_dev *dev, struct scatterlist *sglist, int nents, int direction){#if 0	while (nents) {		ccio_unmap_single(dev, sg_dma_address(sglist), sg_dma_len(sglist), direction);		nents--;		sglist++;	}	return;#else	/* Do nothing (copied from current ccio_unmap_single()  :^) */#endif}static struct pci_dma_ops ccio_ops = {	ccio_dma_supported,	ccio_alloc_consistent,	ccio_free_consistent,	ccio_map_single,	ccio_unmap_single,	ccio_map_sg,	ccio_unmap_sg,	NULL,                   /* dma_sync_single : NOP for U2 */	NULL,                   /* dma_sync_sg     : ditto */};/*** Determine if u2 should claim this chip (return 0) or not (return 1).** If so, initialize the chip and tell other partners in crime they** have work to do.*/static intccio_probe(struct parisc_device *dev){	printk(KERN_INFO "%s found %s at 0x%lx\n", MODULE_NAME,			dev->id.hversion == U2_BC_GSC ? "U2" : "UTurn",			dev->hpa);/*** FIXME - should check U2 registers to verify it's really running** in "Real Mode".*/#if 0/* will need this for "Virtual Mode" operation */	ccio_hw_init(ccio_dev);	ccio_common_init(ccio_dev);#endif	hppa_dma_ops = &ccio_ops;	return 0;}static struct parisc_device_id ccio_tbl[] = {	{ HPHW_BCPORT, HVERSION_REV_ANY_ID, U2_BC_GSC, 0xc },	{ HPHW_BCPORT, HVERSION_REV_ANY_ID, UTURN_BC_GSC, 0xc },	{ 0, }};static struct parisc_driver ccio_driver = {        name:           "U2/Uturn",        id_table:       ccio_tbl,        probe:          ccio_probe,};void __init ccio_init(void){	register_parisc_driver(&ccio_driver);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆福利精品推荐| 欧美激情艳妇裸体舞| 日韩欧美一二三| 日本一区二区免费在线观看视频| 久久精品人人爽人人爽| 成人欧美一区二区三区小说| 亚洲精品老司机| 麻豆成人久久精品二区三区小说| 国产精品18久久久久久久网站| 99re这里只有精品首页| 在线不卡中文字幕| 国产精品久久一级| 久久国产精品露脸对白| 在线观看亚洲a| 中文字幕欧美国产| 日韩电影免费在线看| 91麻豆123| 欧美激情综合五月色丁香| 午夜精品爽啪视频| 99国产精品视频免费观看| 欧美成人乱码一区二区三区| 亚洲人被黑人高潮完整版| 国产精品中文字幕日韩精品| 56国语精品自产拍在线观看| 国产乱码精品一区二区三区忘忧草| 欧美无砖砖区免费| **欧美大码日韩| www.视频一区| 国产精品蜜臀在线观看| 国产老妇另类xxxxx| 欧美tickling网站挠脚心| 日本在线播放一区二区三区| 色综合久久中文综合久久97| 中文字幕国产一区| 成人午夜视频免费看| 国产色婷婷亚洲99精品小说| 美女高潮久久久| 日韩欧美国产一区二区在线播放 | xfplay精品久久| 美女视频网站黄色亚洲| 日韩视频国产视频| 美腿丝袜亚洲综合| 欧美成人三级电影在线| 国产乱子伦一区二区三区国色天香| 欧美刺激午夜性久久久久久久| 美女视频黄 久久| 久久久午夜电影| 成人听书哪个软件好| 国产精品福利影院| 欧美在线播放高清精品| 亚洲国产精品久久不卡毛片| 91精品国产欧美一区二区成人 | 日韩欧美国产综合一区 | 欧美视频精品在线观看| 天天综合日日夜夜精品| 日韩三级视频中文字幕| 国产成人精品aa毛片| 亚洲欧美另类在线| 欧美精品免费视频| 国产精品正在播放| 一区二区三区不卡在线观看| 3atv一区二区三区| 成人美女视频在线观看18| 久久国产精品72免费观看| 精品国产乱码久久久久久1区2区| 成人看片黄a免费看在线| 亚洲午夜激情av| 国产性色一区二区| 欧美精品123区| 成人h精品动漫一区二区三区| 午夜亚洲福利老司机| 中文字幕中文字幕在线一区| 日韩一级黄色片| 欧美最猛黑人xxxxx猛交| 国产麻豆一精品一av一免费| 五月天网站亚洲| 亚洲黄色录像片| 综合欧美一区二区三区| 国产清纯在线一区二区www| 91精品一区二区三区久久久久久 | 欧美午夜一区二区三区| 国产精品18久久久久久久久久久久 | 91久久国产综合久久| 成人免费视频播放| 韩国v欧美v日本v亚洲v| 九九久久精品视频| 日韩国产精品久久久久久亚洲| 亚洲精品欧美激情| 一区二区三区国产精品| 最新成人av在线| 亚洲免费观看高清完整版在线 | 丝袜美腿一区二区三区| 午夜精品视频一区| 日本vs亚洲vs韩国一区三区二区| 男女男精品视频网| 久久成人免费网站| 韩国在线一区二区| 国产在线精品一区二区| 国产成人小视频| 国产成人亚洲精品青草天美| 不卡av电影在线播放| 色婷婷综合视频在线观看| 日本高清成人免费播放| 91麻豆精品国产91久久久资源速度 | 美女视频一区在线观看| 欧美日韩一区二区在线视频| 日韩一级欧美一级| 欧美极品xxx| 午夜欧美2019年伦理| 国产a视频精品免费观看| 91色综合久久久久婷婷| 91精品国产91热久久久做人人| 精品久久国产老人久久综合| 国产精品传媒视频| 日韩精品国产欧美| 国产宾馆实践打屁股91| 欧美三区在线观看| 中文字幕av一区二区三区| 亚洲国产精品欧美一二99| 国产精品一级在线| 欧美日韩视频在线一区二区| 久久蜜臀中文字幕| 日韩av在线播放中文字幕| 99在线精品视频| 日韩午夜在线观看视频| 亚洲欧美另类久久久精品| 精品综合久久久久久8888| 欧美日韩极品在线观看一区| 国产精品萝li| 国产在线精品一区二区三区不卡| 欧美日韩国产123区| 国产精品蜜臀av| 国产福利一区二区三区| 日韩欧美国产一区在线观看| 一区二区三区四区在线| 粉嫩一区二区三区在线看| 精品国产亚洲一区二区三区在线观看| 亚洲制服丝袜在线| 色视频欧美一区二区三区| 国产精品久久久久久久久动漫| 免费一级片91| 日韩一级成人av| 午夜成人免费电影| 欧美精品自拍偷拍| 亚洲一区二区三区精品在线| 日本二三区不卡| 亚洲免费色视频| 欧美日韩国产大片| 美女视频免费一区| 精品国产凹凸成av人导航| 久久99热这里只有精品| 欧美精品一区二区三区久久久| 久久精品国产在热久久| 欧美va亚洲va在线观看蝴蝶网| 久久精品二区亚洲w码| 26uuu精品一区二区| 成人黄色网址在线观看| |精品福利一区二区三区| 欧美性欧美巨大黑白大战| 国产一区二区h| 国产精品久久久久精k8| 91久久线看在观草草青青| 亚洲一级二级三级在线免费观看| 51久久夜色精品国产麻豆| 国产一区二区三区久久悠悠色av| 久久久久久久免费视频了| a4yy欧美一区二区三区| 天堂在线一区二区| 国产日产欧美精品一区二区三区| av色综合久久天堂av综合| 亚洲一区二区三区四区不卡| 精品久久久影院| 欧美午夜影院一区| 久草在线在线精品观看| 亚洲欧美日韩在线播放| 欧美v日韩v国产v| 91丝袜高跟美女视频| 麻豆精品一区二区| 综合精品久久久| 久久蜜桃一区二区| 欧美二区三区91| 99久久精品久久久久久清纯| 麻豆视频观看网址久久| 亚洲自拍另类综合| 亚洲欧洲av另类| 国产情人综合久久777777| 日韩午夜中文字幕| 在线成人高清不卡| 色婷婷综合久久久久中文| 韩国精品在线观看| 蜜乳av一区二区| 日韩高清电影一区| 午夜欧美一区二区三区在线播放| 综合激情成人伊人| 亚洲欧美综合另类在线卡通| 久久精品在线观看| 国产欧美一区二区精品忘忧草| 日韩精品专区在线影院重磅| 欧美人动与zoxxxx乱| 欧美乱妇23p|