RetroArch
Classes | Macros | Functions
retro_miscellaneous.h File Reference
#include <stdint.h>
#include <boolean.h>
#include <retro_inline.h>
#include <limits.h>
Include dependency graph for retro_miscellaneous.h:

Go to the source code of this file.

Classes

struct  retro_bits_t
 

Macros

#define RARCH_MAX_SUBSYSTEMS   10
 
#define RARCH_MAX_SUBSYSTEM_ROMS   10
 
#define PATH_MAX_LENGTH   4096
 
#define MAX(a, b)   ((a) > (b) ? (a) : (b))
 
#define MIN(a, b)   ((a) < (b) ? (a) : (b))
 
#define ARRAY_SIZE(a)   (sizeof(a) / sizeof((a)[0]))
 
#define BITS_GET_ELEM(a, i)   ((a).data[i])
 
#define BITS_GET_ELEM_PTR(a, i)   ((a)->data[i])
 
#define BIT_SET(a, bit)   ((a)[(bit) >> 3] |= (1 << ((bit) & 7)))
 
#define BIT_CLEAR(a, bit)   ((a)[(bit) >> 3] &= ~(1 << ((bit) & 7)))
 
#define BIT_GET(a, bit)   (((a)[(bit) >> 3] >> ((bit) & 7)) & 1)
 
#define BIT16_SET(a, bit)   ((a) |= (1 << ((bit) & 15)))
 
#define BIT16_CLEAR(a, bit)   ((a) &= ~(1 << ((bit) & 15)))
 
#define BIT16_GET(a, bit)   (((a) >> ((bit) & 15)) & 1)
 
#define BIT16_CLEAR_ALL(a)   ((a) = 0)
 
#define BIT32_SET(a, bit)   ((a) |= (1 << ((bit) & 31)))
 
#define BIT32_CLEAR(a, bit)   ((a) &= ~(1 << ((bit) & 31)))
 
#define BIT32_GET(a, bit)   (((a) >> ((bit) & 31)) & 1)
 
#define BIT32_CLEAR_ALL(a)   ((a) = 0)
 
#define BIT64_SET(a, bit)   ((a) |= (UINT64_C(1) << ((bit) & 63)))
 
#define BIT64_CLEAR(a, bit)   ((a) &= ~(UINT64_C(1) << ((bit) & 63)))
 
#define BIT64_GET(a, bit)   (((a) >> ((bit) & 63)) & 1)
 
#define BIT64_CLEAR_ALL(a)   ((a) = 0)
 
#define BIT128_SET(a, bit)   ((a).data[(bit) >> 5] |= (1 << ((bit) & 31)))
 
#define BIT128_CLEAR(a, bit)   ((a).data[(bit) >> 5] &= ~(1 << ((bit) & 31)))
 
#define BIT128_GET(a, bit)   (((a).data[(bit) >> 5] >> ((bit) & 31)) & 1)
 
#define BIT128_CLEAR_ALL(a)   memset(&(a), 0, sizeof(a))
 
#define BIT128_SET_PTR(a, bit)   BIT128_SET(*a, bit)
 
#define BIT128_CLEAR_PTR(a, bit)   BIT128_CLEAR(*a, bit)
 
#define BIT128_GET_PTR(a, bit)   BIT128_GET(*a, bit)
 
#define BIT128_CLEAR_ALL_PTR(a)   BIT128_CLEAR_ALL(*a)
 
#define BIT256_SET(a, bit)   BIT128_SET(a, bit)
 
#define BIT256_CLEAR(a, bit)   BIT128_CLEAR(a, bit)
 
#define BIT256_GET(a, bit)   BIT128_GET(a, bit)
 
#define BIT256_CLEAR_ALL(a)   BIT128_CLEAR_ALL(a)
 
#define BIT256_SET_PTR(a, bit)   BIT256_SET(*a, bit)
 
#define BIT256_CLEAR_PTR(a, bit)   BIT256_CLEAR(*a, bit)
 
#define BIT256_GET_PTR(a, bit)   BIT256_GET(*a, bit)
 
#define BIT256_CLEAR_ALL_PTR(a)   BIT256_CLEAR_ALL(*a)
 
#define BITS_COPY16_PTR(a, bits)
 
#define BITS_COPY32_PTR(a, bits)
 
#define PRI_SIZET   "lu"
 

Functions

static INLINE void bits_or_bits (uint32_t *a, uint32_t *b, uint32_t count)
 
static INLINE void bits_clear_bits (uint32_t *a, uint32_t *b, uint32_t count)
 
static INLINE bool bits_any_set (uint32_t *ptr, uint32_t count)
 

Macro Definition Documentation

◆ ARRAY_SIZE

#define ARRAY_SIZE (   a)    (sizeof(a) / sizeof((a)[0]))

◆ BIT128_CLEAR

#define BIT128_CLEAR (   a,
  bit 
)    ((a).data[(bit) >> 5] &= ~(1 << ((bit) & 31)))

◆ BIT128_CLEAR_ALL

#define BIT128_CLEAR_ALL (   a)    memset(&(a), 0, sizeof(a))

◆ BIT128_CLEAR_ALL_PTR

#define BIT128_CLEAR_ALL_PTR (   a)    BIT128_CLEAR_ALL(*a)

◆ BIT128_CLEAR_PTR

#define BIT128_CLEAR_PTR (   a,
  bit 
)    BIT128_CLEAR(*a, bit)

◆ BIT128_GET

#define BIT128_GET (   a,
  bit 
)    (((a).data[(bit) >> 5] >> ((bit) & 31)) & 1)

◆ BIT128_GET_PTR

