Imported from ../bash-2.05a.tar.gz.
[platform/upstream/bash.git] / lib / malloc / imalloc.h
1 /* imalloc.h -- internal malloc definitions shared by source files. */
2
3 /* Copyright (C) 2001 Free Software Foundation, Inc.
4
5    This file is part of GNU Bash, the Bourne Again SHell.
6
7    Bash is free software; you can redistribute it and/or modify it under
8    the terms of the GNU General Public License as published by the Free
9    Software Foundation; either version 2, or (at your option) any later
10    version.
11
12    Bash is distributed in the hope that it will be useful, but WITHOUT ANY
13    WARRANTY; without even the implied warranty of MERCHANTABILITY or
14    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15    for more details.
16
17    You should have received a copy of the GNU General Public License along
18    with Bash; see the file COPYING.  If not, write to the Free Software
19    Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
20
21 /* Must be included *after* config.h */
22
23 #ifndef _IMALLOC_H_
24 #define _IMALLOC_H
25
26 #ifdef MALLOC_DEBUG
27 #define MALLOC_STATS
28 #define MALLOC_TRACE
29 #define MALLOC_REGISTER
30 #endif
31
32 /* Generic pointer type. */
33 #ifndef PTR_T
34 #  if defined (__STDC__)
35 #    define PTR_T void *
36 #  else
37 #    define PTR_T char *
38 #  endif
39 #endif
40
41 #if !defined (NULL)
42 #  define NULL 0
43 #endif
44
45 #if !defined (__STRING)
46 #  if defined (HAVE_STRINGIZE)
47 #    define __STRING(x) #x
48 #  else
49 #    define __STRING(x) "x"
50 #  endif /* !HAVE_STRINGIZE */
51 #endif /* !__STRING */
52
53 #if __GNUC__ > 1
54 #  define FASTCOPY(s, d, n)  __builtin_memcpy (d, s, n)
55 #else /* !__GNUC__ */
56 #  if !defined (HAVE_BCOPY)
57 #    if !defined (HAVE_MEMMOVE)
58 #      define FASTCOPY(s, d, n)  memcpy (d, s, n)
59 #    else
60 #      define FASTCOPY(s, d, n)  memmove (d, s, n)
61 #    endif /* !HAVE_MEMMOVE */
62 #  else /* HAVE_BCOPY */
63 #    define FASTCOPY(s, d, n)  bcopy (s, d, n)
64 #  endif /* HAVE_BCOPY */
65 #endif /* !__GNUC__ */
66
67 #endif