1/*
2 * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#include <stdio.h>
17
18#ifdef __cplusplus
19#if __cplusplus
20extern "C" {
21#endif
22#endif /* End of #ifdef __cplusplus */
23
24static void BASE_exit(void)
25{
26    extern void base_mod_exit(void);
27    base_mod_exit();
28}
29
30static void MMZ_exit(void)
31{
32    extern void media_mem_exit(void);
33    media_mem_exit();
34}
35static void SYS_exit(void)
36{
37    extern void sys_mod_exit(void);
38    sys_mod_exit();
39}
40
41static void ISP_exit(void)
42{
43    extern void isp_mod_exit(void);
44    isp_mod_exit();
45}
46
47static void VI_exit(void)
48{
49    extern void vi_mod_exit(void);
50    vi_mod_exit();
51}
52
53static void RGN_exit(void)
54{
55    extern void rgn_mod_exit(void);
56    rgn_mod_exit();
57}
58
59static void GDC_exit(void)
60{
61    extern void gdc_mod_exit(void);
62    gdc_mod_exit();
63}
64
65static void DIS_exit(void)
66{
67    extern void dis_mod_exit(void);
68    dis_mod_exit();
69}
70
71static void VGS_exit(void)
72{
73    extern void vgs_mod_exit(void);
74    vgs_mod_exit();
75}
76
77static void VPSS_exit(void)
78{
79    extern void vpss_mod_exit(void);
80    vpss_mod_exit();
81}
82
83static void VO_exit(void)
84{
85    extern void vou_module_exit(void);
86    vou_module_exit();
87}
88
89static void TDE_exit(void)
90{
91    extern void tde_mod_exit(void);
92    tde_mod_exit();
93}
94
95static void HIFB_exit(void)
96{
97    extern void hifb_cleanup(void);
98
99    hifb_cleanup();
100}
101
102static void HDMI_exit(void)
103{
104    extern hi_void HDMI_DRV_ModExit(void);
105    HDMI_DRV_ModExit();
106}
107
108static void MIPIRX_exit(void)
109{
110    extern void mipi_rx_mod_exit(void);
111    mipi_rx_mod_exit();
112}
113
114static void MIPITX_exit(void)
115{
116    extern void mipi_tx_module_exit(void);
117    mipi_tx_module_exit();
118}
119
120static void RC_exit(void)
121{
122    extern void rc_mod_exit(void);
123    rc_mod_exit();
124}
125
126static void VENC_exit(void)
127{
128    extern void venc_mod_exit(void);
129    venc_mod_exit();
130}
131
132static void CHNL_exit(void)
133{
134    extern void chnl_mod_exit(void);
135    chnl_mod_exit();
136}
137
138static void VEDU_exit(void)
139{
140    extern void vedu_mod_exit(void);
141    vedu_mod_exit();
142}
143
144static void H264e_exit(void)
145{
146    extern void h264e_mod_exit(void);
147    h264e_mod_exit();
148}
149
150static void H265e_exit(void)
151{
152    extern  void h265e_mod_exit(void);
153    h265e_mod_exit();
154}
155
156static void JPEGE_exit(void)
157{
158    extern void jpege_mod_exit(void);
159    jpege_mod_exit();
160}
161
162static void PWM_exit(void)
163{
164    extern void pwm_exit(void);
165    pwm_exit();
166}
167
168static void PIRIS_exit(void)
169{
170    extern void piris_exit(void);
171
172    piris_exit();
173}
174
175static void hi_sensor_spi_exit(void)
176{
177    extern void sensor_spi_dev_exit(void);
178    sensor_spi_dev_exit();
179}
180
181static void hi_sensor_i2c_exit(void)
182{
183    extern void hi_dev_exit(void);
184    hi_dev_exit();
185}
186
187static void JPEGD_exit(void)
188{
189    extern void jpegd_mod_exit(void);
190    jpegd_mod_exit();
191}
192
193static void VFMW_exit(void)
194{
195    extern void vfmw_mod_exit(void);
196    vfmw_mod_exit();
197}
198
199static void VDEC_exit(void)
200{
201    extern void vdec_mod_exit(void);
202    vdec_mod_exit();
203}
204
205static void IVE_exit(void)
206{
207    extern void ive_mod_exit(void);
208    ive_mod_exit();
209}
210
211static void NNIE_exit(void)
212{
213    extern void nnie_mod_exit(void);
214    nnie_mod_exit();
215}
216
217static void Cipher_exit(void)
218{
219    extern void cipher_drv_mod_exit(void);
220    cipher_drv_mod_exit();
221}
222
223static void HI_USER_exit(void)
224{
225    extern void hi_user_exit(void);
226    hi_user_exit();
227}
228
229static void AiaoMod_exit(void)
230{
231    extern void aiao_mod_exit(void);
232    aiao_mod_exit();
233}
234
235static void AiMod_exit(void)
236{
237    extern void ai_mod_exit(void);
238    ai_mod_exit();
239}
240
241static void AoMod_exit(void)
242{
243    extern void ao_mod_exit(void);
244    ao_mod_exit();
245}
246
247static void AencMod_exit(void)
248{
249    extern void aenc_mod_exit(void);
250    aenc_mod_exit();
251}
252
253static void AdecMod_exit(void)
254{
255    extern void adec_mod_exit(void);
256    adec_mod_exit();
257}
258
259static void AcodecMod_exit(void)
260{
261    extern void acodec_mod_exit(void);
262    acodec_mod_exit();
263}
264
265static void remove_audio(void)
266{
267    AcodecMod_exit();
268    AdecMod_exit();
269    AencMod_exit();
270    AoMod_exit();
271    AiMod_exit();
272    AiaoMod_exit();
273}
274
275extern void osal_proc_exit(void);
276
277void SDK_exit(void)
278{
279    HI_USER_exit();
280    Cipher_exit();
281    MIPITX_exit();
282    MIPIRX_exit();
283    HDMI_exit();
284    hi_sensor_spi_exit();
285    hi_sensor_i2c_exit();
286    PIRIS_exit();
287    PWM_exit();
288
289    remove_audio();
290
291    HIFB_exit();
292    TDE_exit();
293    NNIE_exit();
294    IVE_exit();
295    VDEC_exit();
296    VFMW_exit();
297    JPEGD_exit();
298    JPEGE_exit();
299    H265e_exit();
300    H264e_exit();
301    VENC_exit();
302    RC_exit();
303    VEDU_exit();
304    CHNL_exit();
305
306    VO_exit();
307    VPSS_exit();
308    ISP_exit();
309    VI_exit();
310    DIS_exit();
311    VGS_exit();
312    GDC_exit();
313    RGN_exit();
314
315    SYS_exit();
316    BASE_exit();
317    MMZ_exit();
318    osal_proc_exit();
319
320    printf("SDK exit ok...\n");
321}
322
323
324#ifdef __cplusplus
325#if __cplusplus
326}
327#endif
328#endif /* End of #ifdef __cplusplus */
329