示例#1
0
//-----------------------------------------------
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;
    }
}
示例#2
0
文件: module_load.c 项目: c10ud/CHDK
//-----------------------------------------------
// 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;
    }
}