
mmap
pcwung
好好学习,天天向上
展开
-
kmalloc() 与 kfree() 和get_free_page的区别
一 ,kmalloc() 与 kfree() 和get_free_page的区别1,用于申请较小的、连续的物理内存:使用的是内存分配器slab一小片。申请的内存位于物理内存的映射区域。其正真的物理地址只相差一个固定的偏移。 可以用这两个宏来简单转换 __pa(address) {virt_to_phys()} 和 __va(address){phys_to_virt()}转载 2011-12-19 00:39:39 · 2492 阅读 · 0 评论 -
mmap对get_free_pages 等的不同做法
用户空间存取内核空间,具体的实现方法要从两个方面考虑,先是用户进程,需要调用mmap来将自己的一段虚拟空间映射到内核态分配的物理内存;然后内核空间需要重新设置用户进程的这段虚拟内存的页表,使它的物理地址指向对应的物理内存。针对linux内核的几种不同的内存分配方式(kmalloc、vmalloc和ioremap),需要进行不同的处理。关于这个话题,前面已有文章论述了,>也专门用一章的内容来讲述转载 2011-12-19 00:37:51 · 1214 阅读 · 0 评论 -
Linux设备驱动之内存映射--mmap--转
1. 内存映射所谓的内存映射就是把物理内存映射到进程的地址空间之内,这些应用程序就可以直接使用输入输出的地址空间,从而提高读写的效率。Linux提供了mmap()函数,用来映射物理内存。在驱动程序中,应用程序以设备文件为对象,调用mmap()函数,内核进行内存映射的准备工作,生成vm_area_struct结构体,然后调用设备驱动程序中定义的mmap函数。 2. 映射的种类把同转载 2011-12-16 16:28:47 · 1172 阅读 · 1 评论