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

📄 virtconvert.h

📁 嵌入式系统设计与实例开发实验教材二源码 多线程应用程序设计 串行端口程序设计 AD接口实验 CAN总线通信实验 GPS通信实验 Linux内核移植与编译实验 IC卡读写实验 SD驱动使
💻 H
字号:
#ifndef __VIRT_CONVERT__#define __VIRT_CONVERT__/* * Macros used for converting between virtual and physical mappings. */#ifdef __KERNEL__#include <linux/config.h>#include <asm/setup.h>#include <asm/page.h>#ifdef CONFIG_AMIGA#include <asm/amigahw.h>#endif/* * Change virtual addresses to physical addresses and vv. */#ifndef CONFIG_SUN3extern unsigned long mm_vtop(unsigned long addr) __attribute__ ((const));extern unsigned long mm_vtop_fallback (unsigned long) __attribute__ ((const));extern unsigned long mm_ptov(unsigned long addr) __attribute__ ((const));#elseextern inline unsigned long mm_vtop(unsigned long vaddr){	return __pa(vaddr);}extern inline unsigned long mm_ptov(unsigned long paddr){	return (unsigned long)__va(paddr);}#endif #ifdef CONFIG_SINGLE_MEMORY_CHUNKextern inline unsigned long virt_to_phys(volatile void *vaddr){	unsigned long voff = (unsigned long)vaddr - PAGE_OFFSET;	if (voff < m68k_memory[0].size)		return voff + m68k_memory[0].addr;	return mm_vtop_fallback((unsigned long)vaddr);}extern inline void * phys_to_virt(unsigned long paddr){	unsigned long poff = paddr - m68k_memory[0].addr;	if (poff < m68k_memory[0].size)		return (void *)(poff + PAGE_OFFSET);#ifdef CONFIG_AMIGA	/*	 * if on an amiga and address is in first 16M, move it 	 * to the ZTWO_VADDR range	 */	if (MACH_IS_AMIGA && paddr < 16*1024*1024)		return (void *)ZTWO_VADDR(paddr);#endif	return (void *)paddr;}#elseextern inline unsigned long virt_to_phys(volatile void * address){	return mm_vtop((unsigned long)address);}extern inline void * phys_to_virt(unsigned long address){	return (void *) mm_ptov(address);}#endif/* * IO bus memory addresses are 1:1 with the physical address, * except on the PCI bus of the Hades. */#ifdef CONFIG_HADES#define virt_to_bus(a) (virt_to_phys(a) + (MACH_IS_HADES ? 0x80000000 : 0))#define bus_to_virt(a) (phys_to_virt((a) - (MACH_IS_HADES ? 0x80000000 : 0)))#else#define virt_to_bus virt_to_phys#define bus_to_virt phys_to_virt#endif#endif#endif

⌨️ 快捷键说明

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