1e41f4b71Sopenharmony_ci# BASE DDK
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## Overview
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ciProvides APIs for creating, mapping, unmapping, and destroying an **Ashmem** object.
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Driver.DDK.Extension
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci**Since**
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci12
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci## Summary
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci### File
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci| Name| Description| 
20e41f4b71Sopenharmony_ci| -------- | -------- |
21e41f4b71Sopenharmony_ci| [ddk_api.h](ddk_api.md) | Declares the HID DDK functions for accessing an input device from the host.<br>File to include: &lt;base/ddk_api.h&gt; <br>Library: libddk_base.z.so| 
22e41f4b71Sopenharmony_ci| [ddk_types.h](ddk_types.md) | Defines the enum variables and structs used in the HID DDK.<br>File to include: <base/ddk_types.h><br>Library: libddk_base.z.so| 
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci### Structs
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci| Name| Description| 
28e41f4b71Sopenharmony_ci| -------- | -------- |
29e41f4b71Sopenharmony_ci| [DDK_Ashmem](_ddk_ashmem.md) | Shared memory. | 
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci### Enums
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci| Name| Description| 
35e41f4b71Sopenharmony_ci| -------- | -------- |
36e41f4b71Sopenharmony_ci| [DDK_RetCode](#ddk_retcode) | BASE DDK error code definitions. | 
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci### Functions
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci| Name| Description| 
42e41f4b71Sopenharmony_ci| -------- | -------- |
43e41f4b71Sopenharmony_ci| [OH_DDK_CreateAshmem](#oh_ddk_createashmem) (const uint8_t *name, [DDK_Ashmem](_ddk_ashmem.md) \*\*ashmem) | Creates an **Ashmem** object. | 
44e41f4b71Sopenharmony_ci| [OH_DDK_MapAshmem](#oh_ddk_mapashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem, const uint8_t ashmemMapType) | Maps an **Ashmem** object. | 
45e41f4b71Sopenharmony_ci| [OH_DDK_UnmapAshmem](#oh_ddk_unmapashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | Unmaps an **Ashmem** object. | 
46e41f4b71Sopenharmony_ci| [OH_DDK_DestoryAshmem](#oh_ddk_destoryashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | Destroys an **Ashmem** object. | 
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci## Enum Description
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci### DDK_RetCode
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci```
56e41f4b71Sopenharmony_cienum DDK_RetCode
57e41f4b71Sopenharmony_ci```
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci**Description**
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ciBASE DDK error code definitions.
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci| Value| Description|
64e41f4b71Sopenharmony_ci| -------- | -------- |
65e41f4b71Sopenharmony_ci| DDK_SUCCESS | The operation is successful.|
66e41f4b71Sopenharmony_ci| DDK_FAILED | Operation failed.|
67e41f4b71Sopenharmony_ci| DDK_INVALID_PARAMETER | Invalid parameter.|
68e41f4b71Sopenharmony_ci| DDK_INVALID_OPERATION | Invalid operation.|
69e41f4b71Sopenharmony_ci| DDK_NULL_PTR | Null pointer.|
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci## Function Description
73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci### OH_DDK_CreateAshmem()
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci```
79e41f4b71Sopenharmony_ciDDK_RetCode OH_DDK_CreateAshmem(const uint8_t *name, uint32_t size, DDK_Ashmem **ashmem);
80e41f4b71Sopenharmony_ci```
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci**Description**
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ciCreates an **Ashmem** object.
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci**Parameters**
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci| Name| Description|
89e41f4b71Sopenharmony_ci| -------- | -------- |
90e41f4b71Sopenharmony_ci| name | Name of the **Ashmem** object.|
91e41f4b71Sopenharmony_ci| size | Buffer size of the **Ashmem** object.|
92e41f4b71Sopenharmony_ci| ashmem | Pointer to the **Ashmem** object.|
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci**Returns**
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci**0** if the operation is successful; a negative value otherwise.
97e41f4b71Sopenharmony_ci
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ci### OH_DDK_MapAshmem()
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci```
103e41f4b71Sopenharmony_ciDDK_RetCode OH_DDK_MapAshmem(DDK_Ashmem *ashmem, const uint8_t ashmemMapType);
104e41f4b71Sopenharmony_ci```
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci**Description**
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ciMaps an **Ashmem** object.
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci**Parameters**
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci| Name| Description|
113e41f4b71Sopenharmony_ci| -------- | -------- |
114e41f4b71Sopenharmony_ci| ashmem | Pointer to the **Ashmem** object.|
115e41f4b71Sopenharmony_ci| ashmemMapType | Mapping type for the **Ashmem** object.|
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci**Returns**
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci**0** if the operation is successful; a negative value otherwise.
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci### OH_DDK_UnmapAshmem()
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci```
126e41f4b71Sopenharmony_ciDDK_RetCode OH_DDK_UnmapAshmem(DDK_Ashmem *ashmem);
127e41f4b71Sopenharmony_ci```
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci**Description**
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ciUnmaps an **Ashmem** object.
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci**Parameters**
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci| Name| Description|
136e41f4b71Sopenharmony_ci| -------- | -------- |
137e41f4b71Sopenharmony_ci|  ashmem | Pointer to the **Ashmem** object.|
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci**Returns**
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ci**0** if the operation is successful; a negative value otherwise.
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci### OH_DDK_DestoryAshmem()
145e41f4b71Sopenharmony_ci
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ci```
148e41f4b71Sopenharmony_ciDDK_RetCode OH_DDK_DestroyAshmem(DDK_Ashmem *ashmem);
149e41f4b71Sopenharmony_ci```
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci**Description**
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ciDestroys the created shared memory.
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci**Parameters**
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci| Name| Description|
158e41f4b71Sopenharmony_ci| -------- | -------- |
159e41f4b71Sopenharmony_ci|  ashmem | Pointer to the **Ashmem** object.|
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci**Returns**
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ci**0** if the operation is successful; a negative value otherwise.
164