freebsd-skq/contrib/ntp/include/ntp_malloc.h
Cy Schubert 2b15cb3d09 MFV ntp 4.2.8p1 (r258945, r275970, r276091, r276092, r276093, r278284)
Thanks to roberto for providing pointers to wedge this into HEAD.

Approved by:	roberto
2015-03-30 13:30:15 +00:00

62 lines
1.2 KiB
C

/*
* Define malloc and friends.
*/
#ifndef NTP_MALLOC_H
#define NTP_MALLOC_H
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#else
# ifdef HAVE_MALLOC_H
# include <malloc.h>
# endif
#endif
/*
* Deal with platform differences declaring alloca()
* This comes nearly verbatim from:
*
* http://www.gnu.org/software/autoconf/manual/autoconf.html#Particular-Functions
*
* The only modifications were to remove C++ support and guard against
* redefining alloca.
*/
#ifdef HAVE_ALLOCA_H
# include <alloca.h>
#elif defined __GNUC__
# ifndef alloca
# define alloca __builtin_alloca
# endif
#elif defined _AIX
# ifndef alloca
# define alloca __alloca
# endif
#elif defined _MSC_VER
# include <malloc.h>
# ifndef alloca
# define alloca _alloca
# endif
#else
# include <stddef.h>
void * alloca(size_t);
#endif
#ifdef EREALLOC_IMPL
# define EREALLOC_CALLSITE /* preserve __FILE__ and __LINE__ */
#else
# define EREALLOC_IMPL(ptr, newsz, filenm, loc) \
realloc(ptr, (newsz))
#endif
#ifdef HAVE_STRINGS_H
# include <strings.h>
# define zero_mem(p, s) bzero(p, s)
#endif
#ifndef zero_mem
# define zero_mem(p, s) memset(p, 0, s)
#endif
#define ZERO(var) zero_mem(&(var), sizeof(var))
#endif /* NTP_MALLOC_H */