diff options
author | David Lamparter <equinox@opensourcerouting.org> | 2015-05-29 04:32:33 +0200 |
---|---|---|
committer | Christian Franke <nobody@nowhere.ws> | 2016-09-19 17:51:36 +0200 |
commit | 6ba26ad5d2bc863917914db0d8354eb834bba264 (patch) | |
tree | a4071343a705409e1336c54d12624e06283b72a0 /lib/memory_vty.h | |
parent | isisd, lib, vtysh: Allow extract.pl to fully work (diff) | |
download | frr-6ba26ad5d2bc863917914db0d8354eb834bba264.tar.xz frr-6ba26ad5d2bc863917914db0d8354eb834bba264.zip |
lib: move memory.[ch] out of the way
The following commit will recreate memory.[ch].
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Acked-by: Vincent JARDIN <vincent.jardin@6wind.com>
Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'lib/memory_vty.h')
-rw-r--r-- | lib/memory_vty.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/lib/memory_vty.h b/lib/memory_vty.h new file mode 100644 index 000000000..4d7601607 --- /dev/null +++ b/lib/memory_vty.h @@ -0,0 +1,96 @@ +/* Memory management routine + Copyright (C) 1998 Kunihiro Ishiguro + +This file is part of GNU Zebra. + +GNU Zebra is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +GNU Zebra 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 +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Zebra; see the file COPYING. If not, write to the Free +Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. */ + +#ifndef _ZEBRA_MEMORY_VTY_H +#define _ZEBRA_MEMORY_VTY_H + +#define array_size(ar) (sizeof(ar) / sizeof(ar[0])) + +/* For pretty printing of memory allocate information. */ +struct memory_list +{ + int index; + const char *format; +}; + +struct mlist { + struct memory_list *list; + const char *name; +}; + +#include "lib/memtypes.h" + +extern struct mlist mlists[]; + +/* #define MEMORY_LOG */ +#ifdef MEMORY_LOG +#define XMALLOC(mtype, size) \ + mtype_zmalloc (__FILE__, __LINE__, (mtype), (size)) +#define XCALLOC(mtype, size) \ + mtype_zcalloc (__FILE__, __LINE__, (mtype), (size)) +#define XREALLOC(mtype, ptr, size) \ + mtype_zrealloc (__FILE__, __LINE__, (mtype), (ptr), (size)) +#define XFREE(mtype, ptr) \ + do { \ + mtype_zfree (__FILE__, __LINE__, (mtype), (ptr)); \ + ptr = NULL; } \ + while (0) +#define XSTRDUP(mtype, str) \ + mtype_zstrdup (__FILE__, __LINE__, (mtype), (str)) +#else +#define XMALLOC(mtype, size) zmalloc ((mtype), (size)) +#define XCALLOC(mtype, size) zcalloc ((mtype), (size)) +#define XREALLOC(mtype, ptr, size) zrealloc ((mtype), (ptr), (size)) +#define XFREE(mtype, ptr) do { \ + zfree ((mtype), (ptr)); \ + ptr = NULL; } \ + while (0) +#define XSTRDUP(mtype, str) zstrdup ((mtype), (str)) +#endif /* MEMORY_LOG */ + +/* Prototypes of memory function. */ +extern void *zmalloc (int type, size_t size); +extern void *zcalloc (int type, size_t size); +extern void *zrealloc (int type, void *ptr, size_t size); +extern void zfree (int type, void *ptr); +extern char *zstrdup (int type, const char *str); + +extern void *mtype_zmalloc (const char *file, int line, int type, size_t size); + +extern void *mtype_zcalloc (const char *file, int line, int type, size_t size); + +extern void *mtype_zrealloc (const char *file, int line, int type, void *ptr, + size_t size); + +extern void mtype_zfree (const char *file, int line, int type, + void *ptr); + +extern char *mtype_zstrdup (const char *file, int line, int type, + const char *str); +extern void memory_init (void); +extern void log_memstats_stderr (const char *); + +/* return number of allocations outstanding for the type */ +extern unsigned long mtype_stats_alloc (int); + +/* Human friendly string for given byte count */ +#define MTYPE_MEMSTR_LEN 20 +extern const char *mtype_memstr (char *, size_t, unsigned long); +#endif /* _ZEBRA_MEMORY_VTY_H */ |