From 8bdc2e4929068210d523c34c0b171b51ce96057f Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sun, 16 Jan 2022 19:58:57 +0100 Subject: First commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- common.h | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 common.h (limited to 'common.h') diff --git a/common.h b/common.h new file mode 100644 index 0000000..dd6f6c1 --- /dev/null +++ b/common.h @@ -0,0 +1,64 @@ +/* See LICENSE file for copyright and license details. */ +#include "libar2.h" + +#include +#include +#include +#include +#include +#include + +#include + + +#ifndef UINT_LEAST32_C +# ifdef UINT32_C +# define UINT_LEAST32_C(V) UINT32_C(V) +# else +# define UINT_LEAST32_C(V) V##UL +# endif +#endif + +#ifndef UINT_LEAST64_C +# ifdef UINT64_C +# define UINT_LEAST64_C(V) UINT64_C(V) +# else +# define UINT_LEAST64_C(V) V##ULL +# endif +#endif + + +#ifndef CACHE_LINE_SIZE +# define CACHE_LINE_SIZE 256 /* better with larger than actual than smaller than actual */ +#endif + + +#ifndef ALIGNOF +# ifdef __STDC_VERSION__ +# if __STDC_VERSION__ >= 201112L +# define ALIGNOF(X) _Alignof(X) +# endif +# endif +#endif +#ifndef ALIGNOF +# ifdef __GNUC__ +# define ALIGNOF(X) __alignof__(X) +# else +# define ALIGNOF(X) sizeof(X) +# endif +#endif + +#define ELEMSOF(ARR) (sizeof(ARR) / sizeof(*(ARR))) + +#define MAX(A, B) ((A) > (B) ? (A) : (B)) +#define MIN(A, B) ((A) < (B) ? (A) : (B)) + + +#define ERASE(PTR, N) libar2_earse(PTR, N) +#define ERASE_ARRAY(ARR) ERASE(ARR, sizeof(ARR)) +#define ERASE_STRUCT(S) ERASE(&(S), sizeof(S)) + + +struct block { + uint_least64_t w[1024 / (64 / 8)]; +}; -- cgit v1.2.3-70-g09d2