⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dma-a5k.c

📁 arm平台上的uclinux系统全部源代码
💻 C
字号:
/* * arch/arm/kernel/dma-a5k.c * * Copyright (C) 1998 Russell King * * DMA functions specific to A5000 architecture */#include <linux/sched.h>#include <asm/dma.h>#include <asm/io.h>#include <asm/hardware.h>#include <asm/pgtable.h>#include "dma.h"int arch_request_dma(dmach_t channel, dma_t *dma, const char *devname){	if (channel == DMA_VIRTUAL_FLOPPY)		return 0;	else		return -EINVAL;}void arch_free_dma(dmach_t channel, dma_t *dma){	if (channel != DMA_VIRTUAL_FLOPPY)		printk ("arch_free_dma: invalid channel %d\n", channel);}int arch_get_dma_residue(dmach_t channel, dma_t *dma){	if (channel != DMA_VIRTUAL_FLOPPY) {		printk ("arch_dma_count: invalid channel %d\n", channel);		return 0;	} else {		extern int floppy_fiqresidual(void);		return floppy_fiqresidual();	}}void arch_enable_dma(dmach_t channel, dma_t *dma){	if (channel != DMA_VIRTUAL_FLOPPY)		printk ("arch_enable_dma: invalid channel %d\n", channel);	else {		void *fiqhandler_start;		unsigned int fiqhandler_length;		extern void floppy_fiqsetup (unsigned long len, unsigned long addr,					     unsigned long port);		if (dma->dma_mode == DMA_MODE_READ) {			extern unsigned char floppy_fiqin_start, floppy_fiqin_end;			fiqhandler_start = &floppy_fiqin_start;			fiqhandler_length = &floppy_fiqin_end - &floppy_fiqin_start;		} else {			extern unsigned char floppy_fiqout_start, floppy_fiqout_end;			fiqhandler_start = &floppy_fiqout_start;			fiqhandler_length = &floppy_fiqout_end - &floppy_fiqout_start;		}		memcpy ((void *)0x1c, fiqhandler_start, fiqhandler_length);		flush_page_to_ram(0);		floppy_fiqsetup (dma->buf.length, __bus_to_virt(dma->buf.address), (int)PCIO_FLOPPYDMABASE);		enable_irq (dma->dma_irq);	}}void arch_disable_dma(dmach_t channel, dma_t *dma){	if (channel != DMA_VIRTUAL_FLOPPY)		printk ("arch_disable_dma: invalid channel %d\n", channel);	else		disable_irq (dma->dma_irq);}void arch_dma_init(dma_t *dma){	dma[DMA_VIRTUAL_FLOPPY].dma_irq = 64;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -