adriod HAL层 内核空间与用户空间内存共享
来源:互联网 发布:北京 java培训完 工资 编辑:程序博客网 时间:2024/05/20 15:59
1、内核部分
unsigned long gMmapAddr;
unsigned long lMmapAddr;
static int xxx_mmap(struct file *filp, struct vm_area_struct *vma){ vma->vm_pgoff = ((unsigned long)virt_to_phys(gMmapAddr)) >> PAGE_SHIFT; printk("vma->vm_pgoff = %lx\n",vma->vm_pgoff); if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, sizeof(gMmapAddr), vma->vm_page_prot)) { printk("remap_pfn_range error\n"); return -EAGAIN; }
return 0;}
static int __init shareMmap_init(void){
gMmapAddr = PAGE_ALIGN((UINT32)lMmapAddr);//页对齐,重要return 0;}EXPORT_SYMBOL_GPL(gMmapAddr);这后可以引用 gMmapAddr======================================================================================================================================================================================================================================================================2、应用层unsigned long *comAddr;//打开和共享内存驱动 fd = open("/dev/map",O_RDWR); if (fd < 0) { return FALSE; } comAddr = (unsigned long*)mmap(NULL, sizeof(unsigned long), PROT_READ | PROT_WRITE | PROT_EXEC, MAP_SHARED, fd, 0);
- adriod HAL层 内核空间与用户空间内存共享
- 内核与用户空间共享内存
- 在FreeBSD 用户空间与内核空间使用内存共享
- 内核与用户空间的内存共享(测试通过)
- 内核与用户空间共享内存之mmap
- 内核与用户空间共享内存之mmap
- 内核空间到用户空间的共享内存映射
- Linux内核空间到用户空间的共享内存映射
- 利用mmap实现用户空间与内核空间的共享内存通信
- 利用mmap实现用户空间与内核空间的共享内存通信
- 内核空间与用户空间
- 内核空间与用户空间
- 内核空间与用户空间
- 内核空间与用户空间
- 内核空间与用户空间
- 内核空间与用户空间
- 内核空间与用户空间的内存映射
- Linux用户空间与内核空间内存映射
- 利用C#编写客户端程序总结
- 转载一个不错 opengl es 网站
- MP4Box使用命令大全
- 关于WINFORM中输入法的设置
- 常见音视频格式大全
- adriod HAL层 内核空间与用户空间内存共享
- oracle11g更改字符集AL32UTF8为ZHS16GBK
- 子串出现的个数
- 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora
- c# Winform 保存修改后的配置
- oracle基本
- 一个关于静态局部变量以及全局变量的例子
- 对'Consistent Gets',''Physical Reads'和'DB Block Gets'的理解和解释
- NDK的文档和例子