]> git.puffer.fish Git - mirror/frr.git/commitdiff
*: use array_size() helper macro
authorBalaji.G <balajig81@gmail.com>
Wed, 26 Sep 2012 08:39:10 +0000 (14:09 +0530)
committerDavid Lamparter <equinox@opensourcerouting.org>
Thu, 25 Oct 2012 17:15:59 +0000 (10:15 -0700)
Use the array_size() helper macro.  Replaces several instances of local
macros with the same definition.

Reviewed-by: Scott Feldman <sfeldma@cumulusnetworks.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
22 files changed:
babeld/babel_main.c
bgpd/bgp_attr.c
bgpd/bgp_main.c
bgpd/bgp_open.c
isisd/isis_main.c
lib/buffer.c
lib/log.c
lib/sigevent.c
lib/sigevent.h
ospf6d/ospf6_main.c
ospf6d/ospf6_message.c
ospfd/ospf_api.c
ospfd/ospf_main.c
ripd/rip_main.c
ripngd/ripng_main.c
tests/test-sig.c
vtysh/vtysh.c
watchquagga/watchquagga.c
zebra/main.c
zebra/rt_netlink.c
zebra/test_main.c
zebra/zebra_rib.c

index 2f3b5552e5df4451c96a931a4422c4210f25780e..7b1d87996bf105b53a0eb74fc8a14a66fb1413fa 100644 (file)
@@ -444,7 +444,7 @@ babel_init_signals(void)
         },
     };
 
-    signal_init (master, Q_SIGC(babel_signals), babel_signals);
+    signal_init (master, array_size(babel_signals), babel_signals);
 }
 
 static void
index 2d82acc227801ece7031f7106898be5463338a5c..cdc99ab3ac60ed8ddb1b3d1c655bb5334c707f58 100644 (file)
@@ -62,7 +62,7 @@ static const struct message attr_str [] =
   { BGP_ATTR_AS4_AGGREGATOR,   "AS4_AGGREGATOR" }, 
   { BGP_ATTR_AS_PATHLIMIT,     "AS_PATHLIMIT" },
 };
-static const int attr_str_max = sizeof(attr_str)/sizeof(attr_str[0]);
+static const int attr_str_max = array_size(attr_str);
 
 static const struct message attr_flag_str[] =
 {
@@ -72,8 +72,7 @@ static const struct message attr_flag_str[] =
   /* bgp_attr_flags_diagnose() relies on this bit being last in this list */
   { BGP_ATTR_FLAG_EXTLEN,   "Extended Length" },
 };
-static const size_t attr_flag_str_max =
-  sizeof (attr_flag_str) / sizeof (attr_flag_str[0]);
+static const size_t attr_flag_str_max = array_size(attr_flag_str);
 \f
 static struct hash *cluster_hash;
 
index 0f1d4829c17630aa3ce10e323455f5288aec33e1..1ff1ac9526e07d65893315e01bb325b093a5a8bd 100644 (file)
@@ -135,7 +135,7 @@ struct zebra_privs_t bgpd_privs =
   .vty_group = VTY_GROUP,
 #endif
   .caps_p = _caps_p,
-  .cap_num_p = sizeof(_caps_p)/sizeof(_caps_p[0]),
+  .cap_num_p = array_size(_caps_p),
   .cap_num_i = 0,
 };
 
@@ -422,7 +422,7 @@ main (int argc, char **argv)
 
   /* Initializations. */
   srand (time (NULL));
-  signal_init (master, Q_SIGC(bgp_signals), bgp_signals);
+  signal_init (master, array_size(bgp_signals), bgp_signals);
   zprivs_init (&bgpd_privs);
   cmd_init (1);
   vty_init (master);
index 0326d01bc72a8bbdc474f2af128edeeddb802b82..d045dde542f63835b874e518d8a810e681b0d085 100644 (file)
@@ -187,8 +187,7 @@ static const struct message orf_type_str[] =
   { ORF_TYPE_PREFIX,           "Prefixlist"            },
   { ORF_TYPE_PREFIX_OLD,       "Prefixlist (old)"      },
 };
