1# ddk_api.h 2<!--Kit: Driver Development Kit--> 3<!--Subsystem: Driver--> 4<!--Owner: @lixinsheng2--> 5<!--Designer: @w00373942--> 6<!--Tester: @dong-dongzhen--> 7<!--Adviser: @w_Machine_cc--> 8 9## 概述 10 11声明主机侧访问的Base DDK接口。 12 13**引用文件:** <ddk/ddk_api.h> 14 15**库:** libddk_base.z.so 16 17**系统能力:** SystemCapability.Driver.DDK.Extension 18 19**起始版本:** 12 20 21**相关模块:** [BaseDdk](capi-baseddk.md) 22 23## 汇总 24 25### 函数 26 27| 名称 | 描述 | 28| -- | -- | 29| [DDK_RetCode OH_DDK_CreateAshmem(const uint8_t *name, uint32_t size, DDK_Ashmem **ashmem)](#oh_ddk_createashmem) | 创建共享内存。为了防止资源泄漏,通过调用<b>OH_DDK_DestroyAshmem</b>接口来销毁不再需要的共享内存。 | 30| [DDK_RetCode OH_DDK_MapAshmem(DDK_Ashmem *ashmem, const uint8_t ashmemMapType)](#oh_ddk_mapashmem) | 映射创建的共享内存到用户空间。通过调用<b>OH_DDK_UnmapAshmem</b>接口取消映射不需要的共享内存。 | 31| [DDK_RetCode OH_DDK_UnmapAshmem(DDK_Ashmem *ashmem)](#oh_ddk_unmapashmem) | 取消映射共享内存。 | 32| [DDK_RetCode OH_DDK_DestroyAshmem(DDK_Ashmem *ashmem)](#oh_ddk_destroyashmem) | 销毁共享内存。 | 33 34## 函数说明 35 36### OH_DDK_CreateAshmem() 37 38``` 39DDK_RetCode OH_DDK_CreateAshmem(const uint8_t *name, uint32_t size, DDK_Ashmem **ashmem) 40``` 41 42**描述** 43 44创建共享内存。为了防止资源泄漏,通过调用<b>OH_DDK_DestroyAshmem</b>接口来销毁不再需要的共享内存。 45 46**起始版本:** 12 47 48 49**参数:** 50 51| 参数项 | 描述 | 52|---------------------------------------------------| -- | 53| const uint8_t *name | 指向要创建的共享内存的指针。 | 54| uint32_t size | 共享内存对应的缓冲区大小。 | 55| [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) **ashmem | 指向创建的共享内存的指针。 | 56 57**返回:** 58 59| 类型 | 说明 | 60| -- | -- | 61| [DDK_RetCode](capi-ddk-types-h.md#ddk_retcode) | [DDK_SUCCESS](capi-ddk-types-h.md#ddk_retcode) 调用接口成功。<br> [DDK_INVALID_PARAMETER](capi-ddk-types-h.md#ddk_retcode) 入参name为空指针,size的大小为0或者入参ashmem是空指针。<br> [DDK_FAILURE](capi-ddk-types-h.md#ddk_retcode) 创建共享内存失败或者创建结构体DDK_Ashmem失败。 | 62 63### OH_DDK_MapAshmem() 64 65``` 66DDK_RetCode OH_DDK_MapAshmem(DDK_Ashmem *ashmem, const uint8_t ashmemMapType) 67``` 68 69**描述** 70 71映射创建的共享内存到用户空间。通过调用<b>OH_DDK_UnmapAshmem</b>接口取消映射不需要的共享内存。 72 73**起始版本:** 12 74 75 76**参数:** 77 78| 参数项 | 描述 | 79|--------------------------------------------------| -- | 80| [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) *ashmem | 要映射的共享内存指针。 | 81| const uint8_t ashmemMapType | 共享内存的保护权限值。 | 82 83**返回:** 84 85| 类型 | 说明 | 86| -- | -- | 87| [DDK_RetCode](capi-ddk-types-h.md#ddk_retcode) | [DDK_SUCCESS](capi-ddk-types-h.md#ddk_retcode) 调用接口成功。<br> [DDK_NULL_PTR](capi-ddk-types-h.md#ddk_retcode) 入参ashmem为空指针。<br> [DDK_FAILURE](capi-ddk-types-h.md#ddk_retcode) 共享内存的文件描述符无效。<br> [DDK_INVALID_OPERATION](capi-ddk-types-h.md#ddk_retcode) 调用接口MapAshmem失败. | 88 89### OH_DDK_UnmapAshmem() 90 91``` 92DDK_RetCode OH_DDK_UnmapAshmem(DDK_Ashmem *ashmem) 93``` 94 95**描述** 96 97取消映射共享内存。 98 99**起始版本:** 12 100 101 102**参数:** 103 104| 参数项 | 描述 | 105|--------------------------------------------------| -- | 106| [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) *ashmem | 要取消映射的共享内存指针。 | 107 108**返回:** 109 110| 类型 | 说明 | 111| -- | -- | 112| [DDK_RetCode](capi-ddk-types-h.md#ddk_retcode) | [DDK_SUCCESS](capi-ddk-types-h.md#ddk_retcode) 调用接口成功。<br> [DDK_NULL_PTR](capi-ddk-types-h.md#ddk_retcode) 入参ashmem为空指针。<br> [DDK_FAILURE](capi-ddk-types-h.md#ddk_retcode) 共享内存的文件描述符无效。 | 113 114### OH_DDK_DestroyAshmem() 115 116``` 117DDK_RetCode OH_DDK_DestroyAshmem(DDK_Ashmem *ashmem) 118``` 119 120**描述** 121 122销毁共享内存。 123 124**起始版本:** 12 125 126 127**参数:** 128 129| 参数项 | 描述 | 130|--------------------------------------------------| -- | 131| [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) *ashmem | 要销毁的共享内存指针。 | 132 133**返回:** 134 135| 类型 | 说明 | 136| -- | -- | 137| [DDK_RetCode](capi-ddk-types-h.md#ddk_retcode) | [DDK_SUCCESS](capi-ddk-types-h.md#ddk_retcode) 调用接口成功。<br> [DDK_NULL_PTR](capi-ddk-types-h.md#ddk_retcode) 入参ashmem为空指针。<br> [DDK_FAILURE](capi-ddk-types-h.md#ddk_retcode) 共享内存的文件描述符无效。 | 138 139 140