#define BIT128_GET_PTR (   a,
  bit 
)    BIT128_GET(*a, bit)

◆ BIT128_SET

#define BIT128_SET (   a,
  bit 
)    ((a).data[(bit) >> 5] |= (1 << ((bit) & 31)))

◆ BIT128_SET_PTR

#define BIT128_SET_PTR (   a,
  bit 
)    BIT128_SET(*a, bit)

◆ BIT16_CLEAR

#define BIT16_CLEAR (   a,
  bit 
)    ((a) &= ~(1 << ((bit) & 15)))

◆ BIT16_CLEAR_ALL

#define BIT16_CLEAR_ALL (   a)    ((a) = 0)

◆ BIT16_GET

#define BIT16_GET (   a,
  bit 
)    (((a) >> ((bit) & 15)) & 1)

◆ BIT16_SET

#define BIT16_SET (   a,
  bit 
)    ((a) |= (1 << ((bit) & 15)))

◆ BIT256_CLEAR

#define BIT256_CLEAR (   a,
  bit 
)    BIT128_CLEAR(a, bit)

◆ BIT256_CLEAR_ALL

#define BIT256_CLEAR_ALL (   a)    BIT128_CLEAR_ALL(a)

◆ BIT256_CLEAR_ALL_PTR

#define BIT256_CLEAR_ALL_PTR (   a)    BIT256_CLEAR_ALL(*a)

◆ BIT256_CLEAR_PTR

#define BIT256_CLEAR_PTR (   a,
  bit 
)    BIT256_CLEAR(*a, bit)

◆ BIT256_GET

#define BIT256_GET (   a,
  bit 
)    BIT128_GET(a, bit)

◆ BIT256_GET_PTR

#define BIT256_GET_PTR (   a,
  bit 
)    BIT256_GET(*a, bit)

◆ BIT256_SET

#define BIT256_SET (   a,
  bit 
)    BIT128_SET(a, bit)

◆ BIT256_SET_PTR

#define BIT256_SET_PTR (   a,
  bit 
)    BIT256_SET(*a, bit)

◆ BIT32_CLEAR

#define BIT32_CLEAR (   a,
  bit 
)    ((a) &= ~(1 << ((bit) & 31)))

◆ BIT32_CLEAR_ALL

#define BIT32_CLEAR_ALL (   a)    ((a) = 0)

◆ BIT32_GET

#define BIT32_GET (   a,
  bit 
)    (((a) >> ((bit) & 31)) & 1)

◆ BIT32_SET

#define BIT32_SET (   a,
  bit 
)    ((a) |= (1 << ((bit) & 31)))

◆ BIT64_CLEAR

#define BIT64_CLEAR (   a,
  bit 
)    ((a) &= ~(UINT64_C(1) << ((bit) & 63)))

◆ BIT64_CLEAR_ALL

#define BIT64_CLEAR_ALL (   a)    ((a) = 0)

◆ BIT64_GET

#define BIT64_GET (   a,
  bit 
)    (((a) >> ((bit) & 63)) & 1)

◆ BIT64_SET

#define BIT64_SET (   a,
  bit 
)    ((a) |= (UINT64_C(1) << ((bit) & 63)))

◆ BIT_CLEAR

#define BIT_CLEAR (   a,
  bit 
)    ((a)[(bit) >> 3] &= ~(1 << ((bit) & 7)))

◆ BIT_GET

#define BIT_GET (   a,
  bit 
)    (((a)[(bit) >> 3] >> ((bit) & 7)) & 1)

◆ BIT_SET

#define BIT_SET (   a,
  bit 
)    ((a)[(bit) >> 3] |= (1 << ((bit) & 7)))

◆ BITS_COPY16_PTR

#define BITS_COPY16_PTR (   a,
  bits 
)
Value:
{ \
BIT128_CLEAR_ALL_PTR(a); \
BITS_GET_ELEM_PTR(a, 0) = (bits) & 0xffff; \
}
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
Definition: glext.h:11836
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6844

◆ BITS_COPY32_PTR

#define BITS_COPY32_PTR (   a,
  bits 
)
Value:
{ \
BIT128_CLEAR_ALL_PTR(a); \
BITS_GET_ELEM_PTR(a, 0) = (bits); \
}
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
Definition: glext.h:11836
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6844

◆ BITS_GET_ELEM

#define BITS_GET_ELEM (   a,
 
)    ((a).data[i])

◆ BITS_GET_ELEM_PTR

#define BITS_GET_ELEM_PTR (   a,
 
)    ((a)->data[i])

◆ MAX

#define MAX (   a,
  b 
)    ((a) > (b) ? (a) : (b))

◆ MIN

#define MIN (   a,
  b 
)    ((a) < (b) ? (a) : (b))

◆ PATH_MAX_LENGTH

#define PATH_MAX_LENGTH   4096

◆ PRI_SIZET

#define PRI_SIZET   "lu"

◆ RARCH_MAX_SUBSYSTEM_ROMS

#define RARCH_MAX_SUBSYSTEM_ROMS   10

◆ RARCH_MAX_SUBSYSTEMS

#define RARCH_MAX_SUBSYSTEMS   10

Function Documentation

◆ bits_any_set()

static INLINE bool bits_any_set ( uint32_t ptr,
uint32_t  count 
)
static
Here is the caller graph for this function:

◆ bits_clear_bits()

static INLINE void bits_clear_bits ( uint32_t a,
uint32_t b,
uint32_t  count 
)
static
Here is the caller graph for this function:

◆ bits_or_bits()

static INLINE void bits_or_bits ( uint32_t a,
uint32_t b,
uint32_t  count 
)
static
Here is the caller graph for this function: