⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memory.h

📁 大名鼎鼎的路由器源码。程序分ZEBRA、OSPFRIP等3个包。程序框架采用一个路由协议一个进程的方式
💻 H
字号:
/* Memory management routine   Copyright (C) 1998 Kunihiro IshiguroThis file is part of GNU Zebra.GNU Zebra is free software; you can redistribute it and/or modify itunder the terms of the GNU General Public License as published by theFree Software Foundation; either version 2, or (at your option) anylater version.GNU Zebra is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Zebra; see the file COPYING.  If not, write to the FreeSoftware Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA02111-1307, USA.  */#ifndef _ZEBRA_MEMORY_H#define _ZEBRA_MEMORY_H/* #define MEMORY_LOG *//* For tagging memory, below is the type of the memory. */enum{  MTYPE_TMP = 1,  MTYPE_STRVEC,  MTYPE_VECTOR,  MTYPE_VECTOR_INDEX,  MTYPE_LINK_LIST,  MTYPE_LINK_NODE,  MTYPE_THREAD,  MTYPE_THREAD_MASTER,  MTYPE_VTY,  MTYPE_VTY_HIST,  MTYPE_VTY_OUT_BUF,  MTYPE_IF,  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_RIPNG_ROUTE,  MTYPE_RIPNG_AGGREGATE,  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_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_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_VTYSH_CONFIG,  MTYPE_VTYSH_CONFIG_LINE,  MTYPE_VRF,  MTYPE_VRF_NAME,  MTYPE_MAX};#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) \  mtype_zfree (__FILE__, __LINE__, (mtype), (ptr))#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)          zfree ((mtype), (ptr))#define XSTRDUP(mtype, str)        zstrdup ((mtype), (str))#endif /* MEMORY_LOG *//* Prototypes of memory function. */void *zmalloc (int type, size_t size);void *zcalloc (int type, size_t size);void *zrealloc (int type, void *ptr, size_t size);void  zfree (int type, void *ptr);char *zstrdup (int type, char *str);void *mtype_zmalloc (const char *file,		     int line,		     int type,		     size_t size);void *mtype_zcalloc (const char *file,		     int line,		     int type,		     size_t num,		     size_t size);void *mtype_zrealloc (const char *file,		     int line,		     int type, 		     void *ptr,		     size_t size);void mtype_zfree (const char *file,		  int line,		  int type,		  void *ptr);char *mtype_zstrdup (const char *file,		     int line,		     int type,		     char *str);void memory_init ();#endif /* _ZEBRA_MEMORY_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -