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

📄 dvma.c

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 C
字号:
/* dvma support routines */#include <linux/kernel.h>#include <linux/mm.h>#include <linux/bootmem.h>#include <asm/page.h>#include <asm/pgtable.h>#include <asm/sun3mmu.h>#include <asm/dvma.h>unsigned long dvma_next_free = DVMA_START;unsigned long dvma_region_end = DVMA_START + (DVMA_RESERVED_PMEGS * SUN3_PMEG_SIZE);/* reserve such dma memory as we see fit */void sun3_dvma_init(void){	unsigned long dvma_phys_start;		dvma_phys_start = (sun3_get_pte(DVMA_START) & 			   SUN3_PAGE_PGNUM_MASK);	dvma_phys_start <<= PAGE_SHIFT;		reserve_bootmem(dvma_phys_start,			(DVMA_RESERVED_PMEGS * SUN3_PMEG_SIZE));}/* get needed number of free dma pages, or panic if not enough */void *sun3_dvma_malloc(int len){	unsigned long vaddr;       	if((dvma_next_free + len) > dvma_region_end) 		panic("sun3_dvma_malloc: out of dvma pages");		vaddr = dvma_next_free;	dvma_next_free = DVMA_ALIGN(dvma_next_free + len);	return (void *)vaddr;}     

⌨️ 快捷键说明

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