/*
* Threads subsystem
*/
-int __vlc_threads_init( vlc_object_t * );
-int __vlc_threads_end( vlc_object_t * );
+int vlc_threads_init( void );
+void vlc_threads_end( void );
+
+/** The global thread var for msg stack context
+ * We store this as a static global variable so we don't need a vlc_object_t
+ * everywhere.
+ * This key is created in vlc_threads_init and is therefore ready to use at
+ * the very beginning of the universe */
+extern vlc_threadvar_t msg_context_global_key;
/*
* CPU capabilities
{
VLC_COMMON_MEMBERS
- bool b_ready; ///< Initialization boolean
-
/* Object structure data */
int i_counter; ///< object counter
int i_objects; ///< Attached objects count
vlc_object_t ** pp_objects; ///< Array of all objects
module_bank_t * p_module_bank; ///< The module bank
- intf_thread_t *p_probe; ///< Devices prober
/* Arch-specific variables */
-#if !defined( WIN32 )
- bool b_daemon;
-#endif
#if defined( SYS_BEOS )
- vlc_object_t * p_appthread;
char * psz_vlcpath;
#elif defined( __APPLE__ )
char * psz_vlcpath;
- vlc_iconv_t iconv_macosx; /* for HFS+ file names */
- vlc_mutex_t iconv_lock;
#elif defined( WIN32 )
char * psz_vlcpath;
#endif
/* Thread properties, if any */
vlc_thread_t thread_id;
- bool b_thread;
+ bool b_thread;
/* Objects thread synchronization */
int pipes[2];
/* Objects management */
unsigned i_refcount;
vlc_destructor_t pf_destructor;
- bool b_attached;
+ bool b_attached;
};
#define ZOOM_SECTION N_("Zoom")
static inline vlc_object_internals_t *vlc_internals( vlc_object_t *obj )
{
- return obj->p_internals;
+ return ((vlc_object_internals_t *)obj) - 1;
}
extern module_config_t libvlc_config[];