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/>引用文件:&lt;base/ddk_api.h&gt; <br/>库: libddk_base.z.so |
22| [ddk_types.h](ddk_types.md) | 提供HID DDK中的枚举变量与结构体定义。<br/>引用文件:&lt;base/ddk_types.h&gt; <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) 表示共享内存的文件描述符无效。