| Index: third_party/talloc/libreplace/replace.h
|
| diff --git a/third_party/talloc/libreplace/replace.h b/third_party/talloc/libreplace/replace.h
|
| deleted file mode 100644
|
| index 6424d10c0f9b9ed6f53f1740be6c97cf020e747b..0000000000000000000000000000000000000000
|
| --- a/third_party/talloc/libreplace/replace.h
|
| +++ /dev/null
|
| @@ -1,726 +0,0 @@
|
| -/*
|
| - Unix SMB/CIFS implementation.
|
| -
|
| - macros to go along with the lib/replace/ portability layer code
|
| -
|
| - Copyright (C) Andrew Tridgell 2005
|
| - Copyright (C) Jelmer Vernooij 2006-2008
|
| - Copyright (C) Jeremy Allison 2007.
|
| -
|
| - ** NOTE! The following LGPL license applies to the replace
|
| - ** library. This does NOT imply that all of Samba is released
|
| - ** under the LGPL
|
| -
|
| - This library is free software; you can redistribute it and/or
|
| - modify it under the terms of the GNU Lesser General Public
|
| - License as published by the Free Software Foundation; either
|
| - version 3 of the License, or (at your option) any later version.
|
| -
|
| - This library is distributed in the hope that it will be useful,
|
| - but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
| - Lesser General Public License for more details.
|
| -
|
| - You should have received a copy of the GNU Lesser General Public
|
| - License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
| -*/
|
| -
|
| -#ifndef _LIBREPLACE_REPLACE_H
|
| -#define _LIBREPLACE_REPLACE_H
|
| -
|
| -#ifndef NO_CONFIG_H
|
| -#include "config.h"
|
| -#endif
|
| -
|
| -#ifdef HAVE_STANDARDS_H
|
| -#include <standards.h>
|
| -#endif
|
| -
|
| -#include <stdio.h>
|
| -#include <stdlib.h>
|
| -#include <stdarg.h>
|
| -#include <errno.h>
|
| -
|
| -#if defined(_MSC_VER) || defined(__MINGW32__)
|
| -#include "win32_replace.h"
|
| -#endif
|
| -
|
| -
|
| -#ifdef HAVE_STDINT_H
|
| -#include <stdint.h>
|
| -/* force off HAVE_INTTYPES_H so that roken doesn't try to include both,
|
| - which causes a warning storm on irix */
|
| -#undef HAVE_INTTYPES_H
|
| -#elif HAVE_INTTYPES_H
|
| -#define __STDC_FORMAT_MACROS
|
| -#include <inttypes.h>
|
| -#endif
|
| -
|
| -#ifndef __PRI64_PREFIX
|
| -# if __WORDSIZE == 64
|
| -# define __PRI64_PREFIX "l"
|
| -# else
|
| -# define __PRI64_PREFIX "ll"
|
| -# endif
|
| -#endif
|
| -
|
| -/* Decimal notation. */
|
| -#ifndef PRId8
|
| -# define PRId8 "d"
|
| -#endif
|
| -#ifndef PRId16
|
| -# define PRId16 "d"
|
| -#endif
|
| -#ifndef PRId32
|
| -# define PRId32 "d"
|
| -#endif
|
| -#ifndef PRId64
|
| -# define PRId64 __PRI64_PREFIX "d"
|
| -#endif
|
| -
|
| -#ifndef PRIi8
|
| -# define PRIi8 "i"
|
| -#endif
|
| -#ifndef PRIi8
|
| -# define PRIi16 "i"
|
| -#endif
|
| -#ifndef PRIi8
|
| -# define PRIi32 "i"
|
| -#endif
|
| -#ifndef PRIi8
|
| -# define PRIi64 __PRI64_PREFIX "i"
|
| -#endif
|
| -
|
| -#ifndef PRIu8
|
| -# define PRIu8 "u"
|
| -#endif
|
| -#ifndef PRIu16
|
| -# define PRIu16 "u"
|
| -#endif
|
| -#ifndef PRIu32
|
| -# define PRIu32 "u"
|
| -#endif
|
| -#ifndef PRIu64
|
| -# define PRIu64 __PRI64_PREFIX "u"
|
| -#endif
|
| -
|
| -#ifdef HAVE_STRING_H
|
| -#include <string.h>
|
| -#endif
|
| -
|
| -#ifdef HAVE_STRINGS_H
|
| -#include <strings.h>
|
| -#endif
|
| -
|
| -#ifdef HAVE_SYS_TYPES_H
|
| -#include <sys/types.h>
|
| -#endif
|
| -
|
| -#if STDC_HEADERS
|
| -#include <stdlib.h>
|
| -#include <stddef.h>
|
| -#endif
|
| -
|
| -#ifndef HAVE_STRERROR
|
| -extern char *sys_errlist[];
|
| -#define strerror(i) sys_errlist[i]
|
| -#endif
|
| -
|
| -#ifndef HAVE_ERRNO_DECL
|
| -extern int errno;
|
| -#endif
|
| -
|
| -#ifndef HAVE_STRDUP
|
| -#define strdup rep_strdup
|
| -char *rep_strdup(const char *s);
|
| -#endif
|
| -
|
| -#ifndef HAVE_MEMMOVE
|
| -#define memmove rep_memmove
|
| -void *rep_memmove(void *dest,const void *src,int size);
|
| -#endif
|
| -
|
| -#ifndef HAVE_MKTIME
|
| -#define mktime rep_mktime
|
| -/* prototype is in "system/time.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_TIMEGM
|
| -#define timegm rep_timegm
|
| -/* prototype is in "system/time.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_UTIME
|
| -#define utime rep_utime
|
| -/* prototype is in "system/time.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_UTIMES
|
| -#define utimes rep_utimes
|
| -/* prototype is in "system/time.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_STRLCPY
|
| -#define strlcpy rep_strlcpy
|
| -size_t rep_strlcpy(char *d, const char *s, size_t bufsize);
|
| -#endif
|
| -
|
| -#ifndef HAVE_STRLCAT
|
| -#define strlcat rep_strlcat
|
| -size_t rep_strlcat(char *d, const char *s, size_t bufsize);
|
| -#endif
|
| -
|
| -#if (defined(BROKEN_STRNDUP) || !defined(HAVE_STRNDUP))
|
| -#undef HAVE_STRNDUP
|
| -#define strndup rep_strndup
|
| -char *rep_strndup(const char *s, size_t n);
|
| -#endif
|
| -
|
| -#if (defined(BROKEN_STRNLEN) || !defined(HAVE_STRNLEN))
|
| -#undef HAVE_STRNLEN
|
| -#define strnlen rep_strnlen
|
| -size_t rep_strnlen(const char *s, size_t n);
|
| -#endif
|
| -
|
| -#if !HAVE_DECL_ENVIRON
|
| -#ifdef __APPLE__
|
| -#include <crt_externs.h>
|
| -#define environ (*_NSGetEnviron())
|
| -#else
|
| -extern char **environ;
|
| -#endif
|
| -#endif
|
| -
|
| -#ifndef HAVE_SETENV
|
| -#define setenv rep_setenv
|
| -int rep_setenv(const char *name, const char *value, int overwrite);
|
| -#else
|
| -#ifndef HAVE_SETENV_DECL
|
| -int setenv(const char *name, const char *value, int overwrite);
|
| -#endif
|
| -#endif
|
| -
|
| -#ifndef HAVE_UNSETENV
|
| -#define unsetenv rep_unsetenv
|
| -int rep_unsetenv(const char *name);
|
| -#endif
|
| -
|
| -#ifndef HAVE_SETEUID
|
| -#define seteuid rep_seteuid
|
| -int rep_seteuid(uid_t);
|
| -#endif
|
| -
|
| -#ifndef HAVE_SETEGID
|
| -#define setegid rep_setegid
|
| -int rep_setegid(gid_t);
|
| -#endif
|
| -
|
| -#if (defined(USE_SETRESUID) && !defined(HAVE_SETRESUID_DECL))
|
| -/* stupid glibc */
|
| -int setresuid(uid_t ruid, uid_t euid, uid_t suid);
|
| -#endif
|
| -#if (defined(USE_SETRESUID) && !defined(HAVE_SETRESGID_DECL))
|
| -int setresgid(gid_t rgid, gid_t egid, gid_t sgid);
|
| -#endif
|
| -
|
| -#ifndef HAVE_CHOWN
|
| -#define chown rep_chown
|
| -int rep_chown(const char *path, uid_t uid, gid_t gid);
|
| -#endif
|
| -
|
| -#ifndef HAVE_CHROOT
|
| -#define chroot rep_chroot
|
| -int rep_chroot(const char *dirname);
|
| -#endif
|
| -
|
| -#ifndef HAVE_LINK
|
| -#define link rep_link
|
| -int rep_link(const char *oldpath, const char *newpath);
|
| -#endif
|
| -
|
| -#ifndef HAVE_READLINK
|
| -#define readlink rep_readlink
|
| -ssize_t rep_readlink(const char *path, char *buf, size_t bufsize);
|
| -#endif
|
| -
|
| -#ifndef HAVE_SYMLINK
|
| -#define symlink rep_symlink
|
| -int rep_symlink(const char *oldpath, const char *newpath);
|
| -#endif
|
| -
|
| -#ifndef HAVE_REALPATH
|
| -#define realpath rep_realpath
|
| -char *rep_realpath(const char *path, char *resolved_path);
|
| -#endif
|
| -
|
| -#ifndef HAVE_LCHOWN
|
| -#define lchown rep_lchown
|
| -int rep_lchown(const char *fname,uid_t uid,gid_t gid);
|
| -#endif
|
| -
|
| -#ifdef HAVE_UNIX_H
|
| -#include <unix.h>
|
| -#endif
|
| -
|
| -#ifndef HAVE_SETLINEBUF
|
| -#define setlinebuf rep_setlinebuf
|
| -void rep_setlinebuf(FILE *);
|
| -#endif
|
| -
|
| -#ifndef HAVE_STRCASESTR
|
| -#define strcasestr rep_strcasestr
|
| -char *rep_strcasestr(const char *haystack, const char *needle);
|
| -#endif
|
| -
|
| -#ifndef HAVE_STRTOK_R
|
| -#define strtok_r rep_strtok_r
|
| -char *rep_strtok_r(char *s, const char *delim, char **save_ptr);
|
| -#endif
|
| -
|
| -#ifndef HAVE_STRTOLL
|
| -#define strtoll rep_strtoll
|
| -long long int rep_strtoll(const char *str, char **endptr, int base);
|
| -#endif
|
| -
|
| -#ifndef HAVE_STRTOULL
|
| -#define strtoull rep_strtoull
|
| -unsigned long long int rep_strtoull(const char *str, char **endptr, int base);
|
| -#endif
|
| -
|
| -#ifndef HAVE_FTRUNCATE
|
| -#define ftruncate rep_ftruncate
|
| -int rep_ftruncate(int,off_t);
|
| -#endif
|
| -
|
| -#ifndef HAVE_INITGROUPS
|
| -#define initgroups rep_initgroups
|
| -int rep_initgroups(char *name, gid_t id);
|
| -#endif
|
| -
|
| -#if !defined(HAVE_BZERO) && defined(HAVE_MEMSET)
|
| -#define bzero(a,b) memset((a),'\0',(b))
|
| -#endif
|
| -
|
| -#ifndef HAVE_DLERROR
|
| -#define dlerror rep_dlerror
|
| -char *rep_dlerror(void);
|
| -#endif
|
| -
|
| -#ifndef HAVE_DLOPEN
|
| -#define dlopen rep_dlopen
|
| -#ifdef DLOPEN_TAKES_UNSIGNED_FLAGS
|
| -void *rep_dlopen(const char *name, unsigned int flags);
|
| -#else
|
| -void *rep_dlopen(const char *name, int flags);
|
| -#endif
|
| -#endif
|
| -
|
| -#ifndef HAVE_DLSYM
|
| -#define dlsym rep_dlsym
|
| -void *rep_dlsym(void *handle, const char *symbol);
|
| -#endif
|
| -
|
| -#ifndef HAVE_DLCLOSE
|
| -#define dlclose rep_dlclose
|
| -int rep_dlclose(void *handle);
|
| -#endif
|
| -
|
| -#ifndef HAVE_SOCKETPAIR
|
| -#define socketpair rep_socketpair
|
| -/* prototype is in system/network.h */
|
| -#endif
|
| -
|
| -#ifndef PRINTF_ATTRIBUTE
|
| -#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )
|
| -/** Use gcc attribute to check printf fns. a1 is the 1-based index of
|
| - * the parameter containing the format, and a2 the index of the first
|
| - * argument. Note that some gcc 2.x versions don't handle this
|
| - * properly **/
|
| -#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (__printf__, a1, a2)))
|
| -#else
|
| -#define PRINTF_ATTRIBUTE(a1, a2)
|
| -#endif
|
| -#endif
|
| -
|
| -#ifndef _DEPRECATED_
|
| -#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )
|
| -#define _DEPRECATED_ __attribute__ ((deprecated))
|
| -#else
|
| -#define _DEPRECATED_
|
| -#endif
|
| -#endif
|
| -
|
| -#ifndef HAVE_VASPRINTF
|
| -#define vasprintf rep_vasprintf
|
| -int rep_vasprintf(char **ptr, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);
|
| -#endif
|
| -
|
| -#if !defined(HAVE_SNPRINTF) || !defined(HAVE_C99_VSNPRINTF)
|
| -#define snprintf rep_snprintf
|
| -int rep_snprintf(char *,size_t ,const char *, ...) PRINTF_ATTRIBUTE(3,4);
|
| -#endif
|
| -
|
| -#if !defined(HAVE_VSNPRINTF) || !defined(HAVE_C99_VSNPRINTF)
|
| -#define vsnprintf rep_vsnprintf
|
| -int rep_vsnprintf(char *,size_t ,const char *, va_list ap) PRINTF_ATTRIBUTE(3,0);
|
| -#endif
|
| -
|
| -#ifndef HAVE_ASPRINTF
|
| -#define asprintf rep_asprintf
|
| -int rep_asprintf(char **,const char *, ...) PRINTF_ATTRIBUTE(2,3);
|
| -#endif
|
| -
|
| -#ifndef HAVE_VSYSLOG
|
| -#ifdef HAVE_SYSLOG
|
| -#define vsyslog rep_vsyslog
|
| -void rep_vsyslog (int facility_priority, const char *format, va_list arglist) PRINTF_ATTRIBUTE(2,0);
|
| -#endif
|
| -#endif
|
| -
|
| -/* we used to use these fns, but now we have good replacements
|
| - for snprintf and vsnprintf */
|
| -#define slprintf snprintf
|
| -
|
| -
|
| -#ifndef HAVE_VA_COPY
|
| -#undef va_copy
|
| -#ifdef HAVE___VA_COPY
|
| -#define va_copy(dest, src) __va_copy(dest, src)
|
| -#else
|
| -#define va_copy(dest, src) (dest) = (src)
|
| -#endif
|
| -#endif
|
| -
|
| -#ifndef HAVE_VOLATILE
|
| -#define volatile
|
| -#endif
|
| -
|
| -#ifndef HAVE_COMPARISON_FN_T
|
| -typedef int (*comparison_fn_t)(const void *, const void *);
|
| -#endif
|
| -
|
| -#ifdef REPLACE_STRPTIME
|
| -#define strptime rep_strptime
|
| -struct tm;
|
| -char *rep_strptime(const char *buf, const char *format, struct tm *tm);
|
| -#endif
|
| -
|
| -#ifndef HAVE_DUP2
|
| -#define dup2 rep_dup2
|
| -int rep_dup2(int oldfd, int newfd);
|
| -#endif
|
| -
|
| -/* Load header file for dynamic linking stuff */
|
| -#ifdef HAVE_DLFCN_H
|
| -#include <dlfcn.h>
|
| -#endif
|
| -
|
| -#ifndef RTLD_LAZY
|
| -#define RTLD_LAZY 0
|
| -#endif
|
| -#ifndef RTLD_NOW
|
| -#define RTLD_NOW 0
|
| -#endif
|
| -#ifndef RTLD_GLOBAL
|
| -#define RTLD_GLOBAL 0
|
| -#endif
|
| -
|
| -#ifndef HAVE_SECURE_MKSTEMP
|
| -#define mkstemp(path) rep_mkstemp(path)
|
| -int rep_mkstemp(char *temp);
|
| -#endif
|
| -
|
| -#ifndef HAVE_MKDTEMP
|
| -#define mkdtemp rep_mkdtemp
|
| -char *rep_mkdtemp(char *template);
|
| -#endif
|
| -
|
| -#ifndef HAVE_PREAD
|
| -#define pread rep_pread
|
| -ssize_t rep_pread(int __fd, void *__buf, size_t __nbytes, off_t __offset);
|
| -#define LIBREPLACE_PREAD_REPLACED 1
|
| -#else
|
| -#define LIBREPLACE_PREAD_NOT_REPLACED 1
|
| -#endif
|
| -
|
| -#ifndef HAVE_PWRITE
|
| -#define pwrite rep_pwrite
|
| -ssize_t rep_pwrite(int __fd, const void *__buf, size_t __nbytes, off_t __offset);
|
| -#define LIBREPLACE_PWRITE_REPLACED 1
|
| -#else
|
| -#define LIBREPLACE_PWRITE_NOT_REPLACED 1
|
| -#endif
|
| -
|
| -#if !defined(HAVE_INET_NTOA) || defined(REPLACE_INET_NTOA)
|
| -#define inet_ntoa rep_inet_ntoa
|
| -/* prototype is in "system/network.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_INET_PTON
|
| -#define inet_pton rep_inet_pton
|
| -/* prototype is in "system/network.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_INET_NTOP
|
| -#define inet_ntop rep_inet_ntop
|
| -/* prototype is in "system/network.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_INET_ATON
|
| -#define inet_aton rep_inet_aton
|
| -/* prototype is in "system/network.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_CONNECT
|
| -#define connect rep_connect
|
| -/* prototype is in "system/network.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_GETHOSTBYNAME
|
| -#define gethostbyname rep_gethostbyname
|
| -/* prototype is in "system/network.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_GETIFADDRS
|
| -#define getifaddrs rep_getifaddrs
|
| -/* prototype is in "system/network.h" */
|
| -#endif
|
| -
|
| -#ifndef HAVE_FREEIFADDRS
|
| -#define freeifaddrs rep_freeifaddrs
|
| -/* prototype is in "system/network.h" */
|
| -#endif
|
| -
|
| -#ifdef HAVE_LIMITS_H
|
| -#include <limits.h>
|
| -#endif
|
| -
|
| -#ifdef HAVE_SYS_PARAM_H
|
| -#include <sys/param.h>
|
| -#endif
|
| -
|
| -/* The extra casts work around common compiler bugs. */
|
| -#define _TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
|
| -/* The outer cast is needed to work around a bug in Cray C 5.0.3.0.
|
| - It is necessary at least when t == time_t. */
|
| -#define _TYPE_MINIMUM(t) ((t) (_TYPE_SIGNED (t) \
|
| - ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0))
|
| -#define _TYPE_MAXIMUM(t) ((t) (~ (t) 0 - _TYPE_MINIMUM (t)))
|
| -
|
| -#ifndef UINT16_MAX
|
| -#define UINT16_MAX 65535
|
| -#endif
|
| -
|
| -#ifndef UINT32_MAX
|
| -#define UINT32_MAX (4294967295U)
|
| -#endif
|
| -
|
| -#ifndef UINT64_MAX
|
| -#define UINT64_MAX ((uint64_t)-1)
|
| -#endif
|
| -
|
| -#ifndef CHAR_BIT
|
| -#define CHAR_BIT 8
|
| -#endif
|
| -
|
| -#ifndef INT32_MAX
|
| -#define INT32_MAX _TYPE_MAXIMUM(int32_t)
|
| -#endif
|
| -
|
| -#ifdef HAVE_STDBOOL_H
|
| -#include <stdbool.h>
|
| -#endif
|
| -
|
| -#if !defined(HAVE_BOOL)
|
| -#ifdef HAVE__Bool
|
| -#define bool _Bool
|
| -#else
|
| -typedef int bool;
|
| -#endif
|
| -#endif
|
| -
|
| -#if !defined(HAVE_INTPTR_T)
|
| -typedef long long intptr_t ;
|
| -#endif
|
| -
|
| -#if !defined(HAVE_UINTPTR_T)
|
| -typedef unsigned long long uintptr_t ;
|
| -#endif
|
| -
|
| -#if !defined(HAVE_PTRDIFF_T)
|
| -typedef unsigned long long ptrdiff_t ;
|
| -#endif
|
| -
|
| -/*
|
| - * to prevent <rpcsvc/yp_prot.h> from doing a redefine of 'bool'
|
| - *
|
| - * IRIX, HPUX, MacOS 10 and Solaris need BOOL_DEFINED
|
| - * Tru64 needs _BOOL_EXISTS
|
| - * AIX needs _BOOL,_TRUE,_FALSE
|
| - */
|
| -#ifndef BOOL_DEFINED
|
| -#define BOOL_DEFINED
|
| -#endif
|
| -#ifndef _BOOL_EXISTS
|
| -#define _BOOL_EXISTS
|
| -#endif
|
| -#ifndef _BOOL
|
| -#define _BOOL
|
| -#endif
|
| -
|
| -#ifndef __bool_true_false_are_defined
|
| -#define __bool_true_false_are_defined
|
| -#endif
|
| -
|
| -#ifndef true
|
| -#define true (1)
|
| -#endif
|
| -#ifndef false
|
| -#define false (0)
|
| -#endif
|
| -
|
| -#ifndef _TRUE
|
| -#define _TRUE true
|
| -#endif
|
| -#ifndef _FALSE
|
| -#define _FALSE false
|
| -#endif
|
| -
|
| -#ifndef HAVE_FUNCTION_MACRO
|
| -#ifdef HAVE_func_MACRO
|
| -#define __FUNCTION__ __func__
|
| -#else
|
| -#define __FUNCTION__ ("")
|
| -#endif
|
| -#endif
|
| -
|
| -
|
| -#ifndef MIN
|
| -#define MIN(a,b) ((a)<(b)?(a):(b))
|
| -#endif
|
| -
|
| -#ifndef MAX
|
| -#define MAX(a,b) ((a)>(b)?(a):(b))
|
| -#endif
|
| -
|
| -#if !defined(HAVE_VOLATILE)
|
| -#define volatile
|
| -#endif
|
| -
|
| -/**
|
| - this is a warning hack. The idea is to use this everywhere that we
|
| - get the "discarding const" warning from gcc. That doesn't actually
|
| - fix the problem of course, but it means that when we do get to
|
| - cleaning them up we can do it by searching the code for
|
| - discard_const.
|
| -
|
| - It also means that other error types aren't as swamped by the noise
|
| - of hundreds of const warnings, so we are more likely to notice when
|
| - we get new errors.
|
| -
|
| - Please only add more uses of this macro when you find it
|
| - _really_ hard to fix const warnings. Our aim is to eventually use
|
| - this function in only a very few places.
|
| -
|
| - Also, please call this via the discard_const_p() macro interface, as that
|
| - makes the return type safe.
|
| -*/
|
| -#define discard_const(ptr) ((void *)((uintptr_t)(ptr)))
|
| -
|
| -/** Type-safe version of discard_const */
|
| -#define discard_const_p(type, ptr) ((type *)discard_const(ptr))
|
| -
|
| -#ifndef __STRING
|
| -#define __STRING(x) #x
|
| -#endif
|
| -
|
| -#ifndef __STRINGSTRING
|
| -#define __STRINGSTRING(x) __STRING(x)
|
| -#endif
|
| -
|
| -#ifndef __LINESTR__
|
| -#define __LINESTR__ __STRINGSTRING(__LINE__)
|
| -#endif
|
| -
|
| -#ifndef __location__
|
| -#define __location__ __FILE__ ":" __LINESTR__
|
| -#endif
|
| -
|
| -/**
|
| - * zero a structure
|
| - */
|
| -#define ZERO_STRUCT(x) memset((char *)&(x), 0, sizeof(x))
|
| -
|
| -/**
|
| - * zero a structure given a pointer to the structure
|
| - */
|
| -#define ZERO_STRUCTP(x) do { if ((x) != NULL) memset((char *)(x), 0, sizeof(*(x))); } while(0)
|
| -
|
| -/**
|
| - * zero a structure given a pointer to the structure - no zero check
|
| - */
|
| -#define ZERO_STRUCTPN(x) memset((char *)(x), 0, sizeof(*(x)))
|
| -
|
| -/* zero an array - note that sizeof(array) must work - ie. it must not be a
|
| - pointer */
|
| -#define ZERO_ARRAY(x) memset((char *)(x), 0, sizeof(x))
|
| -
|
| -/**
|
| - * work out how many elements there are in a static array
|
| - */
|
| -#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
|
| -
|
| -/**
|
| - * pointer difference macro
|
| - */
|
| -#define PTR_DIFF(p1,p2) ((ptrdiff_t)(((const char *)(p1)) - (const char *)(p2)))
|
| -
|
| -#if MMAP_BLACKLIST
|
| -#undef HAVE_MMAP
|
| -#endif
|
| -
|
| -#ifdef __COMPAR_FN_T
|
| -#define QSORT_CAST (__compar_fn_t)
|
| -#endif
|
| -
|
| -#ifndef QSORT_CAST
|
| -#define QSORT_CAST (int (*)(const void *, const void *))
|
| -#endif
|
| -
|
| -#ifndef PATH_MAX
|
| -#define PATH_MAX 1024
|
| -#endif
|
| -
|
| -#ifndef MAX_DNS_NAME_LENGTH
|
| -#define MAX_DNS_NAME_LENGTH 256 /* Actually 255 but +1 for terminating null. */
|
| -#endif
|
| -
|
| -#ifndef HAVE_CRYPT
|
| -char *ufc_crypt(const char *key, const char *salt);
|
| -#define crypt ufc_crypt
|
| -#else
|
| -#ifdef HAVE_CRYPT_H
|
| -#include <crypt.h>
|
| -#endif
|
| -#endif
|
| -
|
| -/* these macros gain us a few percent of speed on gcc */
|
| -#if (__GNUC__ >= 3)
|
| -/* the strange !! is to ensure that __builtin_expect() takes either 0 or 1
|
| - as its first argument */
|
| -#ifndef likely
|
| -#define likely(x) __builtin_expect(!!(x), 1)
|
| -#endif
|
| -#ifndef unlikely
|
| -#define unlikely(x) __builtin_expect(!!(x), 0)
|
| -#endif
|
| -#else
|
| -#ifndef likely
|
| -#define likely(x) (x)
|
| -#endif
|
| -#ifndef unlikely
|
| -#define unlikely(x) (x)
|
| -#endif
|
| -#endif
|
| -
|
| -#endif /* _LIBREPLACE_REPLACE_H */
|
|
|