linux memalign()
来源:互联网 发布:濒海战斗舰 知乎 编辑:程序博客网 时间:2024/06/06 09:49
转载于:http://blog.csdn.net/syc0616/article/details/3734941
cell 上的DMA bus error 多半是由于传输内存开始地址不是16位对齐的。使用memalign, valloc,(见下转贴), malloc_aligned, 该函数是cell专有,包含在libmisc.h中。
以下转自http://ms.mblogger.cn/lymons/posts/9902.aspx。在GNU系统中,malloc或realloc返回的内存块地址都是8的倍数(如果是64位系统,则为16的倍数)。如果你需要更大的粒度,请使用memalign或valloc。这些函数在头文件“stdlib.h”中声明。
在GNU库中,可以使用函数free释放memalign和valloc返回的内存块。但无法在BSD系统中使用,而且BSD系统中并未提供释放这样的内存块的途径。
函数:void * memalign (size_t boundary, size_t size)
函数memalign将分配一个由size指定大小,地址是boundary的倍数的内存块。参数boundary必须是2的幂!函数memalign可以分配较大的内存块,并且可以为返回的地址指定粒度。
函数:void * valloc (size_t size)
使用函数valloc与使用函数memalign类似,函数valloc的内部实现里,使用页的大小作为对齐长度,使用memalign来分配内存。它的实现如下所示:
void *
valloc (size_t size)
{
return memalign (getpagesize (), size);
}
-------------------------------
在记录两个好的cell专题页:
1.mit cell专题页:http://cag.csail.mit.edu/ps3/cellminiref.shtml
2.ibm 专题:http://www.ibm.com/developerworks/cn/linux/pa-linuxps3-3/index.html
0 0
- linux memalign()
- linux memalign()
- linux memalign()
- linux memalign、valloc函数
- linux memalign、valloc、realloc
- MemAlign内存对齐
- memalign和valloc
- memalign的作用
- 动态内存分配memalign
- memalign的作用
- memalign函数
- Nginx源码分析--数据对齐posix_memalign和memalign函数
- linux
- linux
- Linux
- Linux
- LINUX!
- Linux
- 10. Hibernate_详解 Hibernate 映射文件(2)
- PHP5.6.15连接Sql Server 2008配置方案
- 源码时代——最新开班计划
- linux上的Tomcat 8 的远端debug调试
- Android RIL架构分析——(1)本地库实现[c/cpp部分]
- linux memalign()
- Python nan ,ref的含义
- 同步图运算框架GraphLite实例之KCore算法
- 基于swift的相册访问问题
- android studio adb 停止工作
- flask-migrate中途修改Models模型
- 回收器和参数配置
- 非常详细GC学习笔记
- 五大常用算法:分治算法