根据 Google 的 GTest 程序 得知正确的操作流程如下
其中的map test ,可以得知正确的 release操作如下
int ionFd = -1;
int bufSize = 1024;
ion_user_handler_t ionHandle;
int ionShareFd = -1;
unsigned char * pbuf = NULL;
/ * 申请 */
ionFd = ion_open();
ion_alloc(ionFd,bufSize,0,ION_HEAP_SYSTEM_MASK,0,&ionHandle);
ion_map(ionFd,ionHandle,bufSize,PROT_READ | PROT_WRITE, MAP_SHARED, 0, &pbuf, &ionShareFd);
/*
* 使用 ionShareFd 传递 buffer 到其他进程
* 使用 pbuf 访问 buffer
*/
/* 关闭 */
close(ionShareFd);
ionShareFd = -1;
ion_free(ionFd, ionHandle);
munmap(pbuf, bufSize);
pbuf = NULL;
close(ionFd);
ionFd = -1;