From 2fd2fd5d4c0e5a67f1b84abe18b54417237b20ab Mon Sep 17 00:00:00 2001 From: paul Date: Fri, 15 Apr 2005 11:47:15 +0000 Subject: 2005-04-15 Paul Jakma * memtypes.c: The new, unified location for memory type definitions. The memtype enum and declarations for memory_lists are built from this automatically and put into memtypes.h. * memtypes.awk: New script to generate memtypes.h from memtypes.c * memory.h: Finally, the enum can banished! * memory.c: Finally, the seperate mtype memory_list definitions can be banished! (log_memstats) Increase width of fields (show_memory_zebra_cmd) display zebra specific memory types. Increase width of fields. * Makefile.am: Add memtypes.{c,h}, add BUILT_SOURCES for memtypes.h Add a rule to build memtypes.h using memtypes.awk. Add memtypes.awk to EXTRA_DIST. --- lib/memory.h | 202 ++++------------------------------------------------------- 1 file changed, 12 insertions(+), 190 deletions(-) (limited to 'lib/memory.h') diff --git a/lib/memory.h b/lib/memory.h index 3ef0f480..7b471978 100644 --- a/lib/memory.h +++ b/lib/memory.h @@ -21,201 +21,23 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA #ifndef _ZEBRA_MEMORY_H #define _ZEBRA_MEMORY_H -/* #define MEMORY_LOG */ +#include "memtypes.h" -/* For tagging memory, below is the type of the memory. */ -enum +/* For pretty printing of memory allocate information. */ +struct memory_list { - MTYPE_TMP = 1, - MTYPE_STRVEC, - MTYPE_VECTOR, - MTYPE_VECTOR_INDEX, - MTYPE_LINK_LIST, - MTYPE_LINK_NODE, - MTYPE_THREAD, - MTYPE_THREAD_MASTER, - MTYPE_THREAD_STATS, - MTYPE_THREAD_FUNCNAME, - MTYPE_VTY, - MTYPE_VTY_HIST, - MTYPE_VTY_OUT_BUF, - MTYPE_IF, - MTYPE_IF_IRDP, - MTYPE_CONNECTED, - MTYPE_AS_SEG, - MTYPE_AS_STR, - MTYPE_AS_PATH, - MTYPE_CLUSTER, - MTYPE_CLUSTER_VAL, - MTYPE_ATTR, - MTYPE_TRANSIT, - MTYPE_TRANSIT_VAL, - MTYPE_BUFFER, - MTYPE_BUFFER_DATA, - MTYPE_STREAM, - MTYPE_STREAM_DATA, - MTYPE_STREAM_FIFO, - MTYPE_PREFIX, - MTYPE_PREFIX_IPV4, - MTYPE_PREFIX_IPV6, - MTYPE_HASH, - MTYPE_HASH_INDEX, - MTYPE_HASH_BACKET, - MTYPE_ROUTE_TABLE, - MTYPE_ROUTE_NODE, - MTYPE_ACCESS_LIST, - MTYPE_ACCESS_LIST_STR, - MTYPE_ACCESS_FILTER, - MTYPE_PREFIX_LIST, - MTYPE_PREFIX_LIST_STR, - MTYPE_PREFIX_LIST_ENTRY, - MTYPE_ROUTE_MAP, - MTYPE_ROUTE_MAP_NAME, - MTYPE_ROUTE_MAP_INDEX, - MTYPE_ROUTE_MAP_RULE, - MTYPE_ROUTE_MAP_RULE_STR, - MTYPE_ROUTE_MAP_COMPILED, - - MTYPE_RIB, - - MTYPE_DISTRIBUTE, - MTYPE_DISTRIBUTE_IFNAME, - MTYPE_ZLOG, - MTYPE_ZCLIENT, - MTYPE_NEXTHOP, - MTYPE_RTADV_PREFIX, - MTYPE_IF_RMAP, - MTYPE_SOCKUNION, - MTYPE_STATIC_IPV4, - MTYPE_STATIC_IPV6, - - MTYPE_DESC, - MTYPE_OSPF_TOP, - MTYPE_OSPF_AREA, - MTYPE_OSPF_AREA_RANGE, - MTYPE_OSPF_NETWORK, - MTYPE_OSPF_NEIGHBOR_STATIC, - MTYPE_OSPF_IF, - MTYPE_OSPF_NEIGHBOR, - MTYPE_OSPF_ROUTE, - MTYPE_OSPF_TMP, - MTYPE_OSPF_LSA, - MTYPE_OSPF_LSA_DATA, - MTYPE_OSPF_LSDB, - MTYPE_OSPF_PACKET, - MTYPE_OSPF_FIFO, - MTYPE_OSPF_VERTEX, - MTYPE_OSPF_NEXTHOP, - MTYPE_OSPF_PATH, - MTYPE_OSPF_VL_DATA, - MTYPE_OSPF_CRYPT_KEY, - MTYPE_OSPF_EXTERNAL_INFO, - MTYPE_OSPF_MESSAGE, - MTYPE_OSPF_DISTANCE, - MTYPE_OSPF_IF_INFO, - MTYPE_OSPF_IF_PARAMS, - - MTYPE_OSPF6_TOP, - MTYPE_OSPF6_AREA, - MTYPE_OSPF6_IF, - MTYPE_OSPF6_NEIGHBOR, - MTYPE_OSPF6_ROUTE, - MTYPE_OSPF6_PREFIX, - MTYPE_OSPF6_MESSAGE, - MTYPE_OSPF6_LSA, - MTYPE_OSPF6_LSA_SUMMARY, - MTYPE_OSPF6_LSDB, - MTYPE_OSPF6_VERTEX, - MTYPE_OSPF6_SPFTREE, - MTYPE_OSPF6_NEXTHOP, - MTYPE_OSPF6_EXTERNAL_INFO, - MTYPE_OSPF6_OTHER, - - - MTYPE_ISIS, - MTYPE_ISIS_TMP, - MTYPE_ISIS_CIRCUIT, - MTYPE_ISIS_LSP, - MTYPE_ISIS_ADJACENCY, - MTYPE_ISIS_AREA, - MTYPE_ISIS_AREA_ADDR, - MTYPE_ISIS_TLV, - MTYPE_ISIS_DYNHN, - MTYPE_ISIS_SPFTREE, - MTYPE_ISIS_VERTEX, - MTYPE_ISIS_ROUTE_INFO, - MTYPE_ISIS_NEXTHOP, - MTYPE_ISIS_NEXTHOP6, - - MTYPE_BGP, - MTYPE_BGP_PEER, - MTYPE_PEER_GROUP, - MTYPE_PEER_DESC, - MTYPE_PEER_UPDATE_SOURCE, - MTYPE_BGP_STATIC, - MTYPE_BGP_AGGREGATE, - MTYPE_BGP_CONFED_LIST, - MTYPE_BGP_NEXTHOP_CACHE, - MTYPE_BGP_DAMP_INFO, - MTYPE_BGP_DAMP_ARRAY, - MTYPE_BGP_ANNOUNCE, - MTYPE_BGP_ATTR_QUEUE, - MTYPE_BGP_ROUTE_QUEUE, - MTYPE_BGP_DISTANCE, - MTYPE_BGP_ROUTE, - MTYPE_BGP_TABLE, - MTYPE_BGP_NODE, - MTYPE_BGP_ADVERTISE_ATTR, - MTYPE_BGP_ADVERTISE, - MTYPE_BGP_ADJ_IN, - MTYPE_BGP_ADJ_OUT, - MTYPE_BGP_REGEXP, - MTYPE_AS_FILTER, - MTYPE_AS_FILTER_STR, - MTYPE_AS_LIST, - - MTYPE_COMMUNITY, - MTYPE_COMMUNITY_VAL, - MTYPE_COMMUNITY_STR, - - MTYPE_ECOMMUNITY, - MTYPE_ECOMMUNITY_VAL, - MTYPE_ECOMMUNITY_STR, - - /* community-list and extcommunity-list. */ - MTYPE_COMMUNITY_LIST_HANDLER, - MTYPE_COMMUNITY_LIST, - MTYPE_COMMUNITY_LIST_NAME, - MTYPE_COMMUNITY_LIST_ENTRY, - MTYPE_COMMUNITY_LIST_CONFIG, - - MTYPE_RIP, - MTYPE_RIP_INTERFACE, - MTYPE_RIP_DISTANCE, - MTYPE_RIP_OFFSET_LIST, - MTYPE_RIP_INFO, - MTYPE_RIP_PEER, - MTYPE_KEYCHAIN, - MTYPE_KEY, - - MTYPE_RIPNG, - MTYPE_RIPNG_ROUTE, - MTYPE_RIPNG_AGGREGATE, - MTYPE_RIPNG_PEER, - MTYPE_RIPNG_OFFSET_LIST, - MTYPE_RIPNG_RTE_DATA, - - MTYPE_VTYSH_CONFIG, - MTYPE_VTYSH_CONFIG_LINE, - - MTYPE_VRF, - MTYPE_VRF_NAME, - - MTYPE_PRIVS, + int index; + const char *format; +}; - MTYPE_MAX +struct mlist { + struct memory_list *list; + const char *name; }; + +extern struct mlist mlists[]; +/* #define MEMORY_LOG */ #ifdef MEMORY_LOG #define XMALLOC(mtype, size) \ mtype_zmalloc (__FILE__, __LINE__, (mtype), (size)) -- cgit v1.2.1