| Current File : //usr/local/include/dovecot/sort.h |
#ifndef SORT_H
#define SORT_H
#define INTEGER_CMP(name, type) \
static inline int name(const type *i1, const type *i2) \
{ \
if (*i1 < *i2) \
return -1; \
else if (*i1 > *i2) \
return 1; \
else \
return 0; \
}
INTEGER_CMP(uint64_cmp, uint64_t)
INTEGER_CMP(uint32_cmp, uint32_t)
#define i_qsort(base, nmemb, size, cmp) \
qsort(base, nmemb, size + \
CALLBACK_TYPECHECK(cmp, int (*)(typeof(const typeof(*base) *), \
typeof(const typeof(*base) *))), \
(int (*)(const void *, const void *))cmp)
#endif