/* Copyright 2005 Chris Thomasson */ #if ! defined(HELPER_H_INCLUDED) #define HELPER_H_INCLUDED #if defined(__cplusplus) extern "C" { #endif #include /* size_t, ptrdiff_t */ #include #define ROUNDUP(mp_val, mp_rnd) \ (((mp_val) % (mp_rnd)) ? (mp_val) + ((mp_rnd) - ((mp_val) \ % (mp_rnd))) : (mp_val)) #define ROUNDDOWN(mp_val, mp_rnd) \ (ROUNDUP((mp_val), (mp_rnd)) - (mp_rnd)) #define MEMALIGNSZ(mp_align) \ (((size_t)(mp_align)) - 1) #define MEMALIGNPTR(mp_base, mp_align) \ ((void*)((((ptrdiff_t)(mp_base)) + MEMALIGNSZ(mp_align)) \ & (-((ptrdiff_t)(mp_align))))) #define MEMPADSZ(mp_sz, mp_pad) \ (((size_t)(mp_pad)) - ((size_t)(mp_sz))) #define TYPEPADSZ(mp_type, mp_pad) \ (MEMPADSZ(sizeof(mp_type), (mp_pad))) #if defined(__cplusplus) } #endif #endif