Memory

概述

提供内存管理能力。

@Syscap SystemCapability.CommonLibrary.PurgeableMemory

起始版本:

10

汇总

文件

名称 描述
purgeable_memory.h 声明从native层管理可丢弃内存的方法。
引用文件:<purgeable_memory/purgeable_memory.h>
:libpurgeable_memory_ndk.z.so

类型定义

名称 描述
OH_PurgeableMemory 用于定义OH_PurgeableMemory数据类型名称。
(*OH_PurgeableMemory_ModifyFunc) (void *, size_t, void *) 用于重建可丢弃内存PurgeableMemory数据的方法。

函数

名称 描述
*OH_PurgeableMemory_Create (size_t size, OH_PurgeableMemory_ModifyFunc func, void *funcPara) 创建PurgeableMemory对象。
OH_PurgeableMemory_Destroy (OH_PurgeableMemory *purgObj) 销毁PurgeableMemory对象。
OH_PurgeableMemory_BeginRead (OH_PurgeableMemory *purgObj) 开始读取PurgeableMemory对象。检查PurgeableMemory是否被回收, 若被回收则调用重建方法进行重建
OH_PurgeableMemory_EndRead (OH_PurgeableMemory *purgObj) 结束读取PurgeableMemory对象。表示系统可回收该PurgeableMemory对象内存数据。
OH_PurgeableMemory_BeginWrite (OH_PurgeableMemory *purgObj) 开始修改PurgeableMemory对象。检查PurgeableMemory是否被回收, 若被回收则调用重建方法进行重建
OH_PurgeableMemory_EndWrite (OH_PurgeableMemory *purgObj) 结束修改PurgeableMemory对象。表示系统可回收该PurgeableMemory对象内存数据。
OH_PurgeableMemory_GetContent (OH_PurgeableMemory *purgObj) 获取PurgeableMemory对象内存数据。
OH_PurgeableMemory_ContentSize (OH_PurgeableMemory *purgObj) 获取PurgeableMemory对象内存数据大小。
OH_PurgeableMemory_AppendModify (OH_PurgeableMemory *purgObj, OH_PurgeableMemory_ModifyFunc func, void *funcPara) 添加PurgeableMemory对象的修改方法。

类型定义说明

OH_PurgeableMemory

typedef struct PurgMem OH_PurgeableMemory

描述:

用于定义OH_PurgeableMemory数据类型名称。

起始版本:

10

OH_PurgeableMemory_ModifyFunc

typedef bool(* OH_PurgeableMemory_ModifyFunc) (void *, size_t, void *)

描述:

用于重建可丢弃内存PurgeableMemory数据的方法。

参数:

名称 描述
void * 指向PurgeableMemory内容的内存地址。
size_t 重建内容的大小。
void * 重建参数。

返回:

操作成功则返回成功;如果操作失败,则返回失败。

起始版本:

10

函数说明

OH_PurgeableMemory_AppendModify()

bool OH_PurgeableMemory_AppendModify (OH_PurgeableMemory * purgObj, OH_PurgeableMemory_ModifyFunc func, void * funcPara )

描述:

添加PurgeableMemory对象的修改方法。

参数:

名称 描述
purgObj 待添加修改方法的PurgeableMemory对象。
func 关于数据修改方法的函数指针,用于PurgeableMemory内存数据重建后进一步修改。
funcPara 修改方法的参数。

返回:

如果添加成功则返回成功,否则返回失败。

起始版本:

10

OH_PurgeableMemory_BeginRead()

bool OH_PurgeableMemory_BeginRead (OH_PurgeableMemory * purgObj)

描述:

开始读取PurgeableMemory对象。检查PurgeableMemory是否被回收, 若被回收则调用重建方法进行重建

参数:

名称 描述
purgObj 待读取的PurgeableMemory对象。

返回:

如果PurgeableMemory内存数据准备好则返回成功; 如果PurgeableMemory内存数据已被回收且重建失败则返回失败。

起始版本:

10

OH_PurgeableMemory_BeginWrite()

bool OH_PurgeableMemory_BeginWrite (OH_PurgeableMemory * purgObj)

描述:

开始修改PurgeableMemory对象。检查PurgeableMemory是否被回收, 若被回收则调用重建方法进行重建

参数:

名称 描述
purgObj 待修改的PurgeableMemory对象。

返回:

如果PurgeableMemory内存数据准备好则返回成功; 如果PurgeableMemory内存数据已被回收且重建失败则返回失败。

起始版本:

10

OH_PurgeableMemory_ContentSize()

size_t OH_PurgeableMemory_ContentSize (OH_PurgeableMemory * purgObj)

描述:

获取PurgeableMemory对象内存数据大小。

参数:

名称 描述
purgObj 待读取内存数据的PurgeableMemory对象。

返回:

返回PurgeableMemory对象内存数据大小。

起始版本:

10

OH_PurgeableMemory_Create()

OH_PurgeableMemory* OH_PurgeableMemory_Create (size_t size, OH_PurgeableMemory_ModifyFunc func, void * funcPara )

描述:

创建PurgeableMemory对象。

参数:

名称 描述
size PurgeableMemory对象大小。
func 关于重建方法的函数指针,用于恢复被回收的PurgeableMemory内存数据。
funcPara 用于重建的参数。

返回:

返回PurgeableMemory对象。

起始版本:

10

OH_PurgeableMemory_Destroy()

bool OH_PurgeableMemory_Destroy (OH_PurgeableMemory * purgObj)

描述:

销毁PurgeableMemory对象。

参数:

名称 描述
purgObj 需要销毁的PurgeableMemory对象。

返回:

操作成功则返回成功;如果操作失败,则返回失败。如果purgObj为空则返回失败; 如果返回成功,purgObj会置空避免Use-After-Free。

起始版本:

10

OH_PurgeableMemory_EndRead()

void OH_PurgeableMemory_EndRead (OH_PurgeableMemory * purgObj)

描述:

结束读取PurgeableMemory对象。表示系统可回收该PurgeableMemory对象内存数据。

参数:

名称 描述
purgObj 结束读取的PurgeableMemory对象。

起始版本:

10

OH_PurgeableMemory_EndWrite()

void OH_PurgeableMemory_EndWrite (OH_PurgeableMemory * purgObj)

描述:

结束修改PurgeableMemory对象。表示系统可回收该PurgeableMemory对象内存数据。

参数:

名称 描述
purgObj 结束修改的PurgeableMemory对象。

起始版本:

10

OH_PurgeableMemory_GetContent()

void* OH_PurgeableMemory_GetContent (OH_PurgeableMemory * purgObj)

描述:

获取PurgeableMemory对象内存数据。

参数:

名称 描述
purgObj 待读取内存数据的PurgeableMemory对象。

返回:

返回PurgeableMemory对象内存地址。

起始版本:

10