VSF Documented
Macros | Functions
vsf_bitmap.h File Reference
#include "../compiler/compiler.h"

Go to the source code of this file.

Macros

#define __vsf_bitmap(__name)   __name##_bitmap_t
 
#define __vsf_declare_bitmap_ex(__name, __bit_size)
 
#define __vsf_declare_bitmap(__name, __bit_size)    __vsf_declare_bitmap_ex(__vsf_bitmap(__name), __bit_size)
 
#define __vsf_bitmap_get0(__bitmap_ptr, __bit)    (((uintalu_t *)__bitmap_ptr)[(__bit) / __optimal_bit_sz] & ((uintalu_t)1 << ((__bit) & __optimal_bit_msk)))
 
#define __vsf_bitmap_get1(__bitmap_ptr, __bit, __pbit_val)
 
#define __vsf_bitmap_set(__bitmap_ptr, __bit)
 
#define __vsf_bitmap_clear(__bitmap_ptr, __bit)
 
bitmap normal access
#define vsf_bitmap(__name)   __vsf_bitmap(__name)
 
#define vsf_declare_bitmap(__name, __bit_size)    __vsf_declare_bitmap(__name, __bit_size)
 
#define dcl_vsf_bitmap(__name, __bit_size)    vsf_declare_bitmap(__name, __bit_size)
 
#define declare_vsf_bitmap(__name, __bit_size)    vsf_declare_bitmap(__name, __bit_size)
 
#define vsf_bitmap_get(__bitmap_ptr, __bit, ...)    __PLOOC_EVAL(__vsf_bitmap_get, __VA_ARGS__)((__bitmap_ptr), (__bit), ##__VA_ARGS__)
 
#define vsf_bitmap_set(__bitmap_ptr, __bit)    __vsf_bitmap_set((uintalu_t *)(__bitmap_ptr), (__bit))
 
#define vsf_bitmap_clear(__bitmap_ptr, __bit)    __vsf_bitmap_clear((uintalu_t *)(__bitmap_ptr), (__bit))
 
#define vsf_bitmap_set_range(__bitmap_ptr, __begin_bit, __end_bit)    __vsf_bitmap_range_assign((uintalu_t *)(__bitmap_ptr), (__begin_bit), (__end_bit), 1)
 
#define vsf_bitmap_clear_range(__bitmap_ptr, __begin_bit, __end_bit)    __vsf_bitmap_range_assign((uintalu_t *)(__bitmap_ptr), (__begin_bit), (__end_bit), 0)
 
#define vsf_bitmap_reset(__bitmap_ptr, __bit_size)    memset(__bitmap_ptr, 0, ((uint_fast32_t)__bit_size + 7) >> 3)
 
#define vsf_bitmap_ffz(__bitmap_ptr, __bit_size)    __vsf_bitmap_ffz((uintalu_t *)(__bitmap_ptr), (__bit_size))
 
#define vsf_bitmap_ffs(__bitmap_ptr, __bit_size)    __vsf_bitmap_ffs((uintalu_t *)(__bitmap_ptr), (__bit_size))
 

Functions

void __vsf_bitmap_range_assign (uintalu_t *bitmap_ptr, int_fast32_t begin_bit, int_fast32_t end_bit, int_fast32_t value)
 
int_fast32_t __vsf_bitmap_ffz (uintalu_t *bitmap_ptr, int_fast32_t bit_size)
 
int_fast32_t __vsf_bitmap_ffs (uintalu_t *bitmap_ptr, int_fast32_t bit_size)
 

Macro Definition Documentation

◆ __vsf_bitmap

#define __vsf_bitmap (   __name)    __name##_bitmap_t

◆ __vsf_declare_bitmap_ex

#define __vsf_declare_bitmap_ex (   __name,
  __bit_size 
)
Value:
typedef uintalu_t \
__name[((__bit_size) + __optimal_bit_sz - 1) / __optimal_bit_sz];
#define __optimal_bit_sz
Definition type.h:82

◆ __vsf_declare_bitmap

#define __vsf_declare_bitmap (   __name,
  __bit_size 
)     __vsf_declare_bitmap_ex(__vsf_bitmap(__name), __bit_size)

◆ __vsf_bitmap_get0

#define __vsf_bitmap_get0 (   __bitmap_ptr,
  __bit 
)     (((uintalu_t *)__bitmap_ptr)[(__bit) / __optimal_bit_sz] & ((uintalu_t)1 << ((__bit) & __optimal_bit_msk)))

