//----------------------------------------------- static void module_unload_idx(int idx) { if ( idx>=0 ) { module_log_unload(modules[idx].modulename); // Make finalization module if ( modules[idx].hdr->_module_info->lib->unloader ) modules[idx].hdr->_module_info->lib->unloader(); // Unbind pointers to module (chdk core callback) bind_module(modules[idx].hMod,0); // Free slot free ( modules[idx].hdr ); modules[idx].hdr = 0; } }
//----------------------------------------------- // Unload module at given index in modules array static void module_unload_idx(int idx) { if ((idx >= 0) && (modules[idx].hdr != 0)) { // Log unload module_log_unload(modules[idx].hMod->name); // Call module unload function if (modules[idx].hdr->_module_info->lib->unloader) modules[idx].hdr->_module_info->lib->unloader(); // Unbind pointers to module (chdk core callback) bind_module(modules[idx].hMod, 0); // Free module memory, and mark module as inactive free(modules[idx].hdr); modules[idx].hdr = 0; } }