]> git.sesse.net Git - vlc/blobdiff - include/vlc_common.h
move mutex setkind hack to src/
[vlc] / include / vlc_common.h
index fa177d538b10e420380444c2815ed5cfe46740be..31cd81c8a6a2ec13ecca4247cb61503fae472248 100644 (file)
  * This file is a collection of common definitions and types
  */
 
+#ifndef PACKAGE
+/* Temporary regression test */
+#error You probably forgot to include config.h!!
+#endif
+
 /*****************************************************************************
  * Required vlc headers
  *****************************************************************************/
 #if defined( __BORLANDC__ )
-#   undef PACKAGE
-#endif
-
-#include "config.h"
-
-#if defined(PACKAGE)
-#   undef PACKAGE_NAME
-#   define PACKAGE_NAME PACKAGE
-#endif
-#if defined(VERSION)
-#   undef PACKAGE_VERSION
-#   define PACKAGE_VERSION VERSION
-#endif
-
-#if defined( __BORLANDC__ )
-#   undef HAVE_VARIADIC_MACROS
 #   undef HAVE_STDINT_H
 #   undef HAVE_INTTYPES_H
-#   undef off_t
 #elif defined( _MSC_VER )
 #   pragma warning( disable : 4244 )
 #endif
@@ -63,7 +51,6 @@
  *****************************************************************************/
 #include <stdlib.h>
 #include <stdarg.h>
-#include <assert.h>
 
 #include <string.h>
 #include <stdio.h>
@@ -137,10 +124,6 @@ typedef int                 ptrdiff_t;
 #   endif
 #endif
 
-#if (defined( WIN32 ) || defined( UNDER_CE )) && !defined( _SSIZE_T_ )
-typedef int                 ssize_t;
-#endif
-
 /* Counter for statistics and profiling */
 typedef unsigned long       count_t;
 
@@ -153,10 +136,6 @@ typedef uint8_t             yuv_data_t;
 /* Audio volume */
 typedef uint16_t            audio_volume_t;
 
-#ifndef HAVE_SOCKLEN_T
-typedef int                 socklen_t;
-#endif
-
 /**
  * High precision date or time interval
  *
@@ -504,7 +483,7 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
 #  endif
 #else
 #  ifdef __cplusplus
-#    if HAVE_ATTRIBUTE_VISIBILITY
+#    ifdef HAVE_ATTRIBUTE_VISIBILITY
 #      define VLC_PUBLIC_API __attribute__((visibility("default")))
 #      define VLC_PRIVATE_API __attribute__((visibility("default")))
 #      define   VLC_EXPORT( type, name, args ) extern "C" __attribute__((visibility("default"))) type name args
@@ -515,7 +494,7 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
 #      define VLC_INTERNAL( type, name, args ) extern "C" type name args
 #    endif
 #  else
-#    if HAVE_ATTRIBUTE_VISIBILITY
+#    ifdef HAVE_ATTRIBUTE_VISIBILITY
 #      define VLC_PUBLIC_API extern __attribute__((visibility("default")))
 #      define VLC_PRIVATE_API extern __attribute__((visibility("default")))
 #      define   VLC_EXPORT( type, name, args ) __attribute__((visibility("default"))) type name args
@@ -609,6 +588,8 @@ struct gc_object_t
             VLC_GC_MEMBERS
 };
 
+#include <assert.h> /* FIXME: should not be included here */
+
 static inline void __vlc_gc_incref( gc_object_t * p_gc )
 {
     assert( p_gc->i_gc_refcount > 0 );
@@ -670,10 +651,15 @@ __vlc_gc_init( gc_object_t * p_gc, void (*pf_destructor)( gc_object_t * ),
 #   define __MIN(a, b)   ( ((a) < (b)) ? (a) : (b) )
 #endif
 
-static int64_t GCD( int64_t a, int64_t b )
+static inline int64_t GCD( int64_t a, int64_t b )
 {
-    if( b ) return GCD( b, a % b );
-    else return a;
+    while( b )
+    {
+        int64_t c = a % b;
+        a = b;
+        b = c;
+    }
+    return a;
 }
 
 /* function imported from libavutil/common.h */
@@ -832,34 +818,6 @@ static inline void _SetQWBE( uint8_t *p, uint64_t i_qw )
 /* */
 #define VLC_UNUSED(x) (void)(x)
 
-/* Alignment of critical dynamic data structure
- *
- * Not all platforms support memalign so we provide a vlc_memalign wrapper
- * void *vlc_memalign( size_t align, size_t size, void **pp_orig )
- * *pp_orig is the pointer that has to be freed afterwards.
- */
-#if 0
-#ifdef HAVE_POSIX_MEMALIGN
-#   define vlc_memalign(align,size,pp_orig) \
-    ( !posix_memalign( pp_orig, align, size ) ? *(pp_orig) : NULL )
-#endif
-#endif
-#ifdef HAVE_MEMALIGN
-    /* Some systems have memalign() but no declaration for it */
-    void * memalign( size_t align, size_t size );
-
-#   define vlc_memalign(pp_orig,align,size) \
-    ( *(pp_orig) = memalign( align, size ) )
-
-#else /* We don't have any choice but to align manually */
-#   define vlc_memalign(pp_orig,align,size) \
-    (( *(pp_orig) = malloc( size + align - 1 )) \
-        ? (void *)( (((unsigned long)*(pp_orig)) + (unsigned long)(align-1) ) \
-                       & (~(unsigned long)(align-1)) ) \
-        : NULL )
-
-#endif
-
 /* Stuff defined in src/extras/libc.c */
 #ifndef HAVE_STRDUP
 #   define strdup vlc_strdup
@@ -1256,11 +1214,6 @@ VLC_EXPORT( const char *, VLC_Changeset, ( void ) );
 extern vlc_threadvar_t msg_context_global_key;
 
 
-#if defined( __BORLANDC__ )
-#   undef PACKAGE
-#   define PACKAGE
-#endif
-
 #if defined( WIN32 ) || defined( UNDER_CE )
 #   define DIR_SEP_CHAR '\\'
 #   define DIR_SEP "\\"