* modules.h : Module management functions.
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: modules.h,v 1.59 2002/07/31 20:56:50 sam Exp $
+ * $Id: modules.h,v 1.63 2003/01/19 03:16:24 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
{
VLC_COMMON_MEMBERS
- module_t * first; /* First module in the bank */
- int i_count; /* Number of allocated modules */
-
- vlc_mutex_t lock; /* Global lock -- you can't imagine how awful *
- it is to design thread-safe linked lists */
module_symbols_t symbols;
};
char *pp_shortcuts[ MODULE_SHORTCUT_MAX ]; /* Shortcuts to the module */
- char *psz_capability; /* Capability */
- int i_score; /* Score for each capability */
- u32 i_cpu; /* Required CPU capabilities */
+ char *psz_capability; /* Capability */
+ int i_score; /* Score for each capability */
+ uint32_t i_cpu; /* Required CPU capabilities */
+ vlc_bool_t b_unloadable; /* Can we be dlclosed? */
+ vlc_bool_t b_reentrant; /* Are we reentrant? */
vlc_bool_t b_submodule; /* Is this a submodule? */
/* Callbacks */
vlc_bool_t b_builtin; /* Set to true if the module is built in */
- int i_usage; /* Reference counter */
- int i_unused_delay; /* Delay until module is unloaded */
-
- module_t *next; /* Next module */
- module_t *prev; /* Previous module */
-
/*
* Symbol table we send to the module so that it can access vlc symbols
*/
void __module_EndBank ( vlc_object_t * );
#define module_ResetBank(a) __module_ResetBank(VLC_OBJECT(a))
void __module_ResetBank ( vlc_object_t * );
-#define module_ManageBank(a) __module_ManageBank(VLC_OBJECT(a))
-void __module_ManageBank ( vlc_object_t * );
#define module_Need(a,b,c) __module_Need(VLC_OBJECT(a),b,c)
VLC_EXPORT( module_t *, __module_Need, ( vlc_object_t *, const char *, const char * ) );