Go to the documentation of this file. 37 #define INT_TO_POINTER(i) (void *) i 38 #define POINTER_TO_INT(p) *((int *) (p)) 41 #define ZERO_STRUCT(x) memset((char *)&(x), 0, sizeof(x)) 44 #define ZERO_STRUCTP(x) do { if ((x) != NULL) memset((char *)(x), 0, sizeof(*(x))); } while(0) 47 #define SAFE_FREE(x) do { if ((x) != NULL) {free(x); x=NULL;} } while(0) 50 #define MIN(a,b) ((a) < (b) ? (a) : (b)) 53 #define MAX(a,b) ((a) < (b) ? (b) : (a)) 56 #define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0])) 70 #define discard_const(ptr) ((void *)((uintptr_t)(ptr))) 75 #define discard_const_p(type, ptr) ((type *)discard_const(ptr)) 79 # define likely(x) __builtin_expect(!!(x), 1) 82 # define unlikely(x) __builtin_expect(!!(x), 0) 86 # define likely(x) (x) 89 # define unlikely(x) (x)