-static const int orf_type_str_max
-       = sizeof(orf_type_str)/sizeof(orf_type_str[0]);
+static const int orf_type_str_max = array_size(orf_type_str);
 
 static const struct message orf_mode_str[] =
 {
@@ -196,8 +195,7 @@ static const struct message orf_mode_str[] =
   { ORF_MODE_SEND,     "Send"          },
   { ORF_MODE_BOTH,     "Both"          },
 };
-static const int orf_mode_str_max
-        = sizeof(orf_mode_str)/sizeof(orf_mode_str[0]);
+static const int orf_mode_str_max = array_size(orf_mode_str);
 
 static int
 bgp_capability_orf_entry (struct peer *peer, struct capability_header *hdr)
@@ -449,7 +447,7 @@ static const struct message capcode_str[] =
   { CAPABILITY_CODE_REFRESH_OLD,       "Route Refresh (Old)"           },
   { CAPABILITY_CODE_ORF_OLD,           "ORF (Old)"                     },
 };
-static const int capcode_str_max = sizeof(capcode_str)/sizeof(capcode_str[0]);
+static const int capcode_str_max = array_size(capcode_str);
 
 /* Minimum sizes for length field of each cap (so not inc. the header) */
 static const size_t cap_minsizes[] = 
index f5266aa22e4d2b5a1daf3b2d0f31ea012c181d3c..dcbc3de9650f4d42f2e30791825d8a96b92845f3 100644 (file)
@@ -325,7 +325,7 @@ main (int argc, char **argv, char **envp)
    *  initializations
    */
   zprivs_init (&isisd_privs);
-  signal_init (master, Q_SIGC (isisd_signals), isisd_signals);
+  signal_init (master, array_size (isisd_signals), isisd_signals);
   cmd_init (1);
   vty_init (master);
   memory_init ();
index f19a9e0c8f38f45430f4d612b682cb5541408eaf..45e2e1c5082d47819de0ca2a97f9e98d7e407c82 100644 (file)
@@ -262,7 +262,7 @@ buffer_flush_window (struct buffer *b, int fd, int width, int height,
   /* For erase and more data add two to b's buffer_data count.*/
   if (b->head->next == NULL)
     {
-      iov_alloc = sizeof(small_iov)/sizeof(small_iov[0]);
+      iov_alloc = array_size(small_iov);
       iov = small_iov;
     }
   else
index cbc935b65c1afb7e46d9c0edb1ef00fe2f730b0d..e4ec7c2283eb576c093019d302390d50a9313d82 100644 (file)
--- a/lib/log.c
+++ b/lib/log.c
@@ -443,8 +443,8 @@ zlog_backtrace_sigsafe(int priority, void *program_counter)
 #define LOC s,buf+sizeof(buf)-s
 
 #ifdef HAVE_GLIBC_BACKTRACE
-  if (((size = backtrace(array,sizeof(array)/sizeof(array[0]))) <= 0) ||
-      ((size_t)size > sizeof(array)/sizeof(array[0])))
+  if (((size = backtrace(array,array_size(array)) <= 0) ||
+      ((size_t)size > array_size(array))))
     return;
 
 #define DUMP(FD) { \
@@ -526,12 +526,12 @@ zlog_backtrace(int priority)
   int size, i;
   char **strings;
 
-  if (((size = backtrace(array,sizeof(array)/sizeof(array[0]))) <= 0) ||
-      ((size_t)size > sizeof(array)/sizeof(array[0])))
+  if (((size = backtrace(array,array_size(array))) <= 0) ||
+      ((size_t)size > array_size(array)))
     {
       zlog_err("Cannot get backtrace, returned invalid # of frames %d "
               "(valid range is between 1 and %lu)",
-              size, (unsigned long)(sizeof(array)/sizeof(array[0])));
+              size, (unsigned long)(array_size(array)));
       return;
     }
   zlog(NULL, priority, "Backtrace for %d stack frames:", size);
