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

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

?? ccio-rm-dma.c

?? 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/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 separately. */	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_for_cpu : NOP for U2 */	NULL,                   /* dma_sync_single_for_device : NOP for U2 */	NULL,                   /* dma_sync_sg_for_cpu     : ditto */	NULL,                   /* dma_sync_sg_for_device     : 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.start);/*** 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一区二区三区免费野_久草精品视频
国产情人综合久久777777| 欧美一级片免费看| 欧美成人性福生活免费看| 18成人在线观看| 美日韩黄色大片| 色94色欧美sute亚洲线路一ni| 美女网站色91| 色综合色综合色综合色综合色综合 | 麻豆精品视频在线观看免费| 91麻豆国产香蕉久久精品| 久久久久久电影| 免费观看在线色综合| 欧美性xxxxxx少妇| 日韩伦理av电影| 国产成人午夜片在线观看高清观看| 欧美另类一区二区三区| 亚洲另类中文字| 波多野结衣在线一区| 国产婷婷精品av在线| 精品写真视频在线观看| 日韩一区二区电影在线| 亚洲成a人片综合在线| 91免费版在线| 国产精品美女一区二区三区| 国产一区二区三区美女| 精品剧情v国产在线观看在线| 亚洲电影视频在线| 色久优优欧美色久优优| 1区2区3区精品视频| 成人涩涩免费视频| 国产调教视频一区| 国产iv一区二区三区| 久久久精品黄色| 国产露脸91国语对白| wwwwww.欧美系列| 成人黄色免费短视频| 国产毛片精品视频| 久久夜色精品一区| 激情综合色播五月| 精品国产一区二区在线观看| 蜜臀久久99精品久久久久宅男| 欧美精品在线视频| 日韩二区三区四区| 日韩一区二区影院| 麻豆成人综合网| 2023国产精华国产精品| 国产在线视频不卡二| 久久人人爽爽爽人久久久| 国产一区二区三区蝌蚪| 国产亚洲视频系列| 成人毛片在线观看| 亚洲乱码国产乱码精品精98午夜 | 福利91精品一区二区三区| 久久久www免费人成精品| 国产成人免费在线视频| 欧美韩国一区二区| 91网站最新地址| 亚洲一线二线三线视频| 在线不卡一区二区| 久久99精品一区二区三区三区| 久久奇米777| 9人人澡人人爽人人精品| 亚洲激情图片一区| 欧美三级日韩在线| 人人爽香蕉精品| 久久久亚洲午夜电影| 成人av片在线观看| 亚洲综合在线电影| 欧美一激情一区二区三区| 激情综合一区二区三区| 国产精品久久久久影院老司| 91搞黄在线观看| 日本午夜一区二区| 国产欧美日韩卡一| 在线观看免费亚洲| 男男成人高潮片免费网站| 久久亚洲综合色| 91同城在线观看| 日产国产高清一区二区三区| 26uuu精品一区二区| zzijzzij亚洲日本少妇熟睡| 亚洲美女视频在线| 欧美一区二区福利在线| 国产不卡在线一区| 亚洲国产中文字幕| 欧美精品一区二区在线观看| 99这里都是精品| 午夜精品久久久久影视| 久久久精品免费免费| 在线观看一区日韩| 国产在线看一区| 一区二区三区在线视频免费| 精品国产一区二区三区忘忧草| 福利电影一区二区| 日韩影院免费视频| 国产精品久久久久婷婷二区次| 欧美亚洲国产一区二区三区va| 另类专区欧美蜜桃臀第一页| 亚洲欧美怡红院| 亚洲地区一二三色| 国产欧美日韩在线| 欧美日韩国产一级二级| 国产成人av福利| 丝袜诱惑亚洲看片| 中文字幕在线不卡视频| 欧美一区二区三区在线视频| 不卡免费追剧大全电视剧网站| 视频在线在亚洲| 中文字幕日本不卡| 精品国产自在久精品国产| 91黄色免费看| 国产99久久久国产精品潘金| 日韩二区在线观看| 夜夜精品浪潮av一区二区三区 | 91欧美一区二区| 久久99最新地址| 亚洲午夜精品17c| 国产精品国产三级国产| 日韩欧美高清一区| 欧美日韩一区视频| 91麻豆免费观看| 高清在线不卡av| 久草这里只有精品视频| 亚洲国产欧美一区二区三区丁香婷| 国产蜜臀av在线一区二区三区| 日韩一二三区视频| 欧美三级在线播放| 91丨porny丨首页| 国产91精品露脸国语对白| 蜜臀av性久久久久蜜臀aⅴ| 亚洲无人区一区| 国产精品不卡一区二区三区| 久久综合狠狠综合久久激情| 欧美日韩国产精品自在自线| 在线免费观看一区| a4yy欧美一区二区三区| 大桥未久av一区二区三区中文| 国产一区美女在线| 毛片av中文字幕一区二区| 五月婷婷激情综合网| 一区二区三区不卡在线观看| 亚洲欧洲美洲综合色网| 日本一区二区三区视频视频| 久久丝袜美腿综合| wwww国产精品欧美| 精品99999| 欧美电视剧在线看免费| 日韩精品中文字幕在线一区| 91精品国产综合久久福利| 欧美精品在欧美一区二区少妇| 欧美三级日本三级少妇99| 91国偷自产一区二区三区成为亚洲经典 | 在线91免费看| 欧美区在线观看| 欧美色视频在线| 在线观看国产日韩| 91黄视频在线| 欧美无乱码久久久免费午夜一区| 日本韩国精品一区二区在线观看| 91在线精品秘密一区二区| 白白色亚洲国产精品| 99久久国产综合精品色伊| 9l国产精品久久久久麻豆| 97久久超碰国产精品| 99国产精品久久久久| 91视频在线观看免费| 日本乱人伦aⅴ精品| 欧美在线观看视频一区二区| 欧美日韩国产经典色站一区二区三区| 欧美人狂配大交3d怪物一区| 欧美一级日韩一级| www激情久久| 中日韩免费视频中文字幕| 亚洲欧美在线观看| 亚洲国产精品尤物yw在线观看| 午夜在线电影亚洲一区| 人人狠狠综合久久亚洲| 精品亚洲aⅴ乱码一区二区三区| 国产麻豆视频一区二区| 不卡视频免费播放| 色av一区二区| 日韩一卡二卡三卡四卡| 国产三级精品视频| 亚洲精品一卡二卡| 视频一区视频二区中文| 精品一区二区三区在线视频| 国产精品一区二区久久不卡| av在线播放成人| 欧美日韩一区国产| 亚洲精品一区二区三区在线观看| 久久久久久久久97黄色工厂| 一区在线观看免费| 亚洲午夜在线电影| 久久99精品国产麻豆不卡| 成人免费毛片片v| 欧美日韩一区视频| 国产亚洲美州欧州综合国| 亚洲乱码国产乱码精品精小说| 日本不卡视频在线观看| 成人av网站大全|