view src/lib/sort.h @ 22656:1789bf2a1e01

director: Make sure HOST-RESET-USERS isn't used with max_moving_users=0 The reset command would just hang in that case. doveadm would never have sent this, so this is just an extra sanity check.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Sun, 05 Nov 2017 23:51:56 +0200
parents 1a5a45c80687
children
line wrap: on
line source

#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