ION_HEAP_TYPE_SYSTEM_CONTIG:使用kmalloc分配,物理地址连续。 ION_HEAP_TYPE_CARVEOUT:从预留的堆中分配连续物理内存。 ION_HEAP_TYPE_CHUNK:分配的是固定大小的内存,按2^n * 4K(页面大小)对齐。 ION_HEAP_TYPE_DMA:通过DMA API操作。 ION_HEAP_TYPE_CMA_RESERVED:通过 CMA(Contiguous Memory Allocator)分配内...
ION_HEAP_TYPE_CUSTOM, /* }; 1. 2. 3. 4. 5. 6. 7. 8. ION_HEAP_TYPE_SYSTEM:头文件中说是通过vmalloc分配,代码中看是直接通过alloc_pages分配的,对应文件ion_system_heap.c。 ION_HEAP_TYPE_SYSTEM_CONTIG:通过kmalloc进行分配,对应文件ion_system_heap.c ION_HEAP_TYPE_DMA:从代码中看是对接的c...
ION_HEAP_TYPE_SYSTEM:头文件中说是通过vmalloc分配,代码中看是直接通过alloc_pages分配的,对应文件ion_system_heap.c。 ION_HEAP_TYPE_SYSTEM_CONTIG:通过kmalloc进行分配,对应文件ion_system_heap.c ION_HEAP_TYPE_DMA:从代码中看是对接的cma分配器,对应文件ion_cma_heap.c ION_HEAP_TYPE_CARVEOUT:对应文件ion...
enum ion_heap_type { ION_HEAP_TYPE_SYSTEM,//分配的物理页面不保证是连续的.类似于vmalloc的实现 ION_HEAP_TYPE_SYSTEM_CONTIG,//分配连续的物理页面,类似与kmalloc的实现 ION_HEAP_TYPE_CARVEOUT,//从保留内存分配连续物理页面,且把内存添加到memory pool管理 ION_HEAP_TYPE_CHUNK,//从保留内存分配chunk size...
ION_HEAP_TYPE_CHUNK, ION_HEAP_TYPE_DMA,//cma ION_HEAP_TYPE_CUSTOM, //must be last so device specific heaps always are at the end of this enumare at the end of this enum }; ION_HEAP_TYPE_SYSTEM:通过vmalloc分配,代码中看是直接通过alloc_pages分配的,对应文件ion_system_heap.c。
1. ION_HEAP_TYPE_SYSTEM:使用vmalloc分配,这个对应ion_heap_ops中的map_user函数。 2.ION_HEAP_TYPE_SYSTEM_CONTIG:通过kmalloc分配。 3. ION_HEAP_TYPE_CARVEOUT:在启动的时候就保留的物理上连续的内存块。 每个heap中可分配若干个buffer,每个client通过handle管理对应的buffer。每个buffer只能有一个handle对应,每...
主要的heap: ION_HEAP_TYPE_SYSTEM: 使用vmalloc分配,这个对应ion_heap_ops中的map_user函数 ION_HEAP_TYPE_SYSTEM_CONTIG: 通过kmalloc分配 ION_HEAP_TYPE_CARVEOUT: 在启动的时候就保留的物理上连续的内存块 另外还有两种,这里不关注: ION_HEAP_TYPE_CHUNK ...
主要的heap: ION_HEAP_TYPE_SYSTEM: 使用vmalloc分配,这个对应ion_heap_ops中的map_user函数 ION_HEAP_TYPE_SYSTEM_CONTIG: 通过kmalloc分配 ION_HEAP_TYPE_CARVEOUT: 在启动的时候就保留的物理上连续的内存块 另外还有两种,这里不关注: ION_HEAP_TYPE_CHUNK ...
ION_HEAP_TYPE_CUSTOM:用于设备特定内存堆 ION在Linux内核驱动中位于`driver/staging/android/ion`目录下,在Android用户层中位于`system/core/libion`目录下,而在ARM Mali gralloc HAL中也有所应用。在内核态下,ION的使用方法包括内存申请、内存释放和相关参考文档。其中,内存申请和释放是核心操作,...
ION_HEAP_TYPE_SYSTEM_CONTIG: 通过kmalloc分配内存 ION_HEAP_TYPE_CARVEOUT: 在保留内存块中(reserve memory)分配内存 ION_HEAP_TYPE_CUSTOM: 由客户自己定义 image 下图是两个client共享内存的示意图。图中有2个heap(每种heap都有自己的内存分配策略),每个heap中分配了若干个buffer。client的handle管理到对应的buf...