From 0a1942f528786ce7ee4a9e37ffced13515e1fedd Mon Sep 17 00:00:00 2001
From: twinaphex <libretro@gmail.com>
Date: Tue, 7 Jul 2020 08:13:32 +0200
Subject: [PATCH] Turn fifo_read_avail and fifo_write_avail into macros

---
 audio/drivers/alsathread.c                    |  8 +++----
 audio/drivers/coreaudio.c                     | 10 ++++-----
 audio/drivers/dsound.c                        |  8 +++----
 audio/drivers/ps3_audio.c                     |  6 ++---
 audio/drivers/rsound.c                        | 11 +++++-----
 audio/drivers/sdl_audio.c                     |  6 ++---
 .../switch_libnx_audren_thread_audio.c        |  8 +++----
 audio/drivers/switch_thread_audio.c           |  8 +++----
 audio/drivers/wasapi.c                        | 22 +++++++++----------
 audio/librsound.c                             | 19 ++++++++--------
 cores/libretro-ffmpeg/ffmpeg_core.c           |  7 +++---
 gfx/gfx_widgets.c                             |  8 +++----
 input/drivers_hid/libusb_hid.c                |  6 ++---
 libretro-common/include/queues/fifo_queue.h   | 10 ++-------
 record/drivers/record_ffmpeg.c                | 14 ++++++------
 15 files changed, 72 insertions(+), 79 deletions(-)

diff --git a/audio/drivers/alsathread.c b/audio/drivers/alsathread.c
index c58dcc0515..339803fd49 100644
--- a/audio/drivers/alsathread.c
+++ b/audio/drivers/alsathread.c
@@ -66,7 +66,7 @@ static void alsa_worker_thread(void *data)
       size_t fifo_size;
       snd_pcm_sframes_t frames;
       slock_lock(alsa->fifo_lock);
-      avail = fifo_read_avail(alsa->buffer);
+      avail     = FIFO_READ_AVAIL(alsa->buffer);
       fifo_size = MIN(alsa->period_size, avail);
       fifo_read(alsa->buffer, buf, fifo_size);
       scond_signal(alsa->cond);
@@ -256,7 +256,7 @@ static ssize_t alsa_thread_write(void *data, const void *buf, size_t size)
       size_t write_amt;
 
       slock_lock(alsa->fifo_lock);
-      avail           = fifo_write_avail(alsa->buffer);
+      avail           = FIFO_WRITE_AVAIL(alsa->buffer);
       write_amt       = MIN(avail, size);
 
       fifo_write(alsa->buffer, buf, write_amt);
