# BASE DDK ## 概述 提供基础API,包括创建共享内存、共享内存映射、取消共享内存映射、销毁共享内存。 **系统能力:** SystemCapability.Driver.DDK.Extension **起始版本:** 12 ## 汇总 ### 文件 | 名称 | 描述 | | -------- | -------- | | [ddk_api.h](ddk_api.md) | 声明主机侧访问输入设备的HID DDK接口。
引用文件:<base/ddk_api.h>
库: libddk_base.z.so | | [ddk_types.h](ddk_types.md) | 提供HID DDK中的枚举变量与结构体定义。
引用文件:<base/ddk_types.h>
库: libddk_base.z.so | ### 结构体 | 名称 | 描述 | | -------- | -------- | | [DDK_Ashmem](_ddk_ashmem.md) | 共享内存。 | ### 枚举 | 名称 | 描述 | | -------- | -------- | | [DDK_RetCode](#ddk_retcode) | BASE DDK 错误码定义。 | ### 函数 | 名称 | 描述 | | -------- | -------- | | [OH_DDK_CreateAshmem](#oh_ddk_createashmem) (const uint8_t *name, [DDK_Ashmem](_ddk_ashmem.md) \*\*ashmem) | 创建共享内存。 | | [OH_DDK_MapAshmem](#oh_ddk_mapashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem, const uint8_t ashmemMapType) | 共享内存映射。 | | [OH_DDK_UnmapAshmem](#oh_ddk_unmapashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | 取消共享内存映射。 | | [OH_DDK_DestoryAshmem](#oh_ddk_destoryashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | 销毁共享内存。 | ## 枚举类型说明 ### DDK_RetCode ``` enum DDK_RetCode ``` **描述:** BASE DDK 错误码定义。 | 枚举值 | 描述 | | -------- | -------- | | DDK_SUCCESS | 操作成功。 | | DDK_FAILED | 操作失败。 | | DDK_INVALID_PARAMETER | 非法参数。 | | DDK_INVALID_OPERATION | 非法操作。 | | DDK_NULL_PTR | 空指针异常。 | ## 函数说明 ### OH_DDK_CreateAshmem() ``` DDK_RetCode OH_DDK_CreateAshmem(const uint8_t *name, uint32_t size, DDK_Ashmem **ashmem); ``` **描述:** 创建共享内存。 **参数:** | 名称 | 描述 | | -------- | -------- | | name | 指向要创建的共享内存的指针。 | | size | 共享内存对应的缓冲区大小。 | | ashmem | 指向创建的共享内存的指针。 | **返回:** - [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 - [DDK_INVALID_PARAMETER](#ddk_retcode) 表示入参name为空指针,size的大小为0或者入参ashmem为空指针。 - [DDK_FAILURE](#ddk_retcode) 表示创建共享内存失败或者创建结构体DDK_Ashmem失败。 ### OH_DDK_MapAshmem() ``` DDK_RetCode OH_DDK_MapAshmem(DDK_Ashmem *ashmem, const uint8_t ashmemMapType); ``` **描述:** 映射共享内存。 **参数:** | 名称 | 描述 | | -------- | -------- | | ashmem | 要映射的共享内存指针。 | | ashmemMapType | 共享内存的保护权限值。 | **返回:** - [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 - [DDK_NULL_PTR](#ddk_retcode) 表示入参ashmem为空指针。 - [DDK_FAILURE](#ddk_retcode) 表示共享内存的文件描述符无效。 - [DDK_INVALID_OPERATION](#ddk_retcode) 表示调用接口MapAshmem失败。 ### OH_DDK_UnmapAshmem() ``` DDK_RetCode OH_DDK_UnmapAshmem(DDK_Ashmem *ashmem); ``` **描述:** 取消共享内存的映射。 **参数:** | 名称 | 描述 | | -------- | -------- | | ashmem | 要取消映射的共享内存指针。 | **返回:** - [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 - [DDK_NULL_PTR](#ddk_retcode) 表示入参ashmem为空指针。 - [DDK_FAILURE](#ddk_retcode) 表示共享内存的文件描述符无效。 ### OH_DDK_DestoryAshmem() ``` DDK_RetCode OH_DDK_DestroyAshmem(DDK_Ashmem *ashmem); ``` **描述:** 销毁创建的共享内存。 **参数:** | 名称 | 描述 | | -------- | -------- | | ashmem | 要销毁的共享内存指针。 | **返回:** - [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 - [DDK_NULL_PTR](#ddk_retcode) 表示入参ashmem为空指针。 - [DDK_FAILURE](#ddk_retcode) 表示共享内存的文件描述符无效。