#ifndef UTIL_H #define UTIL_H #include /* This is commonly used, so put here for easy access. */ #define MYALLOC(TYPE, LEN) (TYPE*)malloc(sizeof(TYPE) * (LEN)) typedef long DATA; typedef long NUM; typedef unsigned long long UNUM; /* definitely bigger than size_t */ #define HC_ATTR __attribute__((__hot__, __const__)) #define H_ATTR __attribute__((__hot__)) #define P_ATTR __attribute__((__pure__)) #define UNUSED __attribute__((__unused__)) #define U_ATTR UNUSED #define D_ATTR(X) __attribute__((__unused__, __deprecated__("This is deprecated.\n" \ "Please use " X \ " instead"))) #define UD_ATTR __attribute__((__unused__, __deprecated__)) #define UC_ATTR __attribute__((__unused__, __const__)) #define UH_ATTR __attribute__((__unused__, __hot__)) #define UHP_ATTR __attribute__((__unused__, __hot__, __pure__)) #define eprintf(...) fprintf(stderr, __VA_ARGS__) #endif