From 1252a5ebffca99690899c53234e8bd92215dcc8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> Date: Tue, 9 Aug 2011 18:48:13 +0300 Subject: [PATCH] Add helpers to store floats into vlc_atomic_t (Lets assume that uintptr_t is big enough, i.e. 32-bits). --- include/vlc_atomic.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/include/vlc_atomic.h b/include/vlc_atomic.h index 39d02b4b5142..d21c8ad3b5b7 100644 --- a/include/vlc_atomic.h +++ b/include/vlc_atomic.h @@ -53,4 +53,21 @@ static inline uintptr_t vlc_atomic_dec (vlc_atomic_t *atom) VLC_API uintptr_t vlc_atomic_swap(vlc_atomic_t *, uintptr_t); VLC_API uintptr_t vlc_atomic_compare_swap(vlc_atomic_t *, uintptr_t, uintptr_t); +/** Helper to retrieve a single precision from an atom. */ +static inline float vlc_atomic_getf(const vlc_atomic_t *atom) +{ + union { float f; uintptr_t i; } u; + u.i = vlc_atomic_get(atom); + return u.f; +} + +/** Helper to store a single precision into an atom. */ +static inline float vlc_atomic_setf(vlc_atomic_t *atom, float f) +{ + union { float f; uintptr_t i; } u; + u.f = f; + vlc_atomic_set(atom, u.i); + return f; +} + #endif -- GitLab