*/
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
*****************************************************************************/
typedef struct gc_object_t
{
- vlc_spinlock_t spin;
- uintptr_t refs;
+ vlc_atomic_t refs;
void (*pf_destructor) (struct gc_object_t *);
} gc_object_t;
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;