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

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

?? dma.c

?? 該文件是rt_linux
?? C
字號:
/* *  linux/arch/arm/kernel/dma.c * *  Copyright (C) 1995-2000 Russell King * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * *  Front-end to the DMA handling.  This handles the allocation/freeing *  of DMA channels, and provides a unified interface to the machines *  DMA facilities. */#include <linux/module.h>#include <linux/slab.h>#include <linux/sched.h>#include <linux/mman.h>#include <linux/init.h>#include <linux/spinlock.h>#include <asm/dma.h>#include <asm/mach/dma.h>spinlock_t dma_spin_lock = SPIN_LOCK_UNLOCKED;#if MAX_DMA_CHANNELS > 0static dma_t dma_chan[MAX_DMA_CHANNELS];/* * Get dma list for /proc/dma */int get_dma_list(char *buf){	dma_t *dma;	char *p = buf;	int i;	for (i = 0, dma = dma_chan; i < MAX_DMA_CHANNELS; i++, dma++)		if (dma->lock)			p += sprintf(p, "%2d: %14s %s\n", i,				     dma->d_ops->type, dma->device_id);	return p - buf;}/* * Request DMA channel * * On certain platforms, we have to allocate an interrupt as well... */int request_dma(dmach_t channel, const char *device_id){	dma_t *dma = dma_chan + channel;	int ret;	if (channel >= MAX_DMA_CHANNELS || !dma->d_ops)		goto bad_dma;	if (xchg(&dma->lock, 1) != 0)		goto busy;	dma->device_id = device_id;	dma->active    = 0;	dma->invalid   = 1;	ret = 0;	if (dma->d_ops->request)		ret = dma->d_ops->request(channel, dma);	if (ret)		xchg(&dma->lock, 0);	return ret;bad_dma:	printk(KERN_ERR "dma: trying to allocate DMA%d\n", channel);	return -EINVAL;busy:	return -EBUSY;}/* * Free DMA channel * * On certain platforms, we have to free interrupt as well... */void free_dma(dmach_t channel){	dma_t *dma = dma_chan + channel;	if (channel >= MAX_DMA_CHANNELS || !dma->d_ops)		goto bad_dma;	if (dma->active) {		printk(KERN_ERR "dma%d: freeing active DMA\n", channel);		dma->d_ops->disable(channel, dma);		dma->active = 0;	}	if (xchg(&dma->lock, 0) != 0) {		if (dma->d_ops->free)			dma->d_ops->free(channel, dma);		return;	}	printk(KERN_ERR "dma%d: trying to free free DMA\n", channel);	return;bad_dma:	printk(KERN_ERR "dma: trying to free DMA%d\n", channel);}/* Set DMA Scatter-Gather list */void set_dma_sg (dmach_t channel, struct scatterlist *sg, int nr_sg){	dma_t *dma = dma_chan + channel;	dma->sg = sg;	dma->sgcount = nr_sg;	dma->using_sg = 1;	dma->invalid = 1;}/* Set DMA address * * Copy address to the structure, and set the invalid bit */void set_dma_addr (dmach_t channel, unsigned long physaddr){	dma_t *dma = dma_chan + channel;	if (dma->active)		printk(KERN_ERR "dma%d: altering DMA address while "		       "DMA active\n", channel);	dma->sg = &dma->buf;	dma->sgcount = 1;	dma->buf.address = bus_to_virt(physaddr);	dma->using_sg = 0;	dma->invalid = 1;}/* Set DMA byte count * * Copy address to the structure, and set the invalid bit */void set_dma_count (dmach_t channel, unsigned long count){	dma_t *dma = dma_chan + channel;	if (dma->active)		printk(KERN_ERR "dma%d: altering DMA count while "		       "DMA active\n", channel);	dma->sg = &dma->buf;	dma->sgcount = 1;	dma->buf.length = count;	dma->using_sg = 0;	dma->invalid = 1;}/* Set DMA direction mode */void set_dma_mode (dmach_t channel, dmamode_t mode){	dma_t *dma = dma_chan + channel;	if (dma->active)		printk(KERN_ERR "dma%d: altering DMA mode while "		       "DMA active\n", channel);	dma->dma_mode = mode;	dma->invalid = 1;}/* Enable DMA channel */void enable_dma (dmach_t channel){	dma_t *dma = dma_chan + channel;	if (!dma->lock)		goto free_dma;	if (dma->active == 0) {		dma->active = 1;		dma->d_ops->enable(channel, dma);	}	return;free_dma:	printk(KERN_ERR "dma%d: trying to enable free DMA\n", channel);	BUG();}/* Disable DMA channel */void disable_dma (dmach_t channel){	dma_t *dma = dma_chan + channel;	if (!dma->lock)		goto free_dma;	if (dma->active == 1) {		dma->active = 0;		dma->d_ops->disable(channel, dma);	}	return;free_dma:	printk(KERN_ERR "dma%d: trying to disable free DMA\n", channel);	BUG();}void set_dma_page(dmach_t channel, char pagenr){	printk(KERN_ERR "dma%d: trying to set_dma_page\n", channel);}void set_dma_speed(dmach_t channel, int cycle_ns){	dma_t *dma = dma_chan + channel;	int ret = 0;	if (dma->d_ops->setspeed)		ret = dma->d_ops->setspeed(channel, dma, cycle_ns);	dma->speed = ret;}int get_dma_residue(dmach_t channel){	dma_t *dma = dma_chan + channel;	int ret = 0;	if (dma->d_ops->residue)		ret = dma->d_ops->residue(channel, dma);	return ret;}void __init init_dma(void){	arch_dma_init(dma_chan);}#elseint request_dma(dmach_t channel, const char *device_id){	return -EINVAL;}int get_dma_residue(dmach_t channel){	return 0;}#define GLOBAL_ALIAS(_a,_b) asm (".set " #_a "," #_b "; .globl " #_a)GLOBAL_ALIAS(disable_dma, get_dma_residue);GLOBAL_ALIAS(enable_dma, get_dma_residue);GLOBAL_ALIAS(free_dma, get_dma_residue);GLOBAL_ALIAS(get_dma_list, get_dma_residue);GLOBAL_ALIAS(set_dma_mode, get_dma_residue);GLOBAL_ALIAS(set_dma_page, get_dma_residue);GLOBAL_ALIAS(set_dma_count, get_dma_residue);GLOBAL_ALIAS(set_dma_addr, get_dma_residue);GLOBAL_ALIAS(set_dma_sg, get_dma_residue);GLOBAL_ALIAS(set_dma_speed, get_dma_residue);GLOBAL_ALIAS(init_dma, get_dma_residue);#endifEXPORT_SYMBOL(request_dma);EXPORT_SYMBOL(free_dma);EXPORT_SYMBOL(enable_dma);EXPORT_SYMBOL(disable_dma);EXPORT_SYMBOL(set_dma_addr);EXPORT_SYMBOL(set_dma_count);EXPORT_SYMBOL(set_dma_mode);EXPORT_SYMBOL(set_dma_page);EXPORT_SYMBOL(get_dma_residue);EXPORT_SYMBOL(set_dma_sg);EXPORT_SYMBOL(set_dma_speed);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
人人狠狠综合久久亚洲| 亚洲一区二区三区在线看| 99久久99久久综合| 欧美96一区二区免费视频| 欧美激情一区二区在线| 3d动漫精品啪啪1区2区免费 | 日本精品一级二级| 久久99最新地址| 亚洲一区二区欧美日韩 | 亚洲人精品午夜| 欧美一区二区视频在线观看| proumb性欧美在线观看| 天堂久久一区二区三区| 亚洲免费观看高清| 久久精品一二三| 日韩欧美色综合| 欧美色图12p| 成人av在线一区二区| 精品一区在线看| 日本中文一区二区三区| 亚洲最大成人综合| 午夜精品aaa| 欧美国产日韩一二三区| 精品国产露脸精彩对白| 欧美日韩一区小说| 色噜噜狠狠成人网p站| 国产成+人+日韩+欧美+亚洲 | 91片黄在线观看| 懂色中文一区二区在线播放| 美女爽到高潮91| 日日夜夜精品视频免费| 亚洲精品美国一| 中文字幕制服丝袜成人av| 久久免费国产精品| 亚洲精品在线三区| 日韩一本二本av| 51午夜精品国产| 欧美日韩视频第一区| 在线免费观看日本欧美| 91黄色在线观看| 色欧美乱欧美15图片| 一本色道久久综合亚洲aⅴ蜜桃| 懂色av一区二区三区蜜臀| 国产一区二区三区久久久| 精品一区二区在线免费观看| 精品写真视频在线观看| 久久综合综合久久综合| 久久精品国产99国产| 卡一卡二国产精品| 久久99久久久欧美国产| 国产在线精品一区二区| 国产精品一区二区在线观看网站| 国产精品一区二区三区四区 | 久久99国产精品久久99| 精品一二三四区| 国产高清在线精品| 成人午夜在线播放| 99re8在线精品视频免费播放| 99精品久久只有精品| 在线精品视频一区二区| 欧美日韩一区三区| 日韩欧美在线1卡| 久久精品日产第一区二区三区高清版 | 亚洲影院免费观看| 五月综合激情婷婷六月色窝| 伦理电影国产精品| 国产一区二区三区四区五区入口 | 欧美日韩精品一区二区三区| 欧美日韩一区二区在线观看| 91精品视频网| 久久人人97超碰com| 国产精品久久久久久久岛一牛影视| 国产精品久久久久四虎| 亚洲一区二区视频| 久久精品国产久精国产| 福利电影一区二区| 在线观看成人小视频| 日韩一区二区在线播放| 中文一区一区三区高中清不卡| 亚洲精品国产第一综合99久久| 日韩va亚洲va欧美va久久| 国产精品一区二区久久精品爱涩| 99精品久久久久久| 欧美成人一区二区三区片免费| 中文天堂在线一区| 午夜影院久久久| 国产精品一区二区无线| 欧美日韩精品是欧美日韩精品| 国产视频视频一区| 亚洲国产日日夜夜| 激情另类小说区图片区视频区| 色94色欧美sute亚洲线路一ni| 欧美www视频| 亚洲男人天堂av网| 国产在线麻豆精品观看| 在线视频观看一区| 中文字幕免费观看一区| 视频一区视频二区在线观看| 成人av网址在线| 日韩免费电影网站| 亚洲欧美国产三级| 国产乱人伦偷精品视频免下载| 欧美日韩久久久| 亚洲日本成人在线观看| 国产麻豆日韩欧美久久| 这里是久久伊人| 国产精品久久久久久久久果冻传媒 | 欧美精品一卡两卡| 综合色天天鬼久久鬼色| 国产一区二区在线视频| 欧美日韩国产小视频| 日韩美女啊v在线免费观看| 精品综合久久久久久8888| 欧美日韩三级在线| 亚洲天天做日日做天天谢日日欢| 国产一区二区主播在线| 日韩欧美中文字幕公布| 亚洲国产wwwccc36天堂| 色综合中文字幕国产| 亚洲国产精品成人综合| 国内精品免费在线观看| 日韩一级大片在线观看| 亚洲综合视频在线| 色婷婷精品久久二区二区蜜臀av| 中文字幕精品综合| 国产黄人亚洲片| 国产午夜精品久久| 国产在线观看一区二区| 亚洲精品一区在线观看| 免费观看在线综合色| 在线成人av网站| 午夜欧美在线一二页| 欧美亚日韩国产aⅴ精品中极品| 亚洲欧美日韩在线| 色又黄又爽网站www久久| 成人免费在线视频观看| 99视频在线精品| 国产精品久久久久久户外露出 | 在线欧美一区二区| 亚洲色欲色欲www在线观看| 成人av电影在线| 国产精品国产精品国产专区不片| 懂色一区二区三区免费观看| 欧美韩国日本综合| 成人短视频下载| 国产精品毛片高清在线完整版| 国产成人免费视频网站高清观看视频 | 欧美三级午夜理伦三级中视频| 一个色综合av| 欧美日韩一区二区三区四区 | 色素色在线综合| 一区二区欧美国产| 欧美日韩一区二区三区四区| 日韩中文欧美在线| 精品国产精品网麻豆系列| 国产乱码精品一区二区三区五月婷| 久久久91精品国产一区二区精品| 福利一区二区在线观看| 亚洲免费观看在线观看| 欧美理论电影在线| 久久精品免费观看| 国产清纯美女被跳蛋高潮一区二区久久w| 国产91综合网| 亚洲精品国产一区二区精华液| 欧美男同性恋视频网站| 久久不见久久见免费视频1 | 亚洲国产日韩av| 日韩色视频在线观看| 国产精品538一区二区在线| 国产精品久久久久aaaa| 欧美日韩一区二区在线观看视频| 久久精品久久综合| 国产精品久久久久久久久久久免费看| 欧美主播一区二区三区| 麻豆精品精品国产自在97香蕉 | 久久蜜臀中文字幕| 91亚洲精华国产精华精华液| 天天操天天综合网| 国产网站一区二区三区| 在线观看日韩毛片| 久久精品国产99| 亚洲激情在线播放| 精品国产成人在线影院 | 久久激情综合网| 自拍偷拍欧美精品| 日韩欧美中文一区| 91麻豆免费看片| 激情成人综合网| 亚洲精品免费电影| 久久久三级国产网站| 欧洲精品视频在线观看| 韩国欧美国产1区| 有坂深雪av一区二区精品| 精品乱码亚洲一区二区不卡| 在线观看欧美精品| 成人中文字幕在线| 蜜臀久久久久久久| 亚洲精品乱码久久久久久黑人| 久久久亚洲精华液精华液精华液 | 国产日产精品一区|