◆ __vsf_bitmap_get1

#define __vsf_bitmap_get1 (   __bitmap_ptr,
  __bit,
  __pbit_val 
)
Value:
do { \
*(&(__bit_val)) = __vsf_bitmap_get0(__bitmap_ptr, __bit); \
} while (0)
#define __vsf_bitmap_get0(__bitmap_ptr, __bit)
Definition vsf_bitmap.h:72

◆ __vsf_bitmap_set

#define __vsf_bitmap_set (   __bitmap_ptr,
  __bit 
)
Value:
do { \
(__bitmap_ptr)[(__bit) / __optimal_bit_sz] |= \
((uintalu_t)1 << ((__bit) & __optimal_bit_msk)); \
} while (0)
#define __optimal_bit_msk
Definition type.h:83
uint_fast8_t uintalu_t
Definition type.h:88

◆ __vsf_bitmap_clear

#define __vsf_bitmap_clear (   __bitmap_ptr,
  __bit 
)
Value:
do { \
(__bitmap_ptr)[(__bit) / __optimal_bit_sz] &= \
~((uintalu_t)1 << ((__bit) & __optimal_bit_msk)); \
} while (0)

◆ vsf_bitmap

#define vsf_bitmap (   __name)    __vsf_bitmap(__name)

◆ vsf_declare_bitmap

#define vsf_declare_bitmap (   __name,
  __bit_size 
)     __vsf_declare_bitmap(__name, __bit_size)

◆ dcl_vsf_bitmap

#define dcl_vsf_bitmap (   __name,
  __bit_size 
)     vsf_declare_bitmap(__name, __bit_size)

◆ declare_vsf_bitmap

#define declare_vsf_bitmap (   __name,
  __bit_size 
)     vsf_declare_bitmap(__name, __bit_size)

◆ vsf_bitmap_get

#define vsf_bitmap_get (   __bitmap_ptr,
  __bit,
  ... 
)     __PLOOC_EVAL(__vsf_bitmap_get, __VA_ARGS__)((__bitmap_ptr), (__bit), ##__VA_ARGS__)

◆ vsf_bitmap_set

#define vsf_bitmap_set (   __bitmap_ptr,
  __bit 
)     __vsf_bitmap_set((uintalu_t *)(__bitmap_ptr), (__bit))

◆ vsf_bitmap_clear

#define vsf_bitmap_clear (   __bitmap_ptr,
  __bit 
)     __vsf_bitmap_clear((uintalu_t *)(__bitmap_ptr), (__bit))

◆ vsf_bitmap_set_range

#define vsf_bitmap_set_range (   __bitmap_ptr,
  __begin_bit,
  __end_bit 
)     __vsf_bitmap_range_assign((uintalu_t *)(__bitmap_ptr), (__begin_bit), (__end_bit), 1)

◆ vsf_bitmap_clear_range

#define vsf_bitmap_clear_range (   __bitmap_ptr,
  __begin_bit,
  __end_bit 
)     __vsf_bitmap_range_assign((uintalu_t *)(__bitmap_ptr), (__begin_bit), (__end_bit), 0)

◆ vsf_bitmap_reset

#define vsf_bitmap_reset (   __bitmap_ptr,
  __bit_size 
)     memset(__bitmap_ptr, 0, ((uint_fast32_t)__bit_size + 7) >> 3)

◆ vsf_bitmap_ffz

#define vsf_bitmap_ffz (   __bitmap_ptr,
  __bit_size 
)     __vsf_bitmap_ffz((uintalu_t *)(__bitmap_ptr), (__bit_size))

◆ vsf_bitmap_ffs

#define vsf_bitmap_ffs (   __bitmap_ptr,
  __bit_size 
)     __vsf_bitmap_ffs((uintalu_t *)(__bitmap_ptr), (__bit_size))

Function Documentation

◆ __vsf_bitmap_range_assign()

void __vsf_bitmap_range_assign ( uintalu_t bitmap_ptr,
int_fast32_t  begin_bit,
int_fast32_t  end_bit,
int_fast32_t  value 
)
extern

◆ __vsf_bitmap_ffz()

int_fast32_t __vsf_bitmap_ffz ( uintalu_t bitmap_ptr,
int_fast32_t  bit_size 
)
extern

◆ __vsf_bitmap_ffs()

int_fast32_t __vsf_bitmap_ffs ( uintalu_t bitmap_ptr,
int_fast32_t  bit_size 
)
extern