@@ -271,7 +271,7 @@ static ssize_t alsa_thread_write(void *data, const void *buf, size_t size)
       {
          size_t avail;
          slock_lock(alsa->fifo_lock);
-         avail = fifo_write_avail(alsa->buffer);
+         avail = FIFO_WRITE_AVAIL(alsa->buffer);
 
          if (avail == 0)
          {
@@ -334,7 +334,7 @@ static size_t alsa_thread_write_avail(void *data)
    if (alsa->thread_dead)
       return 0;
    slock_lock(alsa->fifo_lock);
-   val = fifo_write_avail(alsa->buffer);
+   val = FIFO_WRITE_AVAIL(alsa->buffer);
    slock_unlock(alsa->fifo_lock);
    return val;
 }
diff --git a/audio/drivers/coreaudio.c b/audio/drivers/coreaudio.c
index 32cf09abda..6354fcb6df 100644
--- a/audio/drivers/coreaudio.c
+++ b/audio/drivers/coreaudio.c
@@ -103,7 +103,7 @@ static OSStatus audio_write_cb(void *userdata,
 
    slock_lock(dev->lock);
 
-   if (fifo_read_avail(dev->buffer) < write_avail)
+   if (FIFO_READ_AVAIL(dev->buffer) < write_avail)
    {
       *action_flags = kAudioUnitRenderAction_OutputIsSilence;
 
@@ -356,14 +356,14 @@ static ssize_t coreaudio_write(void *data, const void *buf_, size_t size)
 
       slock_lock(dev->lock);
 
-      write_avail = fifo_write_avail(dev->buffer);
+      write_avail = FIFO_WRITE_AVAIL(dev->buffer);
       if (write_avail > size)
          write_avail = size;
 
       fifo_write(dev->buffer, buf, write_avail);
-      buf += write_avail;
+      buf     += write_avail;
       written += write_avail;
-      size -= write_avail;
+      size    -= write_avail;
 
       if (dev->nonblock)
       {
@@ -430,7 +430,7 @@ static size_t coreaudio_write_avail(void *data)
    coreaudio_t *dev = (coreaudio_t*)data;
 
    slock_lock(dev->lock);
-   avail = fifo_write_avail(dev->buffer);
+   avail = FIFO_WRITE_AVAIL(dev->buffer);
    slock_unlock(dev->lock);
 
    return avail;
diff --git a/audio/drivers/dsound.c b/audio/drivers/dsound.c
index 00176873f7..9bca87a9d2 100644
--- a/audio/drivers/dsound.c
+++ b/audio/drivers/dsound.c
@@ -155,7 +155,7 @@ static DWORD CALLBACK dsound_thread(PVOID data)
       avail = write_avail(read_ptr, write_ptr, ds->buffer_size);
 
       EnterCriticalSection(&ds->crit);
-      fifo_avail = fifo_read_avail(ds->buffer);
+      fifo_avail = FIFO_READ_AVAIL(ds->buffer);
       LeaveCriticalSection(&ds->crit);
 
       if (avail < CHUNK_SIZE || ((fifo_avail < CHUNK_SIZE) && (avail < ds->buffer_size / 2)))
@@ -511,7 +511,7 @@ static ssize_t dsound_write(void *data, const void *buf_, size_t size)
          size_t avail;
 
          EnterCriticalSection(&ds->crit);
-         avail = fifo_write_avail(ds->buffer);
+         avail = FIFO_WRITE_AVAIL(ds->buffer);
          if (avail > size)
             avail = size;
 
@@ -530,7 +530,7 @@ static ssize_t dsound_write(void *data, const void *buf_, size_t size)
          size_t avail;
 
          EnterCriticalSection(&ds->crit);
-         avail = fifo_write_avail(ds->buffer);
+         avail = FIFO_WRITE_AVAIL(ds->buffer);
          if (avail > size)
             avail = size;
 
@@ -558,7 +558,7 @@ static size_t dsound_write_avail(void *data)
    dsound_t *ds = (dsound_t*)data;
 
    EnterCriticalSection(&ds->crit);
-   avail = fifo_write_avail(ds->buffer);
+   avail = FIFO_WRITE_AVAIL(ds->buffer);
    LeaveCriticalSection(&ds->crit);
    return avail;
 }
diff --git a/audio/drivers/ps3_audio.c b/audio/drivers/ps3_audio.c
index 958374a8fd..d8ffa73805 100644
--- a/audio/drivers/ps3_audio.c
+++ b/audio/drivers/ps3_audio.c
@@ -61,7 +61,7 @@ static void event_loop(uint64_t data)
       sys_event_queue_receive(id, &event, SYS_NO_TIMEOUT);
 
       sys_lwmutex_lock(&aud->lock, SYS_NO_TIMEOUT);
-      if (fifo_read_avail(aud->buffer) >= sizeof(out_tmp))
+      if (FIFO_READ_AVAIL(aud->buffer) >= sizeof(out_tmp))
          fifo_read(aud->buffer, out_tmp, sizeof(out_tmp));
       else
          memset(out_tmp, 0, sizeof(out_tmp));
@@ -152,11 +152,11 @@ static ssize_t ps3_audio_write(void *data, const void *buf, size_t size)
 
    if (aud->nonblock)
    {
-      if (fifo_write_avail(aud->buffer) < size)
+      if (FIFO_WRITE_AVAIL(aud->buffer) < size)
          return 0;
    }
 
-   while (fifo_write_avail(aud->buffer) < size)
+   while (FIFO_WRITE_AVAIL(aud->buffer) < size)
       sys_lwcond_wait(&aud->cond, 0);
 
    sys_lwmutex_lock(&aud->lock, SYS_NO_TIMEOUT);
diff --git a/audio/drivers/rsound.c b/audio/drivers/rsound.c
index c017ae44e9..b5d10ebf99 100644
--- a/audio/drivers/rsound.c
+++ b/audio/drivers/rsound.c
@@ -39,9 +39,8 @@ typedef struct rsd
 
 static ssize_t rsound_audio_cb(void *data, size_t bytes, void *userdata)
 {
-   rsd_t *rsd = (rsd_t*)userdata;
-
-   size_t avail = fifo_read_avail(rsd->buffer);
+   rsd_t *rsd        = (rsd_t*)userdata;
+   size_t avail      = FIFO_READ_AVAIL(rsd->buffer);
    size_t write_size = bytes > avail ? avail : bytes;
    fifo_read(rsd->buffer, data, write_size);
    scond_signal(rsd->cond);
@@ -115,7 +114,7 @@ static ssize_t rs_write(void *data, const void *buf, size_t size)
 
       rsd_callback_lock(rsd->rd);
 
-      avail = fifo_write_avail(rsd->buffer);
+      avail     = FIFO_WRITE_AVAIL(rsd->buffer);
       write_amt = avail > size ? size : avail;
 
       fifo_write(rsd->buffer, buf, write_amt);
@@ -130,7 +129,7 @@ static ssize_t rs_write(void *data, const void *buf, size_t size)
          size_t avail;
          rsd_callback_lock(rsd->rd);
 
-         avail = fifo_write_avail(rsd->buffer);
+         avail = FIFO_WRITE_AVAIL(rsd->buffer);
 
          if (avail == 0)
          {
@@ -209,7 +208,7 @@ static size_t rs_write_avail(void *data)
    if (rsd->has_error)
       return 0;
    rsd_callback_lock(rsd->rd);
-   val = fifo_write_avail(rsd->buffer);
+   val = FIFO_WRITE_AVAIL(rsd->buffer);
    rsd_callback_unlock(rsd->rd);
    return val;
 }
diff --git a/audio/drivers/sdl_audio.c b/audio/drivers/sdl_audio.c
index 5726bd7371..5f03253eac 100644
--- a/audio/drivers/sdl_audio.c
+++ b/audio/drivers/sdl_audio.c
@@ -46,7 +46,7 @@ typedef struct sdl_audio
 static void sdl_audio_cb(void *data, Uint8 *stream, int len)
 {
    sdl_audio_t  *sdl = (sdl_audio_t*)data;
-   size_t      avail = fifo_read_avail(sdl->buffer);
+   size_t      avail = FIFO_READ_AVAIL(sdl->buffer);
    size_t write_size = len > (int)avail ? avail : len;
 
    fifo_read(sdl->buffer, stream, write_size);
@@ -151,7 +151,7 @@ static ssize_t sdl_audio_write(void *data, const void *buf, size_t size)
       size_t avail, write_amt;
 
       SDL_LockAudio();
-      avail = fifo_write_avail(sdl->buffer);
+      avail = FIFO_WRITE_AVAIL(sdl->buffer);
       write_amt = avail > size ? size : avail;
       fifo_write(sdl->buffer, buf, write_amt);
       SDL_UnlockAudio();
@@ -166,7 +166,7 @@ static ssize_t sdl_audio_write(void *data, const void *buf, size_t size)
          size_t avail;
 
          SDL_LockAudio();
-         avail = fifo_write_avail(sdl->buffer);
+         avail = FIFO_WRITE_AVAIL(sdl->buffer);
 
          if (avail == 0)
          {
diff --git a/audio/drivers/switch_libnx_audren_thread_audio.c b/audio/drivers/switch_libnx_audren_thread_audio.c
index c44f18aab4..d6ae246962 100644
--- a/audio/drivers/switch_libnx_audren_thread_audio.c
+++ b/audio/drivers/switch_libnx_audren_thread_audio.c
@@ -96,7 +96,7 @@ static void thread_job(void* data)
       if (current_wavebuf)
       {
          mutexLock(&aud->fifo_lock);
-         available = aud->paused ? 0 : fifo_read_avail(aud->fifo);
+         available = aud->paused ? 0 : FIFO_READ_AVAIL(aud->fifo);
          written_tmp = MIN(available, aud->buffer_size - current_size);
          dstbuf = current_pool_ptr + current_size;
          if (written_tmp > 0)
@@ -295,7 +295,7 @@ static ssize_t libnx_audren_thread_audio_write(void *data,
    if (aud->nonblock)
    {
       mutexLock(&aud->fifo_lock);
-      available = fifo_write_avail(aud->fifo);
+      available = FIFO_WRITE_AVAIL(aud->fifo);
       written = MIN(available, size);
       if (written > 0)
          fifo_write(aud->fifo, buf, written);
@@ -307,7 +307,7 @@ static ssize_t libnx_audren_thread_audio_write(void *data,
       while (written < size && aud->running)
       {
          mutexLock(&aud->fifo_lock);
-         available = fifo_write_avail(aud->fifo);
+         available = FIFO_WRITE_AVAIL(aud->fifo);
          if (available)
          {
             written_tmp = MIN(size - written, available);
@@ -407,7 +407,7 @@ static size_t libnx_audren_thread_audio_write_avail(void *data)
       return 0;
 
    mutexLock(&aud->fifo_lock);
-   available = fifo_write_avail(aud->fifo);
+   available = FIFO_WRITE_AVAIL(aud->fifo);
    mutexUnlock(&aud->fifo_lock);
 
    return available;
diff --git a/audio/drivers/switch_thread_audio.c b/audio/drivers/switch_thread_audio.c
index 5ccc455921..d206683e0f 100644
--- a/audio/drivers/switch_thread_audio.c
+++ b/audio/drivers/switch_thread_audio.c
@@ -107,7 +107,7 @@ static void mainLoop(void* data)
 
       compat_mutex_lock(&swa->fifoLock);
 
-      avail    = fifo_read_avail(swa->fifo);
+      avail    = FIFO_READ_AVAIL(swa->fifo);
       to_write = MIN(avail, buf_avail);
       if (to_write > 0)
       {
@@ -349,7 +349,7 @@ static ssize_t switch_thread_audio_write(void *data, const void *buf, size_t siz
    if (swa->nonblock)
    {
       compat_mutex_lock(&swa->fifoLock);
-      avail = fifo_write_avail(swa->fifo);
+      avail = FIFO_WRITE_AVAIL(swa->fifo);
       written = MIN(avail, size);
       if (written > 0)
          fifo_write(swa->fifo, buf, written);
@@ -361,7 +361,7 @@ static ssize_t switch_thread_audio_write(void *data, const void *buf, size_t siz
       while (written < size && swa->running)
       {
          compat_mutex_lock(&swa->fifoLock);
-         avail = fifo_write_avail(swa->fifo);
+         avail = FIFO_WRITE_AVAIL(swa->fifo);
          if (avail == 0)
          {
             compat_mutex_unlock(&swa->fifoLock);
@@ -413,7 +413,7 @@ static size_t switch_thread_audio_write_avail(void *data)
    switch_thread_audio_t* swa = (switch_thread_audio_t*)data;
 
    compat_mutex_lock(&swa->fifoLock);
-   val = fifo_write_avail(swa->fifo);
+   val = FIFO_WRITE_AVAIL(swa->fifo);
    compat_mutex_unlock(&swa->fifoLock);
 
    return val;
diff --git a/audio/drivers/wasapi.c b/audio/drivers/wasapi.c
index 63ffe8a925..2a5fb52ccb 100644
--- a/audio/drivers/wasapi.c
+++ b/audio/drivers/wasapi.c
@@ -632,7 +632,7 @@ static ssize_t wasapi_write_sh_buffer(wasapi_t *w, const void * data, size_t siz
 {
    ssize_t written    = -1;
    UINT32 padding     = 0;
-   size_t write_avail = fifo_write_avail(w->buffer);
+   size_t write_avail = FIFO_WRITE_AVAIL(w->buffer);
 
    if (!write_avail)
    {
@@ -643,7 +643,7 @@ static ssize_t wasapi_write_sh_buffer(wasapi_t *w, const void * data, size_t siz
       if (FAILED(_IAudioClient_GetCurrentPadding(w->client, &padding)))
          return -1;
 
-      read_avail  = fifo_read_avail(w->buffer);
+      read_avail  = FIFO_READ_AVAIL(w->buffer);
       write_avail = w->engine_buffer_size - padding * w->frame_size;
       written     = read_avail < write_avail ? read_avail : write_avail;
       if (written)
@@ -651,7 +651,7 @@ static ssize_t wasapi_write_sh_buffer(wasapi_t *w, const void * data, size_t siz
             return -1;
    }
 
-   write_avail = fifo_write_avail(w->buffer);
+   write_avail = FIFO_WRITE_AVAIL(w->buffer);
    written     = size < write_avail ? size : write_avail;
    if (written)
       fifo_write(w->buffer, data, written);
@@ -685,20 +685,20 @@ static ssize_t wasapi_write_sh(wasapi_t *w, const void * data, size_t size)
 
 static ssize_t wasapi_write_sh_nonblock(wasapi_t *w, const void * data, size_t size)
 {
-   size_t write_avail = 0;
-   ssize_t written    = -1;
-   UINT32 padding     = 0;
+   size_t write_avail       = 0;
+   ssize_t written          = -1;
+   UINT32 padding           = 0;
 
    if (w->buffer)
    {
-      write_avail = fifo_write_avail(w->buffer);
+      write_avail           = FIFO_WRITE_AVAIL(w->buffer);
       if (!write_avail)
       {
          size_t read_avail  = 0;
          if (FAILED(_IAudioClient_GetCurrentPadding(w->client, &padding)))
             return -1;
 
-         read_avail  = fifo_read_avail(w->buffer);
+         read_avail  = FIFO_READ_AVAIL(w->buffer);
          write_avail = w->engine_buffer_size - padding * w->frame_size;
          written     = read_avail < write_avail ? read_avail : write_avail;
          if (written)
@@ -706,7 +706,7 @@ static ssize_t wasapi_write_sh_nonblock(wasapi_t *w, const void * data, size_t s
                return -1;
       }
 
-      write_avail = fifo_write_avail(w->buffer);
+      write_avail = FIFO_WRITE_AVAIL(w->buffer);
       written     = size < write_avail ? size : write_avail;
       if (written)
          fifo_write(w->buffer, data, written);
@@ -731,7 +731,7 @@ static ssize_t wasapi_write_sh_nonblock(wasapi_t *w, const void * data, size_t s
 static ssize_t wasapi_write_ex(wasapi_t *w, const void * data, size_t size, DWORD ms)
 {
    ssize_t written    = 0;
-   size_t write_avail = fifo_write_avail(w->buffer);
+   size_t write_avail = FIFO_WRITE_AVAIL(w->buffer);
 
    if (!write_avail)
    {
@@ -890,7 +890,7 @@ static size_t wasapi_write_avail(void *wh)
    UINT32 padding = 0;
 
    if (w->buffer)
-      return fifo_write_avail(w->buffer);
+      return FIFO_WRITE_AVAIL(w->buffer);
 
    if (FAILED(_IAudioClient_GetCurrentPadding(w->client, &padding)))
       return 0;
diff --git a/audio/librsound.c b/audio/librsound.c
index 1f813e6651..fb23914180 100644
--- a/audio/librsound.c
+++ b/audio/librsound.c
@@ -765,13 +765,13 @@ static void rsnd_drain(rsound_t *rd)
       delta /= 1000000;
       /* Calculates the amount of data we have in our virtual buffer. Only used to calculate delay. */
       slock_lock(rd->thread.mutex);
-      rd->bytes_in_buffer = (int)((int64_t)rd->total_written + (int64_t)fifo_read_avail(rd->fifo_buffer) - delta);
+      rd->bytes_in_buffer = (int)((int64_t)rd->total_written + (int64_t)FIFO_READ_AVAIL(rd->fifo_buffer) - delta);
       slock_unlock(rd->thread.mutex);
    }
    else
    {
       slock_lock(rd->thread.mutex);
-      rd->bytes_in_buffer = fifo_read_avail(rd->fifo_buffer);
+      rd->bytes_in_buffer = FIFO_READ_AVAIL(rd->fifo_buffer);
       slock_unlock(rd->thread.mutex);
    }
 }
@@ -789,7 +789,7 @@ static size_t rsnd_fill_buffer(rsound_t *rd, const char *buf, size_t size)
          return 0;
 
       slock_lock(rd->thread.mutex);
-      if ( fifo_write_avail(rd->fifo_buffer) >= size )
+      if (FIFO_WRITE_AVAIL(rd->fifo_buffer) >= size)
       {
          slock_unlock(rd->thread.mutex);
          break;
@@ -886,7 +886,7 @@ static size_t rsnd_get_ptr(rsound_t *rd)
 {
    int ptr;
    slock_lock(rd->thread.mutex);
-   ptr = fifo_read_avail(rd->fifo_buffer);
+   ptr = FIFO_READ_AVAIL(rd->fifo_buffer);
    slock_unlock(rd->thread.mutex);
 
    return ptr;
@@ -1060,7 +1060,7 @@ static int rsnd_update_server_info(rsound_t *rd)
       int delay = rsd_delay(rd);
       int delta = (int)(client_ptr - serv_ptr);
       slock_lock(rd->thread.mutex);
-      delta += fifo_read_avail(rd->fifo_buffer);
+      delta += FIFO_READ_AVAIL(rd->fifo_buffer);
       slock_unlock(rd->thread.mutex);
 
       RSD_DEBUG("[RSound] Delay: %d, Delta: %d.\n", delay, delta);
@@ -1116,7 +1116,7 @@ static void rsnd_thread ( void * thread_data )
 
          /* If the buffer is empty or we've stopped the stream, jump out of this for loop */
          slock_lock(rd->thread.mutex);
-         if ( fifo_read_avail(rd->fifo_buffer) < rd->backend_info.chunk_size || !rd->thread_active )
+         if (FIFO_READ_AVAIL(rd->fifo_buffer) < rd->backend_info.chunk_size || !rd->thread_active)
          {
             slock_unlock(rd->thread.mutex);
             break;
@@ -1382,11 +1382,10 @@ int rsd_exec(rsound_t *rsound)
    fcntl(rsound->conn.socket, F_SETFL, O_NONBLOCK);
 #endif
 
-   // Flush the buffer
-
-   if ( fifo_read_avail(rsound->fifo_buffer) > 0 )
+   /* Flush the buffer */
+   if (FIFO_READ_AVAIL(rsound->fifo_buffer) > 0 )
    {
-      char buffer[fifo_read_avail(rsound->fifo_buffer)];
+      char buffer[FIFO_READ_AVAIL(rsound->fifo_buffer)];
       fifo_read(rsound->fifo_buffer, buffer, sizeof(buffer));
       if ( rsnd_send_chunk(fd, buffer, sizeof(buffer), 1) != (ssize_t)sizeof(buffer) )
       {
diff --git a/cores/libretro-ffmpeg/ffmpeg_core.c b/cores/libretro-ffmpeg/ffmpeg_core.c
index 27753d6a28..b79c356bdd 100644
--- a/cores/libretro-ffmpeg/ffmpeg_core.c
+++ b/cores/libretro-ffmpeg/ffmpeg_core.c
@@ -703,7 +703,7 @@ void CORE_PREFIX(retro_run)(void)
       to_read_bytes = to_read_frames * sizeof(int16_t) * 2;
 
       slock_lock(fifo_lock);
-      while (!decode_thread_dead && fifo_read_avail(audio_decode_fifo) < to_read_bytes)
+      while (!decode_thread_dead && FIFO_READ_AVAIL(audio_decode_fifo) < to_read_bytes)
       {
          main_sleeping = true;
          scond_signal(fifo_decode_cond);
@@ -712,7 +712,7 @@ void CORE_PREFIX(retro_run)(void)
       }
 
       reading_pts  = decode_last_audio_time -
-         (double)fifo_read_avail(audio_decode_fifo) / (media.sample_rate * sizeof(int16_t) * 2);
+         (double)FIFO_READ_AVAIL(audio_decode_fifo) / (media.sample_rate * sizeof(int16_t) * 2);
       expected_pts = (double)audio_frames / media.sample_rate;
       old_pts_bias = pts_bias;
       pts_bias     = reading_pts - expected_pts;
@@ -1574,7 +1574,8 @@ static int16_t *decode_audio(AVCodecContext *ctx, AVPacket *pkt,
       pts = frame->best_effort_timestamp;
       slock_lock(fifo_lock);
 
-      while (!decode_thread_dead && fifo_write_avail(audio_decode_fifo) < required_buffer)
+      while (!decode_thread_dead && 
+            FIFO_WRITE_AVAIL(audio_decode_fifo) < required_buffer)
       {
          if (!main_sleeping)
             scond_wait(fifo_decode_cond, fifo_lock);
diff --git a/gfx/gfx_widgets.c b/gfx/gfx_widgets.c
index 137887a5fe..3085969ece 100644
--- a/gfx/gfx_widgets.c
+++ b/gfx/gfx_widgets.c
@@ -236,7 +236,7 @@ void gfx_widgets_msg_queue_push(
    disp_widget_msg_t    *msg_widget = NULL;
    dispgfx_widget_t *p_dispwidget   = (dispgfx_widget_t*)data;
 
-   if (fifo_write_avail(p_dispwidget->msg_queue) > 0)
+   if (FIFO_WRITE_AVAIL(p_dispwidget->msg_queue) > 0)
    {
       /* Get current msg if it exists */
       if (task && task->frontend_userdata)
@@ -861,7 +861,7 @@ void gfx_widgets_iterate(
    /* Messages queue */
 
    /* Consume one message if available */
-   if ((fifo_read_avail(p_dispwidget->msg_queue) > 0)
+   if ((FIFO_READ_AVAIL(p_dispwidget->msg_queue) > 0)
          && !p_dispwidget->widgets_moving 
          && (p_dispwidget->current_msgs_size < ARRAY_SIZE(p_dispwidget->current_msgs)))
    {
@@ -871,7 +871,7 @@ void gfx_widgets_iterate(
 
       if (p_dispwidget->current_msgs_size < ARRAY_SIZE(p_dispwidget->current_msgs))
       {
-         if (fifo_read_avail(p_dispwidget->msg_queue) > 0)
+         if (FIFO_READ_AVAIL(p_dispwidget->msg_queue) > 0)
             fifo_read(p_dispwidget->msg_queue, &msg_widget, sizeof(msg_widget));
 
          if (msg_widget)
@@ -2078,7 +2078,7 @@ static void gfx_widgets_free(dispgfx_widget_t *p_dispwidget)
    /* Purge everything from the fifo */
    if (p_dispwidget->msg_queue)
    {
-      while (fifo_read_avail(p_dispwidget->msg_queue) > 0)
+      while (FIFO_READ_AVAIL(p_dispwidget->msg_queue) > 0)
       {
          disp_widget_msg_t *msg_widget;
 
diff --git a/input/drivers_hid/libusb_hid.c b/input/drivers_hid/libusb_hid.c
index 97ae624260..6ae2d2a961 100644
--- a/input/drivers_hid/libusb_hid.c
+++ b/input/drivers_hid/libusb_hid.c
@@ -94,13 +94,13 @@ static void adapter_thread(void *data)
       int size = 0;
 
       slock_lock(adapter->send_control_lock);
-      if (fifo_read_avail(adapter->send_control_buffer)
+      if (FIFO_READ_AVAIL(adapter->send_control_buffer)
             >= sizeof(send_command_size))
       {
          fifo_read(adapter->send_control_buffer,
                &send_command_size, sizeof(send_command_size));
 
-         if (fifo_read_avail(adapter->send_control_buffer)
+         if (FIFO_READ_AVAIL(adapter->send_control_buffer)
                >= sizeof(send_command_size))
          {
             fifo_read(adapter->send_control_buffer,
@@ -132,7 +132,7 @@ static void libusb_hid_device_send_control(void *data,
 
    slock_lock(adapter->send_control_lock);
 
-   if (fifo_write_avail(adapter->send_control_buffer) >= size + sizeof(size))
+   if (FIFO_WRITE_AVAIL(adapter->send_control_buffer) >= size + sizeof(size))
    {
       fifo_write(adapter->send_control_buffer, &size, sizeof(size));
       fifo_write(adapter->send_control_buffer, data_buf, size);
diff --git a/libretro-common/include/queues/fifo_queue.h b/libretro-common/include/queues/fifo_queue.h
index f1b36a126a..16bc43bbc6 100644
--- a/libretro-common/include/queues/fifo_queue.h
+++ b/libretro-common/include/queues/fifo_queue.h
@@ -63,15 +63,9 @@ static INLINE void fifo_free(fifo_buffer_t *buffer)
    free(buffer);
 }
 
-static INLINE size_t fifo_read_avail(fifo_buffer_t *buffer)
-{
-   return (buffer->end + ((buffer->end < buffer->first) ? buffer->size : 0)) - buffer->first;
-}
+#define FIFO_READ_AVAIL(buffer) (((buffer)->end + (((buffer)->end < (buffer)->first) ? (buffer)->size : 0)) - (buffer)->first)
 
-static INLINE size_t fifo_write_avail(fifo_buffer_t *buffer)
-{
-   return (buffer->size - 1) - ((buffer->end + ((buffer->end < buffer->first) ? buffer->size : 0)) - buffer->first);
-}
+#define FIFO_WRITE_AVAIL(buffer) (((buffer)->size - 1) - (((buffer)->end + (((buffer)->end < (buffer)->first) ? (buffer)->size : 0)) - (buffer)->first))
 
 RETRO_END_DECLS
 
diff --git a/record/drivers/record_ffmpeg.c b/record/drivers/record_ffmpeg.c
index 4b8672204e..2b6858d8ee 100644
--- a/record/drivers/record_ffmpeg.c
+++ b/record/drivers/record_ffmpeg.c
@@ -1121,7 +1121,7 @@ static bool ffmpeg_push_video(void *data,
       unsigned avail;
 
       slock_lock(handle->lock);
-      avail = fifo_write_avail(handle->attr_fifo);
+      avail = FIFO_WRITE_AVAIL(handle->attr_fifo);
       slock_unlock(handle->lock);
 
       if (!handle->alive)
@@ -1183,7 +1183,7 @@ static bool ffmpeg_push_audio(void *data,
       unsigned avail;
 
       slock_lock(handle->lock);
-      avail = fifo_write_avail(handle->audio_fifo);
+      avail = FIFO_WRITE_AVAIL(handle->audio_fifo);
       slock_unlock(handle->lock);
 
       if (!handle->alive)
@@ -1578,7 +1578,7 @@ static bool ffmpeg_push_audio_thread(ffmpeg_t *handle,
 static void ffmpeg_flush_audio(ffmpeg_t *handle, void *audio_buf,
       size_t audio_buf_size)
 {
-   size_t avail = fifo_read_avail(handle->audio_fifo);
+   size_t avail = FIFO_READ_AVAIL(handle->audio_fifo);
 
    if (avail)
    {
@@ -1624,7 +1624,7 @@ static void ffmpeg_flush_buffers(ffmpeg_t *handle)
 
       if (handle->config.audio_enable)
       {
-         if (fifo_read_avail(handle->audio_fifo) >= audio_buf_size)
+         if (FIFO_READ_AVAIL(handle->audio_fifo) >= audio_buf_size)
          {
             struct record_audio_data aud = {0};
 
@@ -1637,7 +1637,7 @@ static void ffmpeg_flush_buffers(ffmpeg_t *handle)
          }
       }
 
-      if (fifo_read_avail(handle->attr_fifo) >= sizeof(attr_buf))
+      if (FIFO_READ_AVAIL(handle->attr_fifo) >= sizeof(attr_buf))
       {
          fifo_read(handle->attr_fifo, &attr_buf, sizeof(attr_buf));
          fifo_read(handle->video_fifo, video_buf,
@@ -1705,11 +1705,11 @@ static void ffmpeg_thread(void *data)
       bool avail_audio = false;
 
       slock_lock(ff->lock);
-      if (fifo_read_avail(ff->attr_fifo) >= sizeof(attr_buf))
+      if (FIFO_READ_AVAIL(ff->attr_fifo) >= sizeof(attr_buf))
          avail_video = true;
 
       if (ff->config.audio_enable)
-         if (fifo_read_avail(ff->audio_fifo) >= audio_buf_size)
+         if (FIFO_READ_AVAIL(ff->audio_fifo) >= audio_buf_size)
             avail_audio = true;
       slock_unlock(ff->lock);