@@ -636,7 +636,7 @@ openzlog (const char *progname, zlog_proto_t protocol,
   zl->syslog_options = syslog_flags;
 
   /* Set default logging levels. */
-  for (i = 0; i < sizeof(zl->maxlvl)/sizeof(zl->maxlvl[0]); i++)
+  for (i = 0; i < array_size(zl->maxlvl); i++)
     zl->maxlvl[i] = ZLOG_DISABLED;
   zl->maxlvl[ZLOG_DEST_MONITOR] = LOG_DEBUG;
   zl->default_lvl = LOG_DEBUG;
@@ -855,14 +855,14 @@ zroute_lookup(u_int zroute)
 {
   u_int i;
 
-  if (zroute >= sizeof(route_types)/sizeof(route_types[0]))
+  if (zroute >= array_size(route_types))
     {
       zlog_err("unknown zebra route type: %u", zroute);
       return &unknown;
     }
   if (zroute == route_types[zroute].type)
     return &route_types[zroute];
-  for (i = 0; i < sizeof(route_types)/sizeof(route_types[0]); i++)
+  for (i = 0; i < array_size(route_types); i++)
     {
       if (zroute == route_types[i].type)
         {
@@ -890,7 +890,7 @@ zebra_route_char(u_int zroute)
 const char *
 zserv_command_string (unsigned int command)
 {
-  if (command >= sizeof(command_types)/sizeof(command_types[0]))
+  if (command >= array_size(command_types))
     {
       zlog_err ("unknown zserv command type: %u", command);
       return unknown.string;
@@ -898,21 +898,17 @@ zserv_command_string (unsigned int command)
   return command_types[command].string;
 }
 
-#define RTSIZE (sizeof(route_types)/sizeof(route_types[0]))
-
 int
 proto_name2num(const char *s)
 {
    unsigned i;
 
-   for (i=0; i<RTSIZE; ++i)
+   for (i=0; i<array_size(route_types); ++i)
      if (strcasecmp(s, route_types[i].string) == 0)
        return route_types[i].type;
    return -1;
 }
 
-#undef RTSIZE
-
 int
 proto_redistnum(int afi, const char *s)
 {
index 30e9a3d1076dd56dfc9f224a4f1f5ee45ea52e20..7d08fd97ce57a356e9d55b6629feab8f6748094b 100644 (file)
@@ -22,6 +22,7 @@
 #include <zebra.h>
 #include <sigevent.h>
 #include <log.h>
+#include <memory.h>
 
 #ifdef SA_SIGINFO
 #ifdef HAVE_UCONTEXT_H
@@ -266,13 +267,13 @@ trap_default_signals(void)
 #endif
                   );
   } sigmap[] = {
-    { core_signals, sizeof(core_signals)/sizeof(core_signals[0]), core_handler},
-    { exit_signals, sizeof(exit_signals)/sizeof(exit_signals[0]), exit_handler},
-    { ignore_signals, sizeof(ignore_signals)/sizeof(ignore_signals[0]), NULL},
+    { core_signals, array_size(core_signals), core_handler},
+    { exit_signals, array_size(exit_signals), exit_handler},
+    { ignore_signals, array_size(ignore_signals), NULL},
   };
   u_int i;
 
-  for (i = 0; i < sizeof(sigmap)/sizeof(sigmap[0]); i++)
+  for (i = 0; i < array_size(sigmap); i++)
     {
       u_int j;
 
index 62b944a7ce20ef295874417971ae4a7a5c353fff..248fa2c058fce153b9e1048f1366a00a2a2788ff 100644 (file)
@@ -27,7 +27,6 @@
 #include <thread.h>
 
 #define QUAGGA_SIGNAL_TIMER_INTERVAL 2L
-#define Q_SIGC(sig) (sizeof(sig)/sizeof(sig[0]))
 
 struct quagga_signal_t
 {
index d3ef0a6a82f1de29492b9c2fb243a2175fa694e7..1bdf52fb4face500fff74a6583080518e388217a 100644 (file)
@@ -308,7 +308,7 @@ main (int argc, char *argv[], char *envp[])
                            LOG_DAEMON);
   zprivs_init (&ospf6d_privs);
   /* initialize zebra libraries */
-  signal_init (master, Q_SIGC(ospf6_signals), ospf6_signals);
+  signal_init (master, array_size(ospf6_signals), ospf6_signals);
   cmd_init (1);
   vty_init (master);
   memory_init ();
index 01d61263e66b1a78b3c8295e0961daa68ea4ed8e..5edb70ce64586dde0cb28a83458b6f87735a2459 100644 (file)
@@ -58,8 +58,7 @@ static const struct message ospf6_message_type_str [] =
   { OSPF6_MESSAGE_TYPE_LSUPDATE, "LSUpdate" },
   { OSPF6_MESSAGE_TYPE_LSACK,    "LSAck"    },
 };
-static const size_t ospf6_message_type_str_max =
-  sizeof (ospf6_message_type_str) / sizeof (ospf6_message_type_str[0]);
+static const size_t ospf6_message_type_str_max = array_size(ospf6_message_type_str);
 
 /* Minimum (besides the standard OSPF packet header) lengths for OSPF
    packets of particular types, offset is the "type" field. */
index fc3b51ddfd330aae9a08109eaf501ab9c13223eb..74a49e3be93f45e5c5f04820d2fba01306c0ddfb 100644 (file)
@@ -155,7 +155,7 @@ ospf_api_typename (int msgtype)
     { MSG_NSM_CHANGE,            "NSM change",             },
   };
 
-  int i, n = sizeof (NameTab) / sizeof (NameTab[0]);
+  int i, n = array_size(NameTab);
   const char *name = NULL;
 
   for (i = 0; i < n; i++)
@@ -187,7 +187,7 @@ ospf_api_errname (int errcode)
     { OSPF_API_UNDEF,                   "Undefined",                  },
   };
 
-  int i, n = sizeof (NameTab) / sizeof (NameTab[0]);
+  int i, n = array_size(NameTab);
   const char *name = NULL;
 
   for (i = 0; i < n; i++)
index bad674b6a2bab2bfee21560e12d887e85952de65..1448c7d8e3763d549087eb65306edb4fe3cc9378 100644 (file)
@@ -68,7 +68,7 @@ struct zebra_privs_t ospfd_privs =
   .vty_group = VTY_GROUP,
 #endif
   .caps_p = _caps_p,
-  .cap_num_p = sizeof(_caps_p)/sizeof(_caps_p[0]),
+  .cap_num_p = array_size(_caps_p),
   .cap_num_i = 0
 };
 
@@ -285,7 +285,7 @@ main (int argc, char **argv)
 
   /* Library inits. */
   zprivs_init (&ospfd_privs);
-  signal_init (master, Q_SIGC(ospf_signals), ospf_signals);
+  signal_init (master, array_size(ospf_signals), ospf_signals);
   cmd_init (1);
   debug_init ();
   vty_init (master);
index ccb5fa012678934537a2db178540155cd593a8df..6a9fa71da479b2618bcc6a899819d3af0b640c4d 100644 (file)
@@ -275,7 +275,7 @@ main (int argc, char **argv)
 
   /* Library initialization. */
   zprivs_init (&ripd_privs);
-  signal_init (master, Q_SIGC(ripd_signals), ripd_signals);
+  signal_init (master, array_size(ripd_signals), ripd_signals);
   cmd_init (1);
   vty_init (master);
   memory_init ();
index f4a62440a148576ad1e4ee818aa9412181b2a342..20225b7d5f17770ddc89ca34547cfc2801e71600 100644 (file)
@@ -272,7 +272,7 @@ main (int argc, char **argv)
 
   /* Library inits. */
   zprivs_init (&ripngd_privs);
-  signal_init (master, Q_SIGC(ripng_signals), ripng_signals);
+  signal_init (master, array_size(ripng_signals), ripng_signals);
   cmd_init (1);
   vty_init (master);
   memory_init ();
index 63aab6f0b46a9477b0b5cc9c898e44a827b22a21..fe428dea9891ffac1864f2bffa11b1bc0a349c6a 100644 (file)
@@ -43,7 +43,7 @@ int
 main (void)
 {
   master = thread_master_create ();
-  signal_init (master, Q_SIGC(sigs), sigs);
+  signal_init (master, array_size(sigs), sigs);
   
   zlog_default = openzlog("testsig", ZLOG_NONE,
                           LOG_CONS|LOG_NDELAY|LOG_PID, LOG_DAEMON);
index 431c08e22d9eee75fd0440e9f7f06a7170ed7d5e..e3709e07e3c303255a2cc6ec670ba08e68bc7e7a 100644 (file)
@@ -61,7 +61,6 @@ struct vtysh_client
   { .fd = -1, .name = "babeld", .flag = VTYSH_BABELD, .path = BABEL_VTYSH_PATH},
 };
 
-#define VTYSH_INDEX_MAX (sizeof(vtysh_client)/sizeof(vtysh_client[0]))
 
 /* We need direct access to ripd to implement vtysh_exit_ripd_only. */
 static struct vtysh_client *ripd_client = NULL;
@@ -374,7 +373,7 @@ vtysh_execute_func (const char *line, int pager)
 
        if (! strcmp(cmd->string,"configure terminal"))
          {
-           for (i = 0; i < VTYSH_INDEX_MAX; i++)
+           for (i = 0; i < array_size(vtysh_client); i++)
              {
                cmd_stat = vtysh_client_execute(&vtysh_client[i], line, fp);
                if (cmd_stat == CMD_WARNING)
@@ -413,7 +412,7 @@ vtysh_execute_func (const char *line, int pager)
          }
 
        cmd_stat = CMD_SUCCESS;
-       for (i = 0; i < VTYSH_INDEX_MAX; i++)
+       for (i = 0; i < array_size(vtysh_client); i++)
          {
            if (cmd->daemon & vtysh_client[i].flag)
              {
@@ -525,7 +524,7 @@ vtysh_config_from_file (struct vty *vty, FILE *fp)
            u_int i;
            int cmd_stat = CMD_SUCCESS;
 
-           for (i = 0; i < VTYSH_INDEX_MAX; i++)
+           for (i = 0; i < array_size(vtysh_client); i++)
              {
                if (cmd->daemon & vtysh_client[i].flag)
                  {
@@ -1354,7 +1353,7 @@ DEFUN (vtysh_show_memory,
   int ret = CMD_SUCCESS;
   char line[] = "show memory\n";
   
-  for (i = 0; i < VTYSH_INDEX_MAX; i++)
+  for (i = 0; i < array_size(vtysh_client); i++)
     if ( vtysh_client[i].fd >= 0 )
       {
         fprintf (stdout, "Memory statistics for %s:\n", 
@@ -1377,7 +1376,7 @@ DEFUN (vtysh_show_logging,
   int ret = CMD_SUCCESS;
   char line[] = "show logging\n";
   
-  for (i = 0; i < VTYSH_INDEX_MAX; i++)
+  for (i = 0; i < array_size(vtysh_client); i++)
     if ( vtysh_client[i].fd >= 0 )
       {
         fprintf (stdout,"Logging configuration for %s:\n", 
@@ -1733,7 +1732,7 @@ DEFUN (vtysh_write_terminal,
           VTY_NEWLINE);
   vty_out (vty, "!%s", VTY_NEWLINE);
 
-  for (i = 0; i < VTYSH_INDEX_MAX; i++)
+  for (i = 0; i < array_size(vtysh_client); i++)
     ret = vtysh_client_config (&vtysh_client[i], line);
 
   /* Integrate vtysh specific configuration. */
@@ -1807,7 +1806,7 @@ write_config_integrated(void)
       return CMD_SUCCESS;
     }
 
-  for (i = 0; i < VTYSH_INDEX_MAX; i++)
+  for (i = 0; i < array_size(vtysh_client); i++)
     ret = vtysh_client_config (&vtysh_client[i], line);
 
   vtysh_config_dump (fp);
@@ -1844,7 +1843,7 @@ DEFUN (vtysh_write_memory,
 
   fprintf (stdout,"Building Configuration...\n");
          
-  for (i = 0; i < VTYSH_INDEX_MAX; i++)
+  for (i = 0; i < array_size(vtysh_client); i++)
     ret = vtysh_client_execute (&vtysh_client[i], line, stdout);
   
   fprintf (stdout,"[OK]\n");
@@ -1934,7 +1933,7 @@ DEFUN (vtysh_show_daemons,
 {
   u_int i;
 
-  for (i = 0; i < VTYSH_INDEX_MAX; i++)
+  for (i = 0; i < array_size(vtysh_client); i++)
     if ( vtysh_client[i].fd >= 0 )
       vty_out(vty, " %s", vtysh_client[i].name);
   vty_out(vty, "%s", VTY_NEWLINE);
@@ -2184,7 +2183,7 @@ vtysh_connect_all(const char *daemon_name)
   int rc = 0;
   int matches = 0;
 
-  for (i = 0; i < VTYSH_INDEX_MAX; i++)
+  for (i = 0; i < array_size(vtysh_client); i++)
     {
       if (!daemon_name || !strcmp(daemon_name, vtysh_client[i].name))
        {
index b57fd3ae04844bd4b0b94dbc9d3eafaea064a2dc..c1c88921098720c2199cd9f2cd012d5ba3133ece 100644 (file)
@@ -27,6 +27,7 @@
 #include <getopt.h>
 #include <sys/un.h>
 #include <sys/wait.h>
+#include <memory.h>
 
 #ifndef MIN
 #define MIN(X,Y) (((X) <= (Y)) ? (X) : (Y))
@@ -1279,7 +1280,7 @@ main(int argc, char **argv)
       
   gs.restart.interval = gs.min_restart_interval;
   master = thread_master_create();
-  signal_init (master, Q_SIGC(my_signals), my_signals);
+  signal_init (master, array_size(my_signals), my_signals);
   srandom(time(NULL));
 
   {
index 5b5265f27fd45b8afd459ffca25f6253aca02fcf..50ac224e2e39af76ae070ca5ab62c6d4d5dcf13a 100644 (file)
@@ -104,7 +104,7 @@ struct zebra_privs_t zserv_privs =
   .vty_group = VTY_GROUP,
 #endif
   .caps_p = _caps_p,
-  .cap_num_p = sizeof(_caps_p)/sizeof(_caps_p[0]),
+  .cap_num_p = array_size(_caps_p),
   .cap_num_i = 0
 };
 
@@ -313,7 +313,7 @@ main (int argc, char **argv)
   zprivs_init (&zserv_privs);
 
   /* Vty related initialize. */
-  signal_init (zebrad.master, Q_SIGC(zebra_signals), zebra_signals);
+  signal_init (zebrad.master, array_size(zebra_signals), zebra_signals);
   cmd_init (1);
   vty_init (zebrad.master);
   memory_init ();
index 15475e2056d021b56fe5cb185e7257deb41ed1cc..ab28ad271078e0f586ffc9f57e40bbc6ca7307a9 100644 (file)
@@ -1985,7 +1985,7 @@ static void netlink_install_filter (int sock, __u32 pid)
   };
 
   struct sock_fprog prog = {
-    .len = sizeof(filter) / sizeof(filter[0]),
+    .len = array_size(filter),
     .filter = filter,
   };
 
index 70a1a3a650d9131d9f22e942b3d2c042122981b2..a9518637dc355d28071ea65b53544dcbd86f0a90 100644 (file)
@@ -280,7 +280,7 @@ main (int argc, char **argv)
   zebrad.master = thread_master_create ();
 
   /* Vty related initialize. */
-  signal_init (zebrad.master, Q_SIGC(zebra_signals), zebra_signals);
+  signal_init (zebrad.master, array_size(zebra_signals), zebra_signals);
   cmd_init (1);
   vty_init (zebrad.master);
   memory_init ();
index b8a47031f25ff8aac7eef3bf8f395bcf175e9f48..0e29e616a054a73b93f16a0aaa4eabc610a40c0d 100644 (file)
@@ -1546,7 +1546,7 @@ rib_add_ipv4 (int type, int flags, struct prefix_ipv4 *p,
   /* Set default distance by route type. */
   if (distance == 0)
     {
-      if ((unsigned)type >= sizeof(route_info) / sizeof(route_info[0]))
+      if ((unsigned)type >= array_size(route_info))
        distance = 150;
       else
         distance = route_info[type].distance;