# define LIBVLC_FORMAT(x,y) __attribute__ ((format(printf,x,y)))
# endif
# define LIBVLC_FORMAT_ARG(x) __attribute__ ((format_arg(x)))
-# define LIBVLC_USED __attribute__ ((warn_unused_result))
+# if __GNUC__ > 3 || (__GNUC__ == 3 && (__GNUC_MINOR__ >= 4))
+# define LIBVLC_USED __attribute__ ((warn_unused_result))
+# else
+# define LIBVLC_USED
+# endif
# define LIBVLC_MALLOC __attribute__ ((malloc))
#else
# define LIBVLC_FORMAT(x,y)
*/
typedef union
{
- int i_int;
+ int64_t i_int;
bool b_bool;
float f_float;
char * psz_string;
mtime_t i_time;
struct { int32_t x; int32_t y; } coords;
- /* Make sure the structure is at least 64bits */
- uint8_t padding[8];
-
} vlc_value_t;
/**
#include "vlc_mtime.h"
#include "vlc_threads.h"
+/**
+ * Memory storage space for an atom. Never access it directly.
+ */
+typedef union
+{
+ volatile uintptr_t u;
+ volatile intptr_t s;
+} vlc_atomic_t;
+
/*****************************************************************************
* Common structure members
*****************************************************************************/
# define VLC_OBJECT( x ) ((vlc_object_t *)(x))
#endif
-#include <vlc_atomic.h>
typedef struct gc_object_t
{
vlc_atomic_t refs;
VLC_EXPORT( bool, vlc_ureduce, ( unsigned *, unsigned *, uint64_t, uint64_t, uint64_t ) );
-VLC_EXPORT( void *, vlc_memalign, ( void **base, size_t alignment, size_t size ) );
+VLC_EXPORT( void *, vlc_memalign, ( void **base, size_t alignment, size_t size ) LIBVLC_USED );
/* iconv wrappers (defined in src/extras/libc.c) */
typedef void *vlc_iconv_t;
VLC_EXPORT( int, vlc_execve, ( vlc_object_t *p_object, int i_argc, char *const *pp_argv, char *const *pp_env, const char *psz_cwd, const char *p_in, size_t i_in, char **pp_data, size_t *pi_data ) LIBVLC_USED );
#define vlc_execve(a,b,c,d,e,f,g,h,i) vlc_execve(VLC_OBJECT(a),b,c,d,e,f,g,h,i)
-/* dir wrappers (defined in src/extras/libc.c) */
-VLC_EXPORT(int, vlc_wclosedir, ( void *_p_dir ));
-
VLC_EXPORT( void, vlc_tdestroy, ( void *, void (*)(void *) ) );
/* Fast large memory copy and memory set */
#include "vlc_messages.h"
#include "vlc_objects.h"
#include "vlc_variables.h"
-#include "vlc_modules.h"
#include "vlc_main.h"
#include "vlc_configuration.h"