1# BASE DDK 2 3 4## 概述 5 6提供基础API,包括创建共享内存、共享内存映射、取消共享内存映射、销毁共享内存。 7 8**系统能力:** SystemCapability.Driver.DDK.Extension 9 10**起始版本:** 11 1212 13 14## 汇总 15 16 17### 文件 18 19| 名称 | 描述 | 20| -------- | -------- | 21| [ddk_api.h](ddk_api.md) | 声明主机侧访问输入设备的HID DDK接口。 <br/>引用文件:<base/ddk_api.h> <br/>库: libddk_base.z.so | 22| [ddk_types.h](ddk_types.md) | 提供HID DDK中的枚举变量与结构体定义。<br/>引用文件:<base/ddk_types.h> <br/>库: libddk_base.z.so | 23 24 25### 结构体 26 27| 名称 | 描述 | 28| -------- | -------- | 29| [DDK_Ashmem](_ddk_ashmem.md) | 共享内存。 | 30 31 32### 枚举 33 34| 名称 | 描述 | 35| -------- | -------- | 36| [DDK_RetCode](#ddk_retcode) | BASE DDK 错误码定义。 | 37 38 39### 函数 40 41| 名称 | 描述 | 42| -------- | -------- | 43| [OH_DDK_CreateAshmem](#oh_ddk_createashmem) (const uint8_t *name, [DDK_Ashmem](_ddk_ashmem.md) \*\*ashmem) | 创建共享内存。 | 44| [OH_DDK_MapAshmem](#oh_ddk_mapashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem, const uint8_t ashmemMapType) | 共享内存映射。 | 45| [OH_DDK_UnmapAshmem](#oh_ddk_unmapashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | 取消共享内存映射。 | 46| [OH_DDK_DestoryAshmem](#oh_ddk_destoryashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | 销毁共享内存。 | 47 48 49## 枚举类型说明 50 51 52### DDK_RetCode 53 54 55``` 56enum DDK_RetCode 57``` 58 59**描述:** 60 61BASE DDK 错误码定义。 62 63| 枚举值 | 描述 | 64| -------- | -------- | 65| DDK_SUCCESS | 操作成功。 | 66| DDK_FAILED | 操作失败。 | 67| DDK_INVALID_PARAMETER | 非法参数。 | 68| DDK_INVALID_OPERATION | 非法操作。 | 69| DDK_NULL_PTR | 空指针异常。 | 70 71 72## 函数说明 73 74 75### OH_DDK_CreateAshmem() 76 77 78``` 79DDK_RetCode OH_DDK_CreateAshmem(const uint8_t *name, uint32_t size, DDK_Ashmem **ashmem); 80``` 81 82**描述:** 83 84创建共享内存。 85 86**参数:** 87 88| 名称 | 描述 | 89| -------- | -------- | 90| name | 指向要创建的共享内存的指针。 | 91| size | 共享内存对应的缓冲区大小。 | 92| ashmem | 指向创建的共享内存的指针。 | 93 94**返回:** 95 96- [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 97- [DDK_INVALID_PARAMETER](#ddk_retcode) 表示入参name为空指针,size的大小为0或者入参ashmem为空指针。 98- [DDK_FAILURE](#ddk_retcode) 表示创建共享内存失败或者创建结构体DDK_Ashmem失败。 99 100 101### OH_DDK_MapAshmem() 102 103 104``` 105DDK_RetCode OH_DDK_MapAshmem(DDK_Ashmem *ashmem, const uint8_t ashmemMapType); 106``` 107 108**描述:** 109 110映射共享内存。 111 112**参数:** 113 114| 名称 | 描述 | 115| -------- | -------- | 116| ashmem | 要映射的共享内存指针。 | 117| ashmemMapType | 共享内存的保护权限值。 | 118 119**返回:** 120 121- [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 122- [DDK_NULL_PTR](#ddk_retcode) 表示入参ashmem为空指针。 123- [DDK_FAILURE](#ddk_retcode) 表示共享内存的文件描述符无效。 124- [DDK_INVALID_OPERATION](#ddk_retcode) 表示调用接口MapAshmem失败。 125 126 127### OH_DDK_UnmapAshmem() 128 129 130``` 131DDK_RetCode OH_DDK_UnmapAshmem(DDK_Ashmem *ashmem); 132``` 133 134**描述:** 135 136取消共享内存的映射。 137 138**参数:** 139 140| 名称 | 描述 | 141| -------- | -------- | 142| ashmem | 要取消映射的共享内存指针。 | 143 144**返回:** 145 146- [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 147- [DDK_NULL_PTR](#ddk_retcode) 表示入参ashmem为空指针。 148- [DDK_FAILURE](#ddk_retcode) 表示共享内存的文件描述符无效。 149 150### OH_DDK_DestoryAshmem() 151 152 153``` 154DDK_RetCode OH_DDK_DestroyAshmem(DDK_Ashmem *ashmem); 155``` 156 157**描述:** 158 159销毁创建的共享内存。 160 161**参数:** 162 163| 名称 | 描述 | 164| -------- | -------- | 165| ashmem | 要销毁的共享内存指针。 | 166 167**返回:** 168 169- [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 170- [DDK_NULL_PTR](#ddk_retcode) 表示入参ashmem为空指针。 171- [DDK_FAILURE](#ddk_retcode) 表示共享内存的文件描述符无效。