freebsd-dev/contrib/ntp/include/ntp_malloc.h

62 lines
1.2 KiB
C
Raw Normal View History

1999-12-09 13:01:21 +00:00
/*
* Define malloc and friends.
*/
#ifndef NTP_MALLOC_H
#define NTP_MALLOC_H
1999-12-09 13:01:21 +00:00
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#else
1999-12-09 13:01:21 +00:00
# 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))
1999-12-09 13:01:21 +00:00
#endif /* NTP_MALLOC_H */