11bd4fe43Sopenharmony_ci/*
21bd4fe43Sopenharmony_ci * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
31bd4fe43Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
41bd4fe43Sopenharmony_ci * you may not use this file except in compliance with the License.
51bd4fe43Sopenharmony_ci * You may obtain a copy of the License at
61bd4fe43Sopenharmony_ci *
71bd4fe43Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
81bd4fe43Sopenharmony_ci *
91bd4fe43Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
101bd4fe43Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
111bd4fe43Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
121bd4fe43Sopenharmony_ci * See the License for the specific language governing permissions and
131bd4fe43Sopenharmony_ci * limitations under the License.
141bd4fe43Sopenharmony_ci */
151bd4fe43Sopenharmony_ci
161bd4fe43Sopenharmony_ci#include <stdio.h>
171bd4fe43Sopenharmony_ci
181bd4fe43Sopenharmony_ci#ifdef __cplusplus
191bd4fe43Sopenharmony_ci#if __cplusplus
201bd4fe43Sopenharmony_ciextern "C" {
211bd4fe43Sopenharmony_ci#endif
221bd4fe43Sopenharmony_ci#endif /* End of #ifdef __cplusplus */
231bd4fe43Sopenharmony_ci
241bd4fe43Sopenharmony_cistatic void BASE_exit(void)
251bd4fe43Sopenharmony_ci{
261bd4fe43Sopenharmony_ci    extern void base_mod_exit(void);
271bd4fe43Sopenharmony_ci    base_mod_exit();
281bd4fe43Sopenharmony_ci}
291bd4fe43Sopenharmony_ci
301bd4fe43Sopenharmony_cistatic void MMZ_exit(void)
311bd4fe43Sopenharmony_ci{
321bd4fe43Sopenharmony_ci    extern void media_mem_exit(void);
331bd4fe43Sopenharmony_ci    media_mem_exit();
341bd4fe43Sopenharmony_ci}
351bd4fe43Sopenharmony_cistatic void SYS_exit(void)
361bd4fe43Sopenharmony_ci{
371bd4fe43Sopenharmony_ci    extern void sys_mod_exit(void);
381bd4fe43Sopenharmony_ci    sys_mod_exit();
391bd4fe43Sopenharmony_ci}
401bd4fe43Sopenharmony_ci
411bd4fe43Sopenharmony_cistatic void ISP_exit(void)
421bd4fe43Sopenharmony_ci{
431bd4fe43Sopenharmony_ci    extern void isp_mod_exit(void);
441bd4fe43Sopenharmony_ci    isp_mod_exit();
451bd4fe43Sopenharmony_ci}
461bd4fe43Sopenharmony_ci
471bd4fe43Sopenharmony_cistatic void VI_exit(void)
481bd4fe43Sopenharmony_ci{
491bd4fe43Sopenharmony_ci    extern void vi_mod_exit(void);
501bd4fe43Sopenharmony_ci    vi_mod_exit();
511bd4fe43Sopenharmony_ci}
521bd4fe43Sopenharmony_ci
531bd4fe43Sopenharmony_cistatic void RGN_exit(void)
541bd4fe43Sopenharmony_ci{
551bd4fe43Sopenharmony_ci    extern void rgn_mod_exit(void);
561bd4fe43Sopenharmony_ci    rgn_mod_exit();
571bd4fe43Sopenharmony_ci}
581bd4fe43Sopenharmony_ci
591bd4fe43Sopenharmony_cistatic void GDC_exit(void)
601bd4fe43Sopenharmony_ci{
611bd4fe43Sopenharmony_ci    extern void gdc_mod_exit(void);
621bd4fe43Sopenharmony_ci    gdc_mod_exit();
631bd4fe43Sopenharmony_ci}
641bd4fe43Sopenharmony_ci
651bd4fe43Sopenharmony_cistatic void DIS_exit(void)
661bd4fe43Sopenharmony_ci{
671bd4fe43Sopenharmony_ci    extern void dis_mod_exit(void);
681bd4fe43Sopenharmony_ci    dis_mod_exit();
691bd4fe43Sopenharmony_ci}
701bd4fe43Sopenharmony_ci
711bd4fe43Sopenharmony_cistatic void VGS_exit(void)
721bd4fe43Sopenharmony_ci{
731bd4fe43Sopenharmony_ci    extern void vgs_mod_exit(void);
741bd4fe43Sopenharmony_ci    vgs_mod_exit();
751bd4fe43Sopenharmony_ci}
761bd4fe43Sopenharmony_ci
771bd4fe43Sopenharmony_cistatic void VPSS_exit(void)
781bd4fe43Sopenharmony_ci{
791bd4fe43Sopenharmony_ci    extern void vpss_mod_exit(void);
801bd4fe43Sopenharmony_ci    vpss_mod_exit();
811bd4fe43Sopenharmony_ci}
821bd4fe43Sopenharmony_ci
831bd4fe43Sopenharmony_cistatic void VO_exit(void)
841bd4fe43Sopenharmony_ci{
851bd4fe43Sopenharmony_ci    extern void vou_module_exit(void);
861bd4fe43Sopenharmony_ci    vou_module_exit();
871bd4fe43Sopenharmony_ci}
881bd4fe43Sopenharmony_ci
891bd4fe43Sopenharmony_cistatic void TDE_exit(void)
901bd4fe43Sopenharmony_ci{
911bd4fe43Sopenharmony_ci    extern void tde_mod_exit(void);
921bd4fe43Sopenharmony_ci    tde_mod_exit();
931bd4fe43Sopenharmony_ci}
941bd4fe43Sopenharmony_ci
951bd4fe43Sopenharmony_cistatic void HIFB_exit(void)
961bd4fe43Sopenharmony_ci{
971bd4fe43Sopenharmony_ci    extern void hifb_cleanup(void);
981bd4fe43Sopenharmony_ci
991bd4fe43Sopenharmony_ci    hifb_cleanup();
1001bd4fe43Sopenharmony_ci}
1011bd4fe43Sopenharmony_ci
1021bd4fe43Sopenharmony_cistatic void HDMI_exit(void)
1031bd4fe43Sopenharmony_ci{
1041bd4fe43Sopenharmony_ci    extern hi_void HDMI_DRV_ModExit(void);
1051bd4fe43Sopenharmony_ci    HDMI_DRV_ModExit();
1061bd4fe43Sopenharmony_ci}
1071bd4fe43Sopenharmony_ci
1081bd4fe43Sopenharmony_cistatic void MIPIRX_exit(void)
1091bd4fe43Sopenharmony_ci{
1101bd4fe43Sopenharmony_ci    extern void mipi_rx_mod_exit(void);
1111bd4fe43Sopenharmony_ci    mipi_rx_mod_exit();
1121bd4fe43Sopenharmony_ci}
1131bd4fe43Sopenharmony_ci
1141bd4fe43Sopenharmony_cistatic void MIPITX_exit(void)
1151bd4fe43Sopenharmony_ci{
1161bd4fe43Sopenharmony_ci    extern void mipi_tx_module_exit(void);
1171bd4fe43Sopenharmony_ci    mipi_tx_module_exit();
1181bd4fe43Sopenharmony_ci}
1191bd4fe43Sopenharmony_ci
1201bd4fe43Sopenharmony_cistatic void RC_exit(void)
1211bd4fe43Sopenharmony_ci{
1221bd4fe43Sopenharmony_ci    extern void rc_mod_exit(void);
1231bd4fe43Sopenharmony_ci    rc_mod_exit();
1241bd4fe43Sopenharmony_ci}
1251bd4fe43Sopenharmony_ci
1261bd4fe43Sopenharmony_cistatic void VENC_exit(void)
1271bd4fe43Sopenharmony_ci{
1281bd4fe43Sopenharmony_ci    extern void venc_mod_exit(void);
1291bd4fe43Sopenharmony_ci    venc_mod_exit();
1301bd4fe43Sopenharmony_ci}
1311bd4fe43Sopenharmony_ci
1321bd4fe43Sopenharmony_cistatic void CHNL_exit(void)
1331bd4fe43Sopenharmony_ci{
1341bd4fe43Sopenharmony_ci    extern void chnl_mod_exit(void);
1351bd4fe43Sopenharmony_ci    chnl_mod_exit();
1361bd4fe43Sopenharmony_ci}
1371bd4fe43Sopenharmony_ci
1381bd4fe43Sopenharmony_cistatic void VEDU_exit(void)
1391bd4fe43Sopenharmony_ci{
1401bd4fe43Sopenharmony_ci    extern void vedu_mod_exit(void);
1411bd4fe43Sopenharmony_ci    vedu_mod_exit();
1421bd4fe43Sopenharmony_ci}
1431bd4fe43Sopenharmony_ci
1441bd4fe43Sopenharmony_cistatic void H264e_exit(void)
1451bd4fe43Sopenharmony_ci{
1461bd4fe43Sopenharmony_ci    extern void h264e_mod_exit(void);
1471bd4fe43Sopenharmony_ci    h264e_mod_exit();
1481bd4fe43Sopenharmony_ci}
1491bd4fe43Sopenharmony_ci
1501bd4fe43Sopenharmony_cistatic void H265e_exit(void)
1511bd4fe43Sopenharmony_ci{
1521bd4fe43Sopenharmony_ci    extern  void h265e_mod_exit(void);
1531bd4fe43Sopenharmony_ci    h265e_mod_exit();
1541bd4fe43Sopenharmony_ci}
1551bd4fe43Sopenharmony_ci
1561bd4fe43Sopenharmony_cistatic void JPEGE_exit(void)
1571bd4fe43Sopenharmony_ci{
1581bd4fe43Sopenharmony_ci    extern void jpege_mod_exit(void);
1591bd4fe43Sopenharmony_ci    jpege_mod_exit();
1601bd4fe43Sopenharmony_ci}
1611bd4fe43Sopenharmony_ci
1621bd4fe43Sopenharmony_cistatic void PWM_exit(void)
1631bd4fe43Sopenharmony_ci{
1641bd4fe43Sopenharmony_ci    extern void pwm_exit(void);
1651bd4fe43Sopenharmony_ci    pwm_exit();
1661bd4fe43Sopenharmony_ci}
1671bd4fe43Sopenharmony_ci
1681bd4fe43Sopenharmony_cistatic void PIRIS_exit(void)
1691bd4fe43Sopenharmony_ci{
1701bd4fe43Sopenharmony_ci    extern void piris_exit(void);
1711bd4fe43Sopenharmony_ci
1721bd4fe43Sopenharmony_ci    piris_exit();
1731bd4fe43Sopenharmony_ci}
1741bd4fe43Sopenharmony_ci
1751bd4fe43Sopenharmony_cistatic void hi_sensor_spi_exit(void)
1761bd4fe43Sopenharmony_ci{
1771bd4fe43Sopenharmony_ci    extern void sensor_spi_dev_exit(void);
1781bd4fe43Sopenharmony_ci    sensor_spi_dev_exit();
1791bd4fe43Sopenharmony_ci}
1801bd4fe43Sopenharmony_ci
1811bd4fe43Sopenharmony_cistatic void hi_sensor_i2c_exit(void)
1821bd4fe43Sopenharmony_ci{
1831bd4fe43Sopenharmony_ci    extern void hi_dev_exit(void);
1841bd4fe43Sopenharmony_ci    hi_dev_exit();
1851bd4fe43Sopenharmony_ci}
1861bd4fe43Sopenharmony_ci
1871bd4fe43Sopenharmony_cistatic void JPEGD_exit(void)
1881bd4fe43Sopenharmony_ci{
1891bd4fe43Sopenharmony_ci    extern void jpegd_mod_exit(void);
1901bd4fe43Sopenharmony_ci    jpegd_mod_exit();
1911bd4fe43Sopenharmony_ci}
1921bd4fe43Sopenharmony_ci
1931bd4fe43Sopenharmony_cistatic void VFMW_exit(void)
1941bd4fe43Sopenharmony_ci{
1951bd4fe43Sopenharmony_ci    extern void vfmw_mod_exit(void);
1961bd4fe43Sopenharmony_ci    vfmw_mod_exit();
1971bd4fe43Sopenharmony_ci}
1981bd4fe43Sopenharmony_ci
1991bd4fe43Sopenharmony_cistatic void VDEC_exit(void)
2001bd4fe43Sopenharmony_ci{
2011bd4fe43Sopenharmony_ci    extern void vdec_mod_exit(void);
2021bd4fe43Sopenharmony_ci    vdec_mod_exit();
2031bd4fe43Sopenharmony_ci}
2041bd4fe43Sopenharmony_ci
2051bd4fe43Sopenharmony_cistatic void IVE_exit(void)
2061bd4fe43Sopenharmony_ci{
2071bd4fe43Sopenharmony_ci    extern void ive_mod_exit(void);
2081bd4fe43Sopenharmony_ci    ive_mod_exit();
2091bd4fe43Sopenharmony_ci}
2101bd4fe43Sopenharmony_ci
2111bd4fe43Sopenharmony_cistatic void NNIE_exit(void)
2121bd4fe43Sopenharmony_ci{
2131bd4fe43Sopenharmony_ci    extern void nnie_mod_exit(void);
2141bd4fe43Sopenharmony_ci    nnie_mod_exit();
2151bd4fe43Sopenharmony_ci}
2161bd4fe43Sopenharmony_ci
2171bd4fe43Sopenharmony_cistatic void Cipher_exit(void)
2181bd4fe43Sopenharmony_ci{
2191bd4fe43Sopenharmony_ci    extern void cipher_drv_mod_exit(void);
2201bd4fe43Sopenharmony_ci    cipher_drv_mod_exit();
2211bd4fe43Sopenharmony_ci}
2221bd4fe43Sopenharmony_ci
2231bd4fe43Sopenharmony_cistatic void HI_USER_exit(void)
2241bd4fe43Sopenharmony_ci{
2251bd4fe43Sopenharmony_ci    extern void hi_user_exit(void);
2261bd4fe43Sopenharmony_ci    hi_user_exit();
2271bd4fe43Sopenharmony_ci}
2281bd4fe43Sopenharmony_ci
2291bd4fe43Sopenharmony_cistatic void AiaoMod_exit(void)
2301bd4fe43Sopenharmony_ci{
2311bd4fe43Sopenharmony_ci    extern void aiao_mod_exit(void);
2321bd4fe43Sopenharmony_ci    aiao_mod_exit();
2331bd4fe43Sopenharmony_ci}
2341bd4fe43Sopenharmony_ci
2351bd4fe43Sopenharmony_cistatic void AiMod_exit(void)
2361bd4fe43Sopenharmony_ci{
2371bd4fe43Sopenharmony_ci    extern void ai_mod_exit(void);
2381bd4fe43Sopenharmony_ci    ai_mod_exit();
2391bd4fe43Sopenharmony_ci}
2401bd4fe43Sopenharmony_ci
2411bd4fe43Sopenharmony_cistatic void AoMod_exit(void)
2421bd4fe43Sopenharmony_ci{
2431bd4fe43Sopenharmony_ci    extern void ao_mod_exit(void);
2441bd4fe43Sopenharmony_ci    ao_mod_exit();
2451bd4fe43Sopenharmony_ci}
2461bd4fe43Sopenharmony_ci
2471bd4fe43Sopenharmony_cistatic void AencMod_exit(void)
2481bd4fe43Sopenharmony_ci{
2491bd4fe43Sopenharmony_ci    extern void aenc_mod_exit(void);
2501bd4fe43Sopenharmony_ci    aenc_mod_exit();
2511bd4fe43Sopenharmony_ci}
2521bd4fe43Sopenharmony_ci
2531bd4fe43Sopenharmony_cistatic void AdecMod_exit(void)
2541bd4fe43Sopenharmony_ci{
2551bd4fe43Sopenharmony_ci    extern void adec_mod_exit(void);
2561bd4fe43Sopenharmony_ci    adec_mod_exit();
2571bd4fe43Sopenharmony_ci}
2581bd4fe43Sopenharmony_ci
2591bd4fe43Sopenharmony_cistatic void AcodecMod_exit(void)
2601bd4fe43Sopenharmony_ci{
2611bd4fe43Sopenharmony_ci    extern void acodec_mod_exit(void);
2621bd4fe43Sopenharmony_ci    acodec_mod_exit();
2631bd4fe43Sopenharmony_ci}
2641bd4fe43Sopenharmony_ci
2651bd4fe43Sopenharmony_cistatic void remove_audio(void)
2661bd4fe43Sopenharmony_ci{
2671bd4fe43Sopenharmony_ci    AcodecMod_exit();
2681bd4fe43Sopenharmony_ci    AdecMod_exit();
2691bd4fe43Sopenharmony_ci    AencMod_exit();
2701bd4fe43Sopenharmony_ci    AoMod_exit();
2711bd4fe43Sopenharmony_ci    AiMod_exit();
2721bd4fe43Sopenharmony_ci    AiaoMod_exit();
2731bd4fe43Sopenharmony_ci}
2741bd4fe43Sopenharmony_ci
2751bd4fe43Sopenharmony_ciextern void osal_proc_exit(void);
2761bd4fe43Sopenharmony_ci
2771bd4fe43Sopenharmony_civoid SDK_exit(void)
2781bd4fe43Sopenharmony_ci{
2791bd4fe43Sopenharmony_ci    HI_USER_exit();
2801bd4fe43Sopenharmony_ci    Cipher_exit();
2811bd4fe43Sopenharmony_ci    MIPITX_exit();
2821bd4fe43Sopenharmony_ci    MIPIRX_exit();
2831bd4fe43Sopenharmony_ci    HDMI_exit();
2841bd4fe43Sopenharmony_ci    hi_sensor_spi_exit();
2851bd4fe43Sopenharmony_ci    hi_sensor_i2c_exit();
2861bd4fe43Sopenharmony_ci    PIRIS_exit();
2871bd4fe43Sopenharmony_ci    PWM_exit();
2881bd4fe43Sopenharmony_ci
2891bd4fe43Sopenharmony_ci    remove_audio();
2901bd4fe43Sopenharmony_ci
2911bd4fe43Sopenharmony_ci    HIFB_exit();
2921bd4fe43Sopenharmony_ci    TDE_exit();
2931bd4fe43Sopenharmony_ci    NNIE_exit();
2941bd4fe43Sopenharmony_ci    IVE_exit();
2951bd4fe43Sopenharmony_ci    VDEC_exit();
2961bd4fe43Sopenharmony_ci    VFMW_exit();
2971bd4fe43Sopenharmony_ci    JPEGD_exit();
2981bd4fe43Sopenharmony_ci    JPEGE_exit();
2991bd4fe43Sopenharmony_ci    H265e_exit();
3001bd4fe43Sopenharmony_ci    H264e_exit();
3011bd4fe43Sopenharmony_ci    VENC_exit();
3021bd4fe43Sopenharmony_ci    RC_exit();
3031bd4fe43Sopenharmony_ci    VEDU_exit();
3041bd4fe43Sopenharmony_ci    CHNL_exit();
3051bd4fe43Sopenharmony_ci
3061bd4fe43Sopenharmony_ci    VO_exit();
3071bd4fe43Sopenharmony_ci    VPSS_exit();
3081bd4fe43Sopenharmony_ci    ISP_exit();
3091bd4fe43Sopenharmony_ci    VI_exit();
3101bd4fe43Sopenharmony_ci    DIS_exit();
3111bd4fe43Sopenharmony_ci    VGS_exit();
3121bd4fe43Sopenharmony_ci    GDC_exit();
3131bd4fe43Sopenharmony_ci    RGN_exit();
3141bd4fe43Sopenharmony_ci
3151bd4fe43Sopenharmony_ci    SYS_exit();
3161bd4fe43Sopenharmony_ci    BASE_exit();
3171bd4fe43Sopenharmony_ci    MMZ_exit();
3181bd4fe43Sopenharmony_ci    osal_proc_exit();
3191bd4fe43Sopenharmony_ci
3201bd4fe43Sopenharmony_ci    printf("SDK exit ok...\n");
3211bd4fe43Sopenharmony_ci}
3221bd4fe43Sopenharmony_ci
3231bd4fe43Sopenharmony_ci
3241bd4fe43Sopenharmony_ci#ifdef __cplusplus
3251bd4fe43Sopenharmony_ci#if __cplusplus
3261bd4fe43Sopenharmony_ci}
3271bd4fe43Sopenharmony_ci#endif
3281bd4fe43Sopenharmony_ci#endif /* End of #ifdef __cplusplus */
329