1*10465441SEvalZero /* 2*10465441SEvalZero * Copyright (c) 2006-2018, RT-Thread Development Team 3*10465441SEvalZero * 4*10465441SEvalZero * SPDX-License-Identifier: Apache-2.0 5*10465441SEvalZero * 6*10465441SEvalZero * Change Logs: 7*10465441SEvalZero * Date Author Notes 8*10465441SEvalZero * 2010-11-17 yi.qiu first version 9*10465441SEvalZero */ 10*10465441SEvalZero 11*10465441SEvalZero #include <rtthread.h> 12*10465441SEvalZero #include <rtm.h> 13*10465441SEvalZero 14*10465441SEvalZero #include "dlmodule.h" 15*10465441SEvalZero dlclose(void * handle)16*10465441SEvalZeroint dlclose(void *handle) 17*10465441SEvalZero { 18*10465441SEvalZero struct rt_dlmodule *module; 19*10465441SEvalZero 20*10465441SEvalZero RT_ASSERT(handle != RT_NULL); 21*10465441SEvalZero 22*10465441SEvalZero module = (struct rt_dlmodule *)handle; 23*10465441SEvalZero 24*10465441SEvalZero rt_enter_critical(); 25*10465441SEvalZero module->nref--; 26*10465441SEvalZero if (module->nref <= 0) 27*10465441SEvalZero { 28*10465441SEvalZero rt_exit_critical(); 29*10465441SEvalZero 30*10465441SEvalZero dlmodule_destroy(module); 31*10465441SEvalZero } 32*10465441SEvalZero else 33*10465441SEvalZero { 34*10465441SEvalZero rt_exit_critical(); 35*10465441SEvalZero } 36*10465441SEvalZero 37*10465441SEvalZero return RT_TRUE; 38*10465441SEvalZero } 39*10465441SEvalZero RTM_EXPORT(dlclose) 40