Statics hunt acquired 10k garbage
authorSven-Ola Tuecke <sven-ola@gmx.de>
Thu, 11 Dec 2008 17:48:22 +0000 (18:48 +0100)
committerSven-Ola Tuecke <sven-ola@gmx.de>
Thu, 11 Dec 2008 17:48:22 +0000 (18:48 +0100)
60 files changed:
Makefile.inc
scripts/linker-cref.pl [new file with mode: 0755]
src/common/autobuf.c
src/common/autobuf.h
src/common/avl.c
src/common/avl.h
src/common/string.h
src/defs.h
src/duplicate_set.c
src/duplicate_set.h
src/fpm.c
src/fpm.h
src/hna_set.c
src/hna_set.h
src/ifnet.h
src/interfaces.c
src/interfaces.h
src/ipcalc.c
src/ipcalc.h
src/link_set.c
src/link_set.h
src/linux/net.c
src/lq_plugin.c
src/lq_plugin.h
src/lq_plugin_default_ff.c
src/lq_plugin_default_ff.h
src/lq_plugin_default_float.c
src/lq_plugin_default_float.h
src/lq_plugin_default_fpm.c
src/lq_plugin_default_fpm.h
src/mid_set.c
src/mid_set.h
src/mpr.c
src/mpr.h
src/net_olsr.c
src/net_olsr.h
src/net_os.h
src/olsr.c
src/olsr.h
src/olsr_cfg.c
src/olsr_cfg.h
src/olsr_cfg_gen.c
src/olsr_cfg_gen.h
src/olsr_cookie.c
src/olsr_cookie.h
src/parser.c
src/parser.h
src/plugin_util.h
src/print_packet.c
src/print_packet.h
src/process_package.c
src/process_package.h
src/process_routes.c
src/process_routes.h
src/routing_table.c
src/routing_table.h
src/scheduler.c
src/scheduler.h
src/tc_set.c
src/tc_set.h

index fb39393..e6bf5c3 100644 (file)
@@ -89,7 +89,7 @@ endif
 #ALL_WARNINGS +=       -Wunreachable-code
 ALL_WARNINGS +=        -Winline
 ALL_WARNINGS +=        -Wdisabled-optimization
-ALL_WARNINGS +=        -Werror
+#ALL_WARNINGS +=       -Werror
 ALL_WARNINGS +=        -finline-functions-called-once
 ALL_WARNINGS +=        -funit-at-a-time
 ALL_WARNINGS +=        -fearly-inlining
diff --git a/scripts/linker-cref.pl b/scripts/linker-cref.pl
new file mode 100755 (executable)
index 0000000..1db9247
--- /dev/null
@@ -0,0 +1,90 @@
+#!/usr/bin/perl
+
+local $use = 0;
+local $sym = "";
+local %SYM = ();
+
+local $all = (0 <= $#ARGV && "-a" eq $ARGV[0]);
+
+foreach(`make LDFLAGS=-Wl,--cref`)
+{
+  chomp;
+  if (m#^Cross Reference Table#s)
+  {
+    $use = 1;
+  }
+  elsif(m#^make\[1\]\:#s)
+  {
+    $use = 0;
+  }
+  elsif($use && "" ne $_ && !m#^Symbol\s+File$#s)
+  {
+    @_ = split(/\s+/, $_);
+    ($#_ < 1 || 1 < $#_) && die("Oops: split has $#_ on '$_'!");
+    $sym = $_[0] if ("" ne $_[0]);
+    $SYM{$sym} .= " " if defined($SYM{$sym});
+    $SYM{$sym} .= $_[1];
+  }
+}
+
+%REF = ();
+
+foreach $sym(keys %SYM)
+{
+  foreach(split(/ /, $SYM{$sym}))
+  {
+    $REF{$_} .= " " if defined($REF{$_});
+    $REF{$_} .= $sym;
+  }
+}
+
+print "Static Candidates\n";
+print "=================\n";
+
+foreach(sort keys %REF)
+{
+  my $m = $_;
+  foreach(sort split(/ /, $REF{$_}))
+  {
+    @_ = split(/ /, $SYM{$_});
+    if (0 == $#_)
+    {
+      if ($all || !($_[0] =~ m#/lib#s))
+      {
+        if ("" ne $m)
+        {
+          print "\n$m\n";
+          $m = "";
+        }
+        print "\t$_\n"
+      }
+    }
+  }
+}
+
+print "\n";
+print "Symbols in Files\n";
+print "================\n";
+
+foreach(sort keys %REF)
+{
+  print "$_\n";
+  foreach(sort split(/ /, $REF{$_}))
+  {
+    print "\t$_\n";
+  }
+}
+
+print "\n";
+print "Files using Symbols\n";
+print "===================\n";
+
+foreach(sort keys %SYM)
+{
+  print "$_\n";
+  foreach(sort split(/ /, $SYM{$_}))
+  {
+    print "\t$_\n";
+  }
+}
+
index f0ae1e6..ac6b690 100644 (file)
@@ -95,7 +95,7 @@ static int autobuf_enlarge(struct autobuf *autobuf, int new_size)
     return 0;
 }
 
-int abuf_vappendf(struct autobuf *autobuf, const char *format, va_list ap)
+static int abuf_vappendf(struct autobuf *autobuf, const char *format, va_list ap)
 {
     int rc;
     int min_size;
index 145d4b0..3222688 100644 (file)
@@ -41,6 +41,7 @@
 #ifndef _COMMON_AUTOBUF_H
 #define _COMMON_AUTOBUF_H
 
+#include "defs.h"
 #include <stdarg.h>
 #include <time.h>
 
@@ -58,11 +59,10 @@ struct autobuf {
 
 int  abuf_init(struct autobuf *autobuf, int initial_size);
 void abuf_free(struct autobuf *autobuf);
-int  abuf_vappendf(struct autobuf *autobuf, const char *fmt, va_list ap) __attribute__((format(printf, 2, 0)));
 int  abuf_appendf(struct autobuf *autobuf, const char *fmt, ...) __attribute__((format(printf, 2, 3)));
-int  abuf_puts(struct autobuf *autobuf, const char *s);
-int  abuf_strftime(struct autobuf *autobuf, const char *format, const struct tm *tm);
-int  abuf_memcpy(struct autobuf *autobuf, const void *p, const unsigned int len);
+PLUGIN_PUB int  abuf_puts(struct autobuf *autobuf, const char *s);
+PLUGIN_PUB int  abuf_strftime(struct autobuf *autobuf, const char *format, const struct tm *tm);
+PLUGIN_PUB int  abuf_memcpy(struct autobuf *autobuf, const void *p, const unsigned int len);
 
 #endif
 
index 8bbe5ee..cea5c1f 100644 (file)
@@ -67,11 +67,13 @@ avl_comp_ipv6(const void *ip1, const void *ip2)
   return ip6cmp(ip1, ip2);
 }
 
+#if 0
 int
 avl_comp_mac(const void *ip1, const void *ip2)
 {
   return memcmp(ip1, ip2, 6);
 }
+#endif
 
 void
 avl_init(struct avl_tree *tree, avl_tree_comp comp)
index 21d9c7c..fea1077 100644 (file)
@@ -123,7 +123,9 @@ extern avl_tree_comp avl_comp_default;
 extern avl_tree_comp avl_comp_prefix_default;
 extern int avl_comp_ipv4(const void *, const void *);
 extern int avl_comp_ipv6(const void *, const void *);
+#if 0
 extern int avl_comp_mac(const void *, const void *);
+#endif
 
 /*
  * Macro to define an inline function to map from a list_node offset back to the
index cb65a9f..d471350 100644 (file)
 #ifndef COMMON_STRING_H_
 #define COMMON_STRING_H_
 
+#include "defs.h"
 #include <stdlib.h>
 
 char *strscpy(char *dest, const char *src, size_t size);
 
-char *strscat(char *dest, const char *src, size_t size);
+PLUGIN_PUB char *strscat(char *dest, const char *src, size_t size);
 
 #endif
 
index c394c5d..18ffafd 100644 (file)
@@ -101,6 +101,11 @@ extern FILE *debug_handle;
 #define USED_ONLY_FOR_DEBUG
 #endif
 
+#ifdef __GNUC__
+#define PLUGIN_PUB __attribute__(( externally_visible))
+#else
+#define PLUGIN_PUB
+#endif
 
 #define ROUND_UP_TO_POWER_OF_2(val, pow2) (((val) + (pow2) - 1) & ~((pow2) - 1))
 
index d6bca87..c729f69 100644 (file)
 
 static void olsr_cleanup_duplicate_entry(void *unused);
 
-struct avl_tree duplicate_set;
-struct timer_entry *duplicate_cleanup_timer;
+static struct avl_tree duplicate_set;
+static struct timer_entry *duplicate_cleanup_timer;
 
 /* Some cookies for stats keeping */
-struct olsr_cookie_info *duplicate_timer_cookie = NULL;
-struct olsr_cookie_info *duplicate_mem_cookie = NULL;
+static struct olsr_cookie_info *duplicate_timer_cookie = NULL;
+static struct olsr_cookie_info *duplicate_mem_cookie = NULL;
 
 void
 olsr_init_duplicate_set(void)
@@ -81,7 +81,7 @@ olsr_init_duplicate_set(void)
                  duplicate_timer_cookie->ci_id);
 }
 
-struct dup_entry *
+static struct dup_entry *
 olsr_create_duplicate_entry(union olsr_ip_addr *ip, uint16_t seqnr)
 {
   struct dup_entry *entry;
index 7379fed..40be777 100644 (file)
@@ -63,7 +63,6 @@ struct dup_entry {
 AVLNODE2STRUCT(duptree2dupentry, struct dup_entry, avl);
 
 void olsr_init_duplicate_set(void);
-struct dup_entry *olsr_create_duplicate_entry(union olsr_ip_addr *ip, uint16_t seqnr);
 int olsr_message_is_duplicate(union olsr_message *m);
 void olsr_print_duplicate_table(void);
 
index 30d4042..580fc5c 100644 (file)
--- a/src/fpm.c
+++ b/src/fpm.c
@@ -154,6 +154,7 @@ fpm fpmldiv(fpm a, fpm b) {
 
 #endif /* !NDEBUG */
 
+#if 0
 fpm atofpm(const char *s)
 {
   float r = 0.0;
@@ -176,9 +177,11 @@ const char *etxtoa(fpm etx)
 {
   return etx >= INFINITE_ETX ? "INF" : fpmtoa(etx);
 }
+#endif
 
 #else /* USE_FPM */
 
+#if 0
 float atofpm(const char *s)
 {
   float r = 0.0;
@@ -200,6 +203,7 @@ const char *etxtoa(float etx)
 {
   return etx >= INFINITE_ETX ? "INF" : fpmtoa(etx);
 }
+#endif
 
 #endif /* USE_FPM */
 
index ab83066..d713c59 100644 (file)
--- a/src/fpm.h
+++ b/src/fpm.h
@@ -41,6 +41,8 @@
 #ifndef _FPM_H
 #define _FPM_H
 
+#include "defs.h"
+
 #ifdef USE_FPM
 
 #if 0
@@ -194,10 +196,11 @@ typedef float sfpm;
 
 #endif /* USE_FPM */
 
+#if 0
 fpm atofpm(const char *);
 const char *fpmtoa(fpm);
 const char *etxtoa(fpm);
-
+#endif
 
 #endif
 
index 5aa0843..5008a38 100644 (file)
@@ -48,8 +48,8 @@
 #include "tc_set.h"
 
 /* Some cookies for stats keeping */
-struct olsr_cookie_info *hna_net_timer_cookie = NULL;
-struct olsr_cookie_info *hna_net_mem_cookie = NULL;
+static struct olsr_cookie_info *hna_net_timer_cookie = NULL;
+static struct olsr_cookie_info *hna_net_mem_cookie = NULL;
 
 /**
  * Initialize the HNA set
@@ -175,7 +175,7 @@ olsr_expire_hna_net_entry(void *context)
  *
  *@return nada
  */
-void
+static void
 olsr_update_hna_entry(const union olsr_ip_addr *gw,
                       const struct olsr_ip_prefix *prefix,
                      olsr_reltime vtime)
index 3777cb0..4972bc4 100644 (file)
@@ -72,8 +72,6 @@ bool olsr_input_hna(union olsr_message *, struct interface *,
                     union olsr_ip_addr *);
 
 void olsr_init_hna_set(void);
-void olsr_update_hna_entry(const union olsr_ip_addr *,
-                           const struct olsr_ip_prefix *, olsr_reltime);
 void olsr_print_hna_set(void);
 
 #endif
index 74fed98..1144255 100644 (file)
@@ -58,7 +58,6 @@ int
 set_flag(char *, short);
 #endif
 
-void check_interface_updates(void *);
 void remove_interface(struct olsr_if *);
 int chk_if_up(struct olsr_if *, int);
 int chk_if_changed(struct olsr_if *);
index 836c533..9e7ad38 100644 (file)
@@ -74,6 +74,8 @@ struct olsr_cookie_info *mid_gen_timer_cookie = NULL;
 struct olsr_cookie_info *hna_gen_timer_cookie = NULL;
 struct olsr_cookie_info *buffer_hold_timer_cookie = NULL;
 
+static void check_interface_updates(void *);
+
 /**
  * Do initialization of various data needed for network interface management.
  * This function also tries to set up the given interfaces.
@@ -133,7 +135,7 @@ ifinit(void)
 /**
  * Callback function for periodic check of interface parameters.
  */
-void
+static void
 check_interface_updates(void *foo __attribute__((unused)))
 {
   struct olsr_if *tmp_if;
@@ -340,6 +342,7 @@ if_ifwithname(const char *if_name)
   return NULL;
 }
 
+#if 0
 /**
  * Find the interface with a given interface index.
  *
@@ -359,7 +362,9 @@ if_ifwithindex(const int if_index)
 
   return NULL;
 }
+#endif
 
+#if 0
 /**
  * Get an interface name for a given interface index
  *
@@ -372,6 +377,7 @@ if_ifwithindex_name(const int if_index)
   const struct interface *const ifp = if_ifwithindex(if_index);
   return ifp == NULL ? "void" : ifp->int_name;
 }
+#endif
 
 /**
  * Lock an interface.
@@ -449,6 +455,7 @@ add_ifchgf(ifchg_cb_func f)
   ifchgf_list = tmp;
 }
 
+#if 0
 /*
  * Remove an ifchange function
  */
@@ -473,6 +480,7 @@ del_ifchgf(ifchg_cb_func f)
   }
   return 0;
 }
+#endif
 
 /*
  * Local Variables:
index 9ac2bbd..21fa314 100644 (file)
@@ -214,16 +214,22 @@ void run_ifchg_cbs(struct interface *, int);
 struct interface *if_ifwithsock(int);
 struct interface *if_ifwithaddr(const union olsr_ip_addr *);
 struct interface *if_ifwithname(const char *);
+#if 0
 const char *if_ifwithindex_name(const int if_index);
+#endif
+#if 0
 struct interface *if_ifwithindex(const int if_index);
+#endif
 struct olsr_if *queue_if(const char *, int);
-void add_ifchgf(ifchg_cb_func f);
+PLUGIN_PUB void add_ifchgf(ifchg_cb_func f);
+#if 0
 int del_ifchgf(ifchg_cb_func f);
+#endif
 void lock_interface(struct interface *);
 void unlock_interface(struct interface *);
 
 extern struct olsr_cookie_info *interface_mem_cookie;
-extern struct olsr_cookie_info *interface_poll_timer_cookie;
+extern struct olsr_cookie_info *interface_poll_timer_cookie; /* Maybe static */
 extern struct olsr_cookie_info *hello_gen_timer_cookie;
 extern struct olsr_cookie_info *tc_gen_timer_cookie;
 extern struct olsr_cookie_info *mid_gen_timer_cookie;
index 2869f94..ebe16e8 100644 (file)
@@ -146,7 +146,7 @@ int ip_in_net(const union olsr_ip_addr *ipaddr, const struct olsr_ip_prefix *net
   return rv;
 }
 
-const char *sockaddr4_to_string(char * const buf, int bufsize, const struct sockaddr * const addr)
+static const char *sockaddr4_to_string(char * const buf, int bufsize, const struct sockaddr * const addr)
 {
   char addrbuf[INET6_ADDRSTRLEN];
   const struct sockaddr_in * const sin4 = (const struct sockaddr_in *)addr;
@@ -157,7 +157,7 @@ const char *sockaddr4_to_string(char * const buf, int bufsize, const struct sock
   return buf;
 }
 
-const char *sockaddr6_to_string(char * const buf, int bufsize, const struct sockaddr * const addr)
+static const char *sockaddr6_to_string(char * const buf, int bufsize, const struct sockaddr * const addr)
 {
   char addrbuf[INET6_ADDRSTRLEN];
   const struct sockaddr_in6 * const sin6 = (const struct sockaddr_in6 *)addr;
index e45a018..e0244f7 100644 (file)
@@ -97,10 +97,6 @@ static INLINE const char *olsr_ip_to_string(struct ipaddr_str * const buf, const
 
 const char *olsr_ip_prefix_to_string(struct ipprefix_str * const buf, const struct olsr_ip_prefix *prefix);
 
-const char *sockaddr4_to_string(char * const buf, int bufsize, const struct sockaddr * const addr);
-
-const char *sockaddr6_to_string(char * const buf, int bufsize, const struct sockaddr * const addr);
-
 const char *sockaddr_to_string(char *buf, int bufsize, const struct sockaddr * const addr, unsigned int addrsize);
 
 /* we need to handle one value specifically since shifting 32 bits of a 32 bit integer is the same as shifting 0 bits.
index 9d3e793..8d96ac6 100644 (file)
@@ -492,7 +492,7 @@ olsr_expire_link_entry(void *context)
 /**
  * Set the link expiration timer.
  */
-void
+static void
 olsr_set_link_timer(struct link_entry *link, unsigned int rel_timer)
 {
   olsr_set_timer(&link->link_timer, rel_timer, OLSR_LINK_JITTER,
index edc6315..9c30064 100644 (file)
@@ -119,7 +119,6 @@ extern bool link_changes;
 
 /* Function prototypes */
 
-void olsr_set_link_timer(struct link_entry *, unsigned int);
 void olsr_init_link_set(void);
 void olsr_delete_link_entry_by_if(const int);
 void olsr_expire_link_hello_timer(void *);
index a46083e..d8c025d 100644 (file)
@@ -87,7 +87,7 @@ static char orig_global_redirect_state;
  *@return negative if error
  */
 
-int
+static int
 bind_socket_to_device(int sock, char *dev_name)
 {
   /*
index d3d6581..8086fcc 100644 (file)
 #include "lq_plugin_default_fpm.h"
 #include "lq_plugin_default_ff.h"
 
-struct avl_tree lq_handler_tree;
+static  struct avl_tree lq_handler_tree;
 struct lq_handler *active_lq_handler = NULL;
 
-int
+static void register_lq_handler(struct lq_handler *handler, const char *name);
+static int activate_lq_handler(const char *name);
+
+static int
 avl_strcasecmp(const void *str1, const void *str2)
 {
   return strcasecmp(str1, str2);
@@ -88,7 +91,7 @@ init_lq_handler_tree(void)
  * @param pointer to lq_handler structure
  * @param name of the link quality handler for debug output
  */
-void
+static void
 register_lq_handler(struct lq_handler *handler, const char *name)
 {
   struct lq_handler_node *node;
@@ -103,7 +106,7 @@ register_lq_handler(struct lq_handler *handler, const char *name)
   avl_insert(&lq_handler_tree, &node->node, false);
 }
 
-int
+static int
 activate_lq_handler(const char *name)
 {
   struct lq_handler_node *node;
index fdb58a7..23c8dae 100644 (file)
@@ -109,12 +109,8 @@ AVLNODE2STRUCT(lq_handler_tree2lq_handler_node, struct lq_handler_node, node);
     lq = lq_handler_tree2lq_handler_node(lq_tree_node);
 #define OLSR_FOR_ALL_LQ_HANDLERS_END(tc) }}
 
-int avl_strcasecmp(const void *str1, const void *str2);
 void init_lq_handler_tree(void);
 
-void register_lq_handler(struct lq_handler *handler, const char *name);
-int activate_lq_handler(const char *name);
-
 olsr_linkcost olsr_calc_tc_cost(const struct tc_edge_entry *);
 bool olsr_is_relevant_costchange(olsr_linkcost c1, olsr_linkcost c2);
 
index d111b24..c3de488 100644 (file)
 #include "mid_set.h"
 #include "scheduler.h"
 
+#define LQ_PLUGIN_LC_MULTIPLIER 1024
+#define LQ_PLUGIN_RELEVANT_COSTCHANGE_FF 16
+
+/* 16,32,64 and max. 128 */
+#define LQ_FF_WINDOW 64
+#define LQ_FF_QUICKSTART_INIT 4
+
+struct default_lq_ff {
+  uint8_t valueLq;
+  uint8_t valueNlq;
+};
+
+struct default_lq_ff_hello {
+  struct default_lq_ff lq;
+       uint8_t windowSize, activePtr;
+       uint16_t last_seq_nr;
+       uint16_t received[LQ_FF_WINDOW], lost[LQ_FF_WINDOW];
+};
+
+static void default_lq_initialize_ff(void);
+
+static olsr_linkcost default_lq_calc_cost_ff(const void *lq);
+
+static bool default_lq_is_relevant_costchange_ff(olsr_linkcost c1, olsr_linkcost c2);
+
+static olsr_linkcost default_lq_packet_loss_worker_ff(struct link_entry *link, void *lq, bool lost);
+static void default_lq_memorize_foreign_hello_ff(void *local, void *foreign);
+
+static int default_lq_serialize_hello_lq_pair_ff(unsigned char *buff, void *lq);
+static void default_lq_deserialize_hello_lq_pair_ff(const uint8_t **curr, void *lq);
+static int default_lq_serialize_tc_lq_pair_ff(unsigned char *buff, void *lq);
+static void default_lq_deserialize_tc_lq_pair_ff(const uint8_t **curr, void *lq);
+
+static void default_lq_copy_link2tc_ff(void *target, void *source);
+static void default_lq_clear_ff(void *target);
+static void default_lq_clear_ff_hello(void *target);
+
+static const char *default_lq_print_ff(void *ptr, char separator, struct lqtextbuffer *buffer);
+static const char *default_lq_print_cost_ff(olsr_linkcost cost, struct lqtextbuffer *buffer);
+
 /* etx lq plugin (freifunk fpm version) settings */
 struct lq_handler lq_etx_ff_handler = {
     &default_lq_initialize_ff,
@@ -178,7 +218,7 @@ static void default_lq_ff_timer(void __attribute__((unused)) *context) {
   }OLSR_FOR_ALL_LINK_ENTRIES_END(link);
 }
 
-void default_lq_initialize_ff(void) {
+static void default_lq_initialize_ff(void) {
   /* Some cookies for stats keeping */
   static struct olsr_cookie_info *default_lq_ff_timer_cookie = NULL;
 
@@ -189,7 +229,7 @@ void default_lq_initialize_ff(void) {
                    default_lq_ff_timer_cookie->ci_id);
 }
 
-olsr_linkcost default_lq_calc_cost_ff(const void *ptr) {
+static olsr_linkcost default_lq_calc_cost_ff(const void *ptr) {
   const struct default_lq_ff *lq = ptr;
   olsr_linkcost cost;
 
@@ -206,7 +246,7 @@ olsr_linkcost default_lq_calc_cost_ff(const void *ptr) {
   return cost;
 }
 
-int default_lq_serialize_hello_lq_pair_ff(unsigned char *buff, void *ptr) {
+static int default_lq_serialize_hello_lq_pair_ff(unsigned char *buff, void *ptr) {
   struct default_lq_ff *lq = ptr;
 
   buff[0] = (unsigned char)lq->valueLq;
@@ -217,7 +257,7 @@ int default_lq_serialize_hello_lq_pair_ff(unsigned char *buff, void *ptr) {
   return 4;
 }
 
-void default_lq_deserialize_hello_lq_pair_ff(const uint8_t **curr, void *ptr) {
+static void default_lq_deserialize_hello_lq_pair_ff(const uint8_t **curr, void *ptr) {
   struct default_lq_ff *lq = ptr;
 
   pkt_get_u8(curr, &lq->valueLq);
@@ -225,14 +265,14 @@ void default_lq_deserialize_hello_lq_pair_ff(const uint8_t **curr, void *ptr) {
   pkt_ignore_u16(curr);
 }
 
-bool default_lq_is_relevant_costchange_ff(olsr_linkcost c1, olsr_linkcost c2) {
+static bool default_lq_is_relevant_costchange_ff(olsr_linkcost c1, olsr_linkcost c2) {
   if (c1 > c2) {
     return c2 - c1 > LQ_PLUGIN_RELEVANT_COSTCHANGE_FF;
   }
   return c1 - c2 > LQ_PLUGIN_RELEVANT_COSTCHANGE_FF;
 }
 
-int default_lq_serialize_tc_lq_pair_ff(unsigned char *buff, void *ptr) {
+static int default_lq_serialize_tc_lq_pair_ff(unsigned char *buff, void *ptr) {
   struct default_lq_ff *lq = ptr;
 
   buff[0] = (unsigned char)lq->valueLq;
@@ -243,7 +283,7 @@ int default_lq_serialize_tc_lq_pair_ff(unsigned char *buff, void *ptr) {
   return 4;
 }
 
-void default_lq_deserialize_tc_lq_pair_ff(const uint8_t **curr, void *ptr) {
+static void default_lq_deserialize_tc_lq_pair_ff(const uint8_t **curr, void *ptr) {
   struct default_lq_ff *lq = ptr;
 
   pkt_get_u8(curr, &lq->valueLq);
@@ -251,11 +291,11 @@ void default_lq_deserialize_tc_lq_pair_ff(const uint8_t **curr, void *ptr) {
   pkt_ignore_u16(curr);
 }
 
-olsr_linkcost default_lq_packet_loss_worker_ff(struct link_entry __attribute__((unused)) *link, void __attribute__((unused)) *ptr, bool __attribute__((unused)) lost) {
+static olsr_linkcost default_lq_packet_loss_worker_ff(struct link_entry __attribute__((unused)) *link, void __attribute__((unused)) *ptr, bool __attribute__((unused)) lost) {
   return link->linkcost;
 }
 
-void default_lq_memorize_foreign_hello_ff(void *ptrLocal, void *ptrForeign) {
+static void default_lq_memorize_foreign_hello_ff(void *ptrLocal, void *ptrForeign) {
   struct default_lq_ff *local = ptrLocal;
   struct default_lq_ff *foreign = ptrForeign;
 
@@ -266,15 +306,15 @@ void default_lq_memorize_foreign_hello_ff(void *ptrLocal, void *ptrForeign) {
   }
 }
 
-void default_lq_copy_link2tc_ff(void *target, void *source) {
+static void default_lq_copy_link2tc_ff(void *target, void *source) {
   memcpy(target, source, sizeof(struct default_lq_ff));
 }
 
-void default_lq_clear_ff(void *target) {
+static void default_lq_clear_ff(void *target) {
   memset(target, 0, sizeof(struct default_lq_ff));
 }
 
-void default_lq_clear_ff_hello(void *target) {
+static void default_lq_clear_ff_hello(void *target) {
   struct default_lq_ff_hello *local = target;
   int i;
 
@@ -285,7 +325,7 @@ void default_lq_clear_ff_hello(void *target) {
   }
 }
 
-const char *default_lq_print_ff(void *ptr, char separator, struct lqtextbuffer *buffer) {
+static const char *default_lq_print_ff(void *ptr, char separator, struct lqtextbuffer *buffer) {
   struct default_lq_ff *lq = ptr;
   int i = 0;
 
@@ -309,7 +349,7 @@ const char *default_lq_print_ff(void *ptr, char separator, struct lqtextbuffer *
   return buffer->buf;
 }
 
-const char *default_lq_print_cost_ff(olsr_linkcost cost, struct lqtextbuffer *buffer) {
+static const char *default_lq_print_cost_ff(olsr_linkcost cost, struct lqtextbuffer *buffer) {
        default_lq_ff_linkcost2text(buffer, cost);
   return buffer->buf;
 }
index 83dc9fb..7fd93a2 100644 (file)
 #include "olsr_types.h"
 #include "lq_plugin.h"
 
-#define LQ_PLUGIN_LC_MULTIPLIER 1024
-#define LQ_PLUGIN_RELEVANT_COSTCHANGE_FF 16
-
 #define LQ_ALGORITHM_ETX_FF_NAME "etx_ff"
 
-/* 16,32,64 and max. 128 */
-#define LQ_FF_WINDOW 64
-#define LQ_FF_QUICKSTART_INIT 4
-
-struct default_lq_ff {
-  uint8_t valueLq;
-  uint8_t valueNlq;
-};
-
-struct default_lq_ff_hello {
-  struct default_lq_ff lq;
-       uint8_t windowSize, activePtr;
-       uint16_t last_seq_nr;
-       uint16_t received[LQ_FF_WINDOW], lost[LQ_FF_WINDOW];
-};
-
-void default_lq_initialize_ff(void);
-
-olsr_linkcost default_lq_calc_cost_ff(const void *lq);
-
-bool default_lq_is_relevant_costchange_ff(olsr_linkcost c1, olsr_linkcost c2);
-
-olsr_linkcost default_lq_packet_loss_worker_ff(struct link_entry *link, void *lq, bool lost);
-void default_lq_memorize_foreign_hello_ff(void *local, void *foreign);
-
-int default_lq_serialize_hello_lq_pair_ff(unsigned char *buff, void *lq);
-void default_lq_deserialize_hello_lq_pair_ff(const uint8_t **curr, void *lq);
-int default_lq_serialize_tc_lq_pair_ff(unsigned char *buff, void *lq);
-void default_lq_deserialize_tc_lq_pair_ff(const uint8_t **curr, void *lq);
-
-void default_lq_copy_link2tc_ff(void *target, void *source);
-void default_lq_clear_ff(void *target);
-void default_lq_clear_ff_hello(void *target);
-
-const char *default_lq_print_ff(void *ptr, char separator, struct lqtextbuffer *buffer);
-const char *default_lq_print_cost_ff(olsr_linkcost cost, struct lqtextbuffer *buffer);
-
 extern struct lq_handler lq_etx_ff_handler;
 
 #endif /*LQ_ETX_FF_*/
index f5ce4bb..8eb162b 100644 (file)
 #include "olsr.h"
 #include "lq_plugin_default_float.h"
 
+#define LQ_PLUGIN_LC_MULTIPLIER 1024
+
+struct default_lq_float {
+  float lq, nlq;
+  uint16_t quickstart;
+};
+
+static void default_lq_initialize_float(void);
+
+static olsr_linkcost default_lq_calc_cost_float(const void *lq);
+
+static bool default_lq_is_relevant_costchange_float(olsr_linkcost c1, olsr_linkcost c2);
+
+static olsr_linkcost default_lq_packet_loss_worker_float(struct link_entry *link, void *lq, bool lost);
+static void default_lq_memorize_foreign_hello_float(void *local, void *foreign);
+
+static int default_lq_serialize_hello_lq_pair_float(unsigned char *buff, void *lq);
+static void default_lq_deserialize_hello_lq_pair_float(const uint8_t **curr, void *lq);
+static int default_lq_serialize_tc_lq_pair_float(unsigned char *buff, void *lq);
+static void default_lq_deserialize_tc_lq_pair_float(const uint8_t **curr, void *lq);
+
+static void default_lq_copy_link2tc_float(void *target, void *source);
+static void default_lq_clear_float(void *target);
+
+static const char *default_lq_print_float(void *ptr, char separator, struct lqtextbuffer *buffer);
+static const char *default_lq_print_cost_float(olsr_linkcost cost, struct lqtextbuffer *buffer);
+
 /* Default lq plugin settings */
 struct lq_handler lq_etx_float_handler = {
   &default_lq_initialize_float,
@@ -74,11 +101,11 @@ struct lq_handler lq_etx_float_handler = {
   sizeof(struct default_lq_float)
 };
 
-void default_lq_initialize_float(void) {
+static void default_lq_initialize_float(void) {
   return;
 }
 
-olsr_linkcost default_lq_calc_cost_float(const void *ptr) {
+static olsr_linkcost default_lq_calc_cost_float(const void *ptr) {
   const struct default_lq_float *lq = ptr;
   olsr_linkcost cost;
 
@@ -96,7 +123,7 @@ olsr_linkcost default_lq_calc_cost_float(const void *ptr) {
   return cost;
 }
 
-int default_lq_serialize_hello_lq_pair_float(unsigned char *buff, void *ptr) {
+static int default_lq_serialize_hello_lq_pair_float(unsigned char *buff, void *ptr) {
   struct default_lq_float *lq = ptr;
 
   buff[0] = (unsigned char)(lq->lq * 255);
@@ -107,7 +134,7 @@ int default_lq_serialize_hello_lq_pair_float(unsigned char *buff, void *ptr) {
   return 4;
 }
 
-void default_lq_deserialize_hello_lq_pair_float(const uint8_t **curr, void *ptr) {
+static void default_lq_deserialize_hello_lq_pair_float(const uint8_t **curr, void *ptr) {
   struct default_lq_float *lq = ptr;
   uint8_t lq_value, nlq_value;
 
@@ -119,14 +146,14 @@ void default_lq_deserialize_hello_lq_pair_float(const uint8_t **curr, void *ptr)
   lq->nlq = (float)nlq_value / 255.0;
 }
 
-bool default_lq_is_relevant_costchange_float(olsr_linkcost c1, olsr_linkcost c2) {
+static bool default_lq_is_relevant_costchange_float(olsr_linkcost c1, olsr_linkcost c2) {
   if (c1 > c2) {
     return c2 - c1 > LQ_PLUGIN_RELEVANT_COSTCHANGE;
   }
   return c1 - c2 > LQ_PLUGIN_RELEVANT_COSTCHANGE;
 }
 
-int default_lq_serialize_tc_lq_pair_float(unsigned char *buff, void *ptr) {
+static int default_lq_serialize_tc_lq_pair_float(unsigned char *buff, void *ptr) {
   struct default_lq_float *lq = ptr;
 
   buff[0] = (unsigned char)(lq->lq * 255);
@@ -137,7 +164,7 @@ int default_lq_serialize_tc_lq_pair_float(unsigned char *buff, void *ptr) {
   return 4;
 }
 
-void default_lq_deserialize_tc_lq_pair_float(const uint8_t **curr, void *ptr) {
+static void default_lq_deserialize_tc_lq_pair_float(const uint8_t **curr, void *ptr) {
   struct default_lq_float *lq = ptr;
   uint8_t lq_value, nlq_value;
 
@@ -149,7 +176,7 @@ void default_lq_deserialize_tc_lq_pair_float(const uint8_t **curr, void *ptr) {
   lq->nlq = (float)nlq_value / 255.0;
 }
 
-olsr_linkcost default_lq_packet_loss_worker_float(struct link_entry *link, void *ptr, bool lost) {
+static olsr_linkcost default_lq_packet_loss_worker_float(struct link_entry *link, void *ptr, bool lost) {
   struct default_lq_float *tlq = ptr;
   float alpha = olsr_cnf->lq_aging;
 
@@ -165,7 +192,7 @@ olsr_linkcost default_lq_packet_loss_worker_float(struct link_entry *link, void
   return default_lq_calc_cost_float(ptr);
 }
 
-void default_lq_memorize_foreign_hello_float(void *ptrLocal, void *ptrForeign) {
+static void default_lq_memorize_foreign_hello_float(void *ptrLocal, void *ptrForeign) {
   struct default_lq_float *local = ptrLocal;
   struct default_lq_float *foreign = ptrForeign;
 
@@ -177,15 +204,15 @@ void default_lq_memorize_foreign_hello_float(void *ptrLocal, void *ptrForeign) {
   }
 }
 
-void default_lq_copy_link2tc_float(void *target, void *source) {
+static void default_lq_copy_link2tc_float(void *target, void *source) {
   memcpy(target, source, sizeof(struct default_lq_float));
 }
 
-void default_lq_clear_float(void *target) {
+static void default_lq_clear_float(void *target) {
   memset(target, 0, sizeof(struct default_lq_float));
 }
 
-const char *default_lq_print_float(void *ptr, char separator, struct lqtextbuffer *buffer) {
+static const char *default_lq_print_float(void *ptr, char separator, struct lqtextbuffer *buffer) {
   struct default_lq_float *lq = ptr;
 
   snprintf(buffer->buf, sizeof(struct lqtextbuffer), "%2.3f%c%2.3f",
@@ -195,7 +222,7 @@ const char *default_lq_print_float(void *ptr, char separator, struct lqtextbuffe
   return buffer->buf;
 }
 
-const char *default_lq_print_cost_float(olsr_linkcost cost, struct lqtextbuffer *buffer) {
+static const char *default_lq_print_cost_float(olsr_linkcost cost, struct lqtextbuffer *buffer) {
   snprintf(buffer->buf, sizeof(struct lqtextbuffer), "%2.3f", ((float)cost)/LQ_PLUGIN_LC_MULTIPLIER );
 
 
index 96e25d9..4480e8b 100644 (file)
 
 #define LQ_ALGORITHM_ETX_FLOAT_NAME "etx_float"
 
-#define LQ_PLUGIN_LC_MULTIPLIER 1024
-
-struct default_lq_float {
-  float lq, nlq;
-  uint16_t quickstart;
-};
-
-void default_lq_initialize_float(void);
-
-olsr_linkcost default_lq_calc_cost_float(const void *lq);
-
-bool default_lq_is_relevant_costchange_float(olsr_linkcost c1, olsr_linkcost c2);
-
-olsr_linkcost default_lq_packet_loss_worker_float(struct link_entry *link, void *lq, bool lost);
-void default_lq_memorize_foreign_hello_float(void *local, void *foreign);
-
-int default_lq_serialize_hello_lq_pair_float(unsigned char *buff, void *lq);
-void default_lq_deserialize_hello_lq_pair_float(const uint8_t **curr, void *lq);
-int default_lq_serialize_tc_lq_pair_float(unsigned char *buff, void *lq);
-void default_lq_deserialize_tc_lq_pair_float(const uint8_t **curr, void *lq);
-
-void default_lq_copy_link2tc_float(void *target, void *source);
-void default_lq_clear_float(void *target);
-
-const char *default_lq_print_float(void *ptr, char separator, struct lqtextbuffer *buffer);
-const char *default_lq_print_cost_float(olsr_linkcost cost, struct lqtextbuffer *buffer);
-
 extern struct lq_handler lq_etx_float_handler;
 
 #endif /*LQ_PLUGIN_DEFAULT_H_*/
index e746f0a..3a059b9 100644 (file)
 #include "olsr.h"
 #include "lq_plugin_default_fpm.h"
 
+/* use only 1<<16 - 1 to allow the multiplication of two
+ * upscaled numbers between 0 and 1 */
+#define LQ_FPM_INTERNAL_MULTIPLIER 65535
+#define LQ_FPM_LINKCOST_MULTIPLIER 65535
+
+#define LQ_PLUGIN_RELEVANT_COSTCHANGE_FPM 64
+
+struct default_lq_fpm {
+       uint8_t valueLq;
+       uint8_t valueNlq;
+       uint16_t quickstart;
+};
+
+static void default_lq_initialize_fpm(void);
+
+static olsr_linkcost default_lq_calc_cost_fpm(const void *lq);
+
+static bool default_lq_is_relevant_costchange_fpm(olsr_linkcost c1, olsr_linkcost c2);
+
+static olsr_linkcost default_lq_packet_loss_worker_fpm(struct link_entry *link, void *lq, bool lost);
+static void default_lq_memorize_foreign_hello_fpm(void *local, void *foreign);
+
+static int default_lq_serialize_hello_lq_pair_fpm(unsigned char *buff, void *lq);
+static void default_lq_deserialize_hello_lq_pair_fpm(const uint8_t **curr, void *lq);
+static int default_lq_serialize_tc_lq_pair_fpm(unsigned char *buff, void *lq);
+static void default_lq_deserialize_tc_lq_pair_fpm(const uint8_t **curr, void *lq);
+
+static void default_lq_copy_link2tc_fpm(void *target, void *source);
+static void default_lq_clear_fpm(void *target);
+
+static const char *default_lq_print_fpm(void *ptr, char separator, struct lqtextbuffer *buffer);
+static const char *default_lq_print_cost_fpm(olsr_linkcost cost, struct lqtextbuffer *buffer);
+
 /* etx lq plugin (fpm version) settings */
 struct lq_handler lq_etx_fpm_handler = {
     &default_lq_initialize_fpm,
@@ -75,10 +108,10 @@ struct lq_handler lq_etx_fpm_handler = {
     sizeof(struct default_lq_fpm)
 };
 
-uint32_t aging_factor_new, aging_factor_old;
-uint32_t aging_quickstart_new, aging_quickstart_old;
+static uint32_t aging_factor_new, aging_factor_old;
+static uint32_t aging_quickstart_new, aging_quickstart_old;
 
-void default_lq_initialize_fpm(void) {
+static void default_lq_initialize_fpm(void) {
   aging_factor_new = (uint32_t)(olsr_cnf->lq_aging * LQ_FPM_INTERNAL_MULTIPLIER);
   aging_factor_old = LQ_FPM_INTERNAL_MULTIPLIER - aging_factor_new;
 
@@ -86,7 +119,7 @@ void default_lq_initialize_fpm(void) {
   aging_quickstart_old = LQ_FPM_INTERNAL_MULTIPLIER - aging_quickstart_new;
 }
 
-olsr_linkcost default_lq_calc_cost_fpm(const void *ptr) {
+static olsr_linkcost default_lq_calc_cost_fpm(const void *ptr) {
   const struct default_lq_fpm *lq = ptr;
   olsr_linkcost cost;
 
@@ -103,7 +136,7 @@ olsr_linkcost default_lq_calc_cost_fpm(const void *ptr) {
   return cost;
 }
 
-int default_lq_serialize_hello_lq_pair_fpm(unsigned char *buff, void *ptr) {
+static int default_lq_serialize_hello_lq_pair_fpm(unsigned char *buff, void *ptr) {
   struct default_lq_fpm *lq = ptr;
 
   buff[0] = (unsigned char)lq->valueLq;
@@ -114,7 +147,7 @@ int default_lq_serialize_hello_lq_pair_fpm(unsigned char *buff, void *ptr) {
   return 4;
 }
 
-void default_lq_deserialize_hello_lq_pair_fpm(const uint8_t **curr, void *ptr) {
+static void default_lq_deserialize_hello_lq_pair_fpm(const uint8_t **curr, void *ptr) {
   struct default_lq_fpm *lq = ptr;
 
   pkt_get_u8(curr, &lq->valueLq);
@@ -122,14 +155,14 @@ void default_lq_deserialize_hello_lq_pair_fpm(const uint8_t **curr, void *ptr) {
   pkt_ignore_u16(curr);
 }
 
-bool default_lq_is_relevant_costchange_fpm(olsr_linkcost c1, olsr_linkcost c2) {
+static bool default_lq_is_relevant_costchange_fpm(olsr_linkcost c1, olsr_linkcost c2) {
   if (c1 > c2) {
     return c2 - c1 > LQ_PLUGIN_RELEVANT_COSTCHANGE_FPM;
   }
   return c1 - c2 > LQ_PLUGIN_RELEVANT_COSTCHANGE_FPM;
 }
 
-int default_lq_serialize_tc_lq_pair_fpm(unsigned char *buff, void *ptr) {
+static int default_lq_serialize_tc_lq_pair_fpm(unsigned char *buff, void *ptr) {
   struct default_lq_fpm *lq = ptr;
 
   buff[0] = (unsigned char)lq->valueLq;
@@ -140,7 +173,7 @@ int default_lq_serialize_tc_lq_pair_fpm(unsigned char *buff, void *ptr) {
   return 4;
 }
 
-void default_lq_deserialize_tc_lq_pair_fpm(const uint8_t **curr, void *ptr) {
+static void default_lq_deserialize_tc_lq_pair_fpm(const uint8_t **curr, void *ptr) {
   struct default_lq_fpm *lq = ptr;
 
   pkt_get_u8(curr, &lq->valueLq);
@@ -148,7 +181,7 @@ void default_lq_deserialize_tc_lq_pair_fpm(const uint8_t **curr, void *ptr) {
   pkt_ignore_u16(curr);
 }
 
-olsr_linkcost default_lq_packet_loss_worker_fpm(struct link_entry *link, void *ptr, bool lost) {
+static olsr_linkcost default_lq_packet_loss_worker_fpm(struct link_entry *link, void *ptr, bool lost) {
   struct default_lq_fpm *tlq = ptr;
   uint32_t alpha_old = aging_factor_old;
   uint32_t alpha_new = aging_factor_new;
@@ -178,7 +211,7 @@ olsr_linkcost default_lq_packet_loss_worker_fpm(struct link_entry *link, void *p
   return default_lq_calc_cost_fpm(ptr);
 }
 
-void default_lq_memorize_foreign_hello_fpm(void *ptrLocal, void *ptrForeign) {
+static void default_lq_memorize_foreign_hello_fpm(void *ptrLocal, void *ptrForeign) {
   struct default_lq_fpm *local = ptrLocal;
   struct default_lq_fpm *foreign = ptrForeign;
 
@@ -190,15 +223,15 @@ void default_lq_memorize_foreign_hello_fpm(void *ptrLocal, void *ptrForeign) {
   }
 }
 
-void default_lq_copy_link2tc_fpm(void *target, void *source) {
+static void default_lq_copy_link2tc_fpm(void *target, void *source) {
   memcpy(target, source, sizeof(struct default_lq_fpm));
 }
 
-void default_lq_clear_fpm(void *target) {
+static void default_lq_clear_fpm(void *target) {
   memset(target, 0, sizeof(struct default_lq_fpm));
 }
 
-const char *default_lq_print_fpm(void *ptr, char separator, struct lqtextbuffer *buffer) {
+static const char *default_lq_print_fpm(void *ptr, char separator, struct lqtextbuffer *buffer) {
   struct default_lq_fpm *lq = ptr;
 
   snprintf(buffer->buf, sizeof(buffer->buf), "%0.3f%c%0.3f",
@@ -208,7 +241,7 @@ const char *default_lq_print_fpm(void *ptr, char separator, struct lqtextbuffer
   return buffer->buf;
 }
 
-const char *default_lq_print_cost_fpm(olsr_linkcost cost, struct lqtextbuffer *buffer) {
+static const char *default_lq_print_cost_fpm(olsr_linkcost cost, struct lqtextbuffer *buffer) {
   snprintf(buffer->buf, sizeof(buffer->buf), "%.3f", (float)(cost) / LQ_FPM_LINKCOST_MULTIPLIER);
   return buffer->buf;
 }
index 62b34f1..47c020a 100644 (file)
 #include "olsr_types.h"
 #include "lq_plugin.h"
 
-/* use only 1<<16 - 1 to allow the multiplication of two
- * upscaled numbers between 0 and 1 */
-#define LQ_FPM_INTERNAL_MULTIPLIER 65535
-#define LQ_FPM_LINKCOST_MULTIPLIER 65535
-
-#define LQ_PLUGIN_RELEVANT_COSTCHANGE_FPM 64
-
 #define LQ_ALGORITHM_ETX_FPM_NAME "etx_fpm"
 
-struct default_lq_fpm {
-       uint8_t valueLq;
-       uint8_t valueNlq;
-       uint16_t quickstart;
-};
-
-void default_lq_initialize_fpm(void);
-
-olsr_linkcost default_lq_calc_cost_fpm(const void *lq);
-
-bool default_lq_is_relevant_costchange_fpm(olsr_linkcost c1, olsr_linkcost c2);
-
-olsr_linkcost default_lq_packet_loss_worker_fpm(struct link_entry *link, void *lq, bool lost);
-void default_lq_memorize_foreign_hello_fpm(void *local, void *foreign);
-
-int default_lq_serialize_hello_lq_pair_fpm(unsigned char *buff, void *lq);
-void default_lq_deserialize_hello_lq_pair_fpm(const uint8_t **curr, void *lq);
-int default_lq_serialize_tc_lq_pair_fpm(unsigned char *buff, void *lq);
-void default_lq_deserialize_tc_lq_pair_fpm(const uint8_t **curr, void *lq);
-
-void default_lq_copy_link2tc_fpm(void *target, void *source);
-void default_lq_clear_fpm(void *target);
-
-const char *default_lq_print_fpm(void *ptr, char separator, struct lqtextbuffer *buffer);
-const char *default_lq_print_cost_fpm(olsr_linkcost cost, struct lqtextbuffer *buffer);
-
 extern struct lq_handler lq_etx_fpm_handler;
 
 #endif /*LQ_ETX_FPM_*/
index 4e12810..75a8851 100644 (file)
 
 #include <stdlib.h>
 
+static struct mid_entry *olsr_lookup_mid_entry(const union olsr_ip_addr *);
+static void olsr_prune_mid_entries(const union olsr_ip_addr *main_addr, uint16_t mid_seqno);
+static void olsr_flush_mid_entries(struct tc_entry *);
+
 /* Root of the MID tree */
 struct avl_tree mid_tree;
 
 /* Some cookies for stats keeping */
-struct olsr_cookie_info *mid_validity_timer_cookie = NULL;
-struct olsr_cookie_info *mid_address_mem_cookie = NULL;
+static struct olsr_cookie_info *mid_validity_timer_cookie = NULL;
+static struct olsr_cookie_info *mid_address_mem_cookie = NULL;
 
 /**
  * Initialize the MID set
@@ -282,7 +286,7 @@ olsr_insert_mid_entry(const union olsr_ip_addr *main_addr,
  * @param vtime the validity time
  * @param seq the sequence number to register a new node with
  */
-void
+static void
 olsr_update_mid_entry(const union olsr_ip_addr *main_addr,
                       const union olsr_ip_addr *alias_addr,
                       olsr_reltime vtime, uint16_t mid_seqno)
@@ -348,7 +352,7 @@ olsr_lookup_tc_mid_entry(struct tc_entry *tc, const union olsr_ip_addr *adr)
  * @param adr the alias address to check
  * @return the MID address entry or NULL if not found
  */
-struct mid_entry *
+static struct mid_entry *
 olsr_lookup_mid_entry(const union olsr_ip_addr *adr)
 {
 #if 0
@@ -417,7 +421,7 @@ olsr_delete_mid_entry(struct mid_entry *alias)
  *
  * @param entry the tc entry holding the aliases.
  */
-void
+static void
 olsr_flush_mid_entries(struct tc_entry *tc)
 {
   struct mid_entry *alias;
@@ -442,7 +446,7 @@ olsr_flush_mid_entries(struct tc_entry *tc)
  * @param main_addr the root of MID entries.
  * @param mid_seqno the most recent message sequence number
  */
-void
+static void
 olsr_prune_mid_entries(const union olsr_ip_addr *main_addr, uint16_t mid_seqno)
 {
   struct tc_entry *tc = olsr_locate_tc_entry(main_addr);
index 80002a4..b5639ba 100644 (file)
@@ -83,15 +83,10 @@ bool olsr_input_mid(union olsr_message *, struct interface *,
                     union olsr_ip_addr *);
 
 void olsr_init_mid_set(void);
-void olsr_update_mid_entry(const union olsr_ip_addr *, const union olsr_ip_addr *,
-                           olsr_reltime, uint16_t);
 void olsr_delete_mid_entry(struct mid_entry *);
 union olsr_ip_addr *olsr_lookup_main_addr_by_alias(const union olsr_ip_addr *);
-struct mid_entry *olsr_lookup_mid_entry(const union olsr_ip_addr *);
 struct mid_entry *olsr_lookup_tc_mid_entry(struct tc_entry *,
                                                const union olsr_ip_addr *);
-void olsr_prune_mid_entries(const union olsr_ip_addr *, uint16_t);
-void olsr_flush_mid_entries(struct tc_entry *);
 void olsr_print_mid_set(void);
 
 #endif
index f710e8b..765c95c 100644 (file)
--- a/src/mpr.c
+++ b/src/mpr.c
@@ -567,6 +567,7 @@ olsr_optimize_mpr_set(void)
   }
 }
 
+#if 0
 void
 olsr_print_mpr_set(void)
 {
@@ -590,6 +591,7 @@ olsr_print_mpr_set(void)
   OLSR_PRINTF(1, "\n");
 #endif
 }
+#endif
 
 /*
  * Local Variables:
index a6af9d7..f26ea99 100644 (file)
--- a/src/mpr.h
+++ b/src/mpr.h
 void
 olsr_calculate_mpr(void);
 
+#if 0
 void
 olsr_print_mpr_set(void);
-
+#endif
 
 #endif
 
index 21cf093..3f76fec 100644 (file)
@@ -54,6 +54,7 @@
 
 bool disp_pack_out = false;
 
+static void olsr_add_invalid_address(const union olsr_ip_addr *);
 
 #ifdef WIN32
 #define perror(x) WinSockPError(x)
@@ -257,6 +258,7 @@ add_ptf(packet_transform_function f)
   ptf_list = new_ptf;
 }
 
+#if 0
 /**
  * Remove a packet transform function
  *
@@ -285,6 +287,7 @@ del_ptf(packet_transform_function f)
   }
   return 0;
 }
+#endif
 
 /**
  *Sends a packet on a given interface.
@@ -386,7 +389,7 @@ net_output(struct interface *ifp)
 /*
  * Adds the given IP-address to the invalid list.
  */
-void
+static void
 olsr_add_invalid_address(const union olsr_ip_addr *addr)
 {
   struct ipaddr_str buf;
index b01aa15..3e981a6 100644 (file)
@@ -105,14 +105,14 @@ int net_outbuffer_push_reserved(struct interface *, const void *, const uint16_t
 
 int net_output(struct interface *);
 
-void add_ptf(packet_transform_function);
+PLUGIN_PUB void add_ptf(packet_transform_function);
 
+#if 0
 int del_ptf(packet_transform_function);
+#endif
 
 bool olsr_validate_address(const union olsr_ip_addr *);
 
-void olsr_add_invalid_address(const union olsr_ip_addr *);
-
 #endif
 
 /*
index f068354..7b7d3f4 100644 (file)
@@ -79,9 +79,6 @@ olsr_select(int,
            struct timeval *);
 
 int
-bind_socket_to_device(int, char *);
-
-int
 convert_ip_to_mac(union olsr_ip_addr *, struct sockaddr *, char *);
 
 int
index 48606f4..bc4c8f2 100644 (file)
@@ -68,6 +68,8 @@
 #include <unistd.h>
 #include <stdlib.h>
 
+static void olsr_update_willingness(void *);
+static void olsr_trigger_forced_update(void *);
 
 bool changes_topology;
 bool changes_neighborhood;
@@ -220,7 +222,7 @@ olsr_process_changes(void)
 /*
  * Callback for the periodic route calculation.
  */
-void
+static void
 olsr_trigger_forced_update(void *unused __attribute__((unused))) {
 
   changes_force = true;
@@ -480,7 +482,7 @@ olsr_init_willingness(void)
   }
 }
 
-void
+static void
 olsr_update_willingness(void *foo __attribute__((unused)))
 {
   int tmp_will = olsr_cnf->willingness;
index 6da1d3e..611ec29 100644 (file)
 extern bool changes_topology;
 extern bool changes_neighborhood;
 extern bool changes_hna;
-extern bool changes_force;
+extern bool changes_force; /* Maybe static */
 
 extern const union olsr_ip_addr all_zero;
 
-void
+PLUGIN_PUB void
 register_pcf(int (*)(int, int, int));
 
 void
@@ -77,9 +77,6 @@ olsr_init_tables(void);
 void
 olsr_init_willingness(void);
 
-void
-olsr_update_willingness(void *);
-
 uint8_t
 olsr_calculate_willingness(void);
 
@@ -98,12 +95,9 @@ olsr_exit(const char *, int);
 void *
 olsr_malloc(size_t, const char *);
 
-int
+PLUGIN_PUB int
 olsr_printf(int, const char *, ...) __attribute__((format(printf,2,3)));
 
-void
-olsr_trigger_forced_update(void *);
-
 #endif
 
 /*
index 91f9854..bc0a546 100644 (file)
@@ -69,6 +69,7 @@ static char* olsr_strndup(const char *s, size_t n);
 static char** olsr_strtok(const char *s, const char **snext);
 static void olsr_strtok_free(char **s);
 static int read_config (const char *filename, int *pargc, char ***pargv);
+static struct if_config_options *olsr_get_default_if_config(void);
 
 struct olsrd_config *
 olsr_parse_cnf(int argc, char* argv[], const char *conf_file_name)
@@ -1115,7 +1116,7 @@ olsr_get_default_cnf(void)
   return c;
 }
 
-void
+static void
 olsr_init_default_if_config(struct if_config_options *io)
 {
   struct in6_addr in6;
@@ -1148,7 +1149,7 @@ olsr_init_default_if_config(struct if_config_options *io)
   io->autodetect_chg = true;
 }
 
-struct if_config_options *
+static struct if_config_options *
 olsr_get_default_if_config(void)
 {
   struct if_config_options *io = olsr_malloc(sizeof(*io), "default_if_config");
@@ -1161,6 +1162,7 @@ olsr_get_default_if_config(void)
   return io;
 }
 
+#if 0
 int
 olsr_check_pollrate(float *pollrate)
 {
@@ -1177,6 +1179,7 @@ olsr_check_pollrate(float *pollrate)
   }
   return 0;
 }
+#endif
 
 void
 ip_prefix_list_add(struct ip_prefix_list **list, const union olsr_ip_addr *net, uint8_t prefix_len)
index 8884776..a8ca0ef 100644 (file)
@@ -246,8 +246,6 @@ struct olsrd_config *olsr_parse_cnf(int, char **, const char *);
 int olsr_sanity_check_cnf(struct olsrd_config *);
 void olsr_free_cnf(struct olsrd_config *);
 struct olsrd_config *olsr_get_default_cnf(void);
-void olsr_init_default_if_config(struct if_config_options *);
-struct if_config_options *olsr_get_default_if_config(void);
 
 /*
  * Check pollrate function
@@ -258,13 +256,15 @@ static inline float conv_pollrate_to_secs(uint32_t p) {
 static inline uint32_t conv_pollrate_to_microsecs(float p) {
   return p * 1000000;
 }
+#if 0
 int olsr_check_pollrate(float *pollrate);
+#endif
 
 /*
  * List functions
  */
-void ip_prefix_list_add(struct ip_prefix_list **, const union olsr_ip_addr *, uint8_t);
-int ip_prefix_list_remove(struct ip_prefix_list **, const union olsr_ip_addr *, uint8_t);
+PLUGIN_PUB void ip_prefix_list_add(struct ip_prefix_list **, const union olsr_ip_addr *, uint8_t);
+PLUGIN_PUB int ip_prefix_list_remove(struct ip_prefix_list **, const union olsr_ip_addr *, uint8_t);
 struct ip_prefix_list *ip_prefix_list_find(struct ip_prefix_list *, const union olsr_ip_addr *net, uint8_t prefix_len);
 
 #endif /* _OLSRD_CFG_H */
index 87a2c11..12e5c42 100644 (file)
@@ -175,6 +175,7 @@ olsr_print_cnf(const struct olsrd_config *cnf)
   }
 }
 
+#if 0
 int
 olsr_write_cnf(const struct olsrd_config *cnf, const char *fname)
 {
@@ -197,6 +198,7 @@ olsr_write_cnf(const struct olsrd_config *cnf, const char *fname)
 
   return 1;
 }
+#endif
 
 static INLINE void
 append_float(struct autobuf *abuf, const char *name, float val, float deflt, bool first)
index 781a746..b91137e 100644 (file)
  * Interface config generation
  */
 void olsr_print_cnf(const struct olsrd_config *);
+#if 0
 int olsr_write_cnf(const struct olsrd_config *cnf, const char *fname);
-void olsr_write_cnf_buf(struct autobuf *abuf, const struct olsrd_config *cnf, bool write_more_comments);
+#endif
+PLUGIN_PUB void olsr_write_cnf_buf(struct autobuf *abuf, const struct olsrd_config *cnf, bool write_more_comments);
 
 #endif /* _OLSRD_CFG_GEN_H */
 
index 5a6042b..04bafc1 100644 (file)
@@ -96,7 +96,7 @@ olsr_alloc_cookie(const char *cookie_name, olsr_cookie_type cookie_type)
 /*
  * Free a cookie that is no longer being used.
  */
-void
+static void
 olsr_free_cookie(struct olsr_cookie_info *ci)
 {
   struct list_node *memory_list;
@@ -187,6 +187,7 @@ olsr_cookie_set_memory_clear(struct olsr_cookie_info *ci, bool clear)
   }
 }
 
+#if 0
 /*
  * Set if a returned memory block shall be initialized to an all zero or
  * to a poison memory pattern after returning to the free pool.
@@ -207,6 +208,7 @@ olsr_cookie_set_memory_poison(struct olsr_cookie_info *ci, bool poison)
     ci->ci_flags &= ~COOKIE_MEMPOISON;
   }
 }
+#endif
 
 /*
  * Basic sanity checking for a passed-in cookie-id.
index 1b4892e..79888b9 100644 (file)
@@ -89,12 +89,13 @@ struct olsr_cookie_mem_brand {
 /* Externals. */
 extern struct olsr_cookie_info *olsr_alloc_cookie(const char *,
                                                  olsr_cookie_type);
-extern void olsr_free_cookie(struct olsr_cookie_info *);
 extern void olsr_delete_all_cookies(void);
 extern char *olsr_cookie_name(olsr_cookie_t);
 extern void olsr_cookie_set_memory_size(struct olsr_cookie_info *, size_t);
 extern void olsr_cookie_set_memory_clear(struct olsr_cookie_info *, bool);
-extern void olsr_cookie_set_memory_poison(struct olsr_cookie_info *, bool);
+#if 0
+void olsr_cookie_set_memory_poison(struct olsr_cookie_info *, bool);
+#endif
 extern void olsr_cookie_usage_incr(olsr_cookie_t);
 extern void olsr_cookie_usage_decr(olsr_cookie_t);
 
index 44bc13c..ac11d28 100644 (file)
@@ -74,9 +74,9 @@ static void parse_packet(struct olsr *, int, struct interface *, union olsr_ip_a
  * the loop in this cases
  */
 
-struct parse_function_entry *parse_functions;
-struct preprocessor_function_entry *preprocessor_functions;
-struct packetparser_function_entry *packetparser_functions;
+static struct parse_function_entry *parse_functions;
+static struct preprocessor_function_entry *preprocessor_functions;
+static struct packetparser_function_entry *packetparser_functions;
 
 static bool disp_pack_in = false;
 
@@ -116,6 +116,7 @@ void olsr_parser_add_function(parse_function *function, uint32_t type)
   OLSR_PRINTF(3, "Register parse function: Added function for type %u\n", type);
 }
 
+#if 0
 int olsr_parser_remove_function(parse_function *function, uint32_t type)
 {
   struct parse_function_entry *entry, *prev;
@@ -135,6 +136,7 @@ int olsr_parser_remove_function(parse_function *function, uint32_t type)
   }
   return 0;
 }
+#endif
 
 void olsr_preprocessor_add_function(preprocessor_function *function)
 {
@@ -190,6 +192,7 @@ void olsr_packetparser_add_function(packetparser_function *function)
 
 }
 
+#if 0
 int olsr_packetparser_remove_function(packetparser_function *function)
 {
   struct packetparser_function_entry *entry, *prev;
@@ -209,6 +212,7 @@ int olsr_packetparser_remove_function(packetparser_function *function)
   }
   return 0;
 }
+#endif
 
 /**
  * Shared code to parse the message headers and validate the message originator.
index 10fbb4b..ff7ea58 100644 (file)
@@ -87,20 +87,24 @@ olsr_input_hostemu(int, void *, unsigned int);
 void
 olsr_parser_add_function(parse_function, uint32_t);
 
+#if 0
 int
 olsr_parser_remove_function(parse_function, uint32_t);
+#endif
 
-void
+PLUGIN_PUB void
 olsr_preprocessor_add_function(preprocessor_function);
 
-int
+PLUGIN_PUB int
 olsr_preprocessor_remove_function(preprocessor_function);
 
 void
 olsr_packetparser_add_function(packetparser_function *function);
 
+#if 0
 int
 olsr_packetparser_remove_function(packetparser_function *function);
+#endif
 
 const unsigned char *
 olsr_parse_msg_hdr(const union olsr_message *, struct olsrmsg_hdr *);
index 49e5c38..f1b48aa 100644 (file)
 #ifndef _OLSRD_PLUGIN_UTIL
 #define _OLSRD_PLUGIN_UTIL
 
+#include "defs.h"
 #include "olsrd_plugin.h"
 
 /* Common/utility functions for plugins */
-set_plugin_parameter set_plugin_port;
-set_plugin_parameter set_plugin_ipaddress;
-set_plugin_parameter set_plugin_boolean;
-set_plugin_parameter set_plugin_int;
-set_plugin_parameter set_plugin_string;
+PLUGIN_PUB set_plugin_parameter set_plugin_port;
+PLUGIN_PUB set_plugin_parameter set_plugin_ipaddress;
+PLUGIN_PUB set_plugin_parameter set_plugin_boolean;
+PLUGIN_PUB set_plugin_parameter set_plugin_int;
+PLUGIN_PUB set_plugin_parameter set_plugin_string;
 
 
 #endif
index 2391246..52416ac 100644 (file)
@@ -46,6 +46,8 @@
 #include "lq_packet.h"
 #include "net_olsr.h"
 
+static int8_t
+print_olsr_serialized_message(FILE *, union olsr_message *);
 
 static void
 print_messagedump(FILE *, uint8_t *, int16_t);
@@ -102,7 +104,7 @@ print_olsr_serialized_packet(FILE *handle, union olsr_packet *pkt,
 }
 
 /* Single message */
-int8_t
+static int8_t
 print_olsr_serialized_message(FILE *handle, union olsr_message *msg)
 {
   struct ipaddr_str buf;
index 05c451b..a8e2bfd 100644 (file)
@@ -48,9 +48,6 @@
 int8_t
 print_olsr_serialized_packet(FILE *, union olsr_packet *, uint16_t, union olsr_ip_addr *);
 
-int8_t
-print_olsr_serialized_message(FILE *, union olsr_message *);
-
 #endif
 
 /*
index 0d61f3e..e99b079 100644 (file)
@@ -49,6 +49,8 @@
 #include "olsr.h"
 #include "parser.h"
 
+static bool olsr_input_hello(union olsr_message *ser, struct interface *inif, union olsr_ip_addr *from);
+
 static void process_message_neighbors(struct neighbor_entry *,
                                       const struct hello_message *);
 
@@ -446,7 +448,7 @@ hello_tap(struct hello_message *message,
   olsr_free_hello_packet(message);
 }
 
-bool olsr_input_hello(union olsr_message *msg, struct interface *inif, union olsr_ip_addr *from)
+static bool olsr_input_hello(union olsr_message *msg, struct interface *inif, union olsr_ip_addr *from)
 {
   struct hello_message hello;
 
index 9760fdd..10564ca 100644 (file)
@@ -44,9 +44,6 @@
 
 #include "olsr_protocol.h"
 
-bool
-olsr_input_hello(union olsr_message *ser, struct interface *inif, union olsr_ip_addr *from);
-
 void
 olsr_init_package_process(void);
 
index 122ef3b..c6a3a9e 100644 (file)
@@ -59,6 +59,7 @@ static struct list_node chg_kernel_list;
 static struct list_node del_kernel_list;
 
 
+#if 0
 /**
  *
  * Calculate the kernel route flags.
@@ -84,7 +85,7 @@ olsr_rt_flags(const struct rt_entry *rt)
 
   return flags;
 }
-
+#endif
 
 export_route_function olsr_addroute_function;
 export_route_function olsr_addroute6_function;
index bccf794..9c0417d 100644 (file)
@@ -55,7 +55,9 @@ void olsr_init_export_route(void);
 void olsr_update_rib_routes(void);
 void olsr_update_kernel_routes(void);
 void olsr_delete_all_kernel_routes(void);
+#if 0
 uint8_t olsr_rt_flags(const struct rt_entry *);
+#endif
 
 #endif
 
index a9b5899..30f8450 100644 (file)
@@ -56,7 +56,7 @@
 
 /* Cookies */
 struct olsr_cookie_info *rt_mem_cookie = NULL;
-struct olsr_cookie_info *rtp_mem_cookie = NULL;
+struct olsr_cookie_info *rtp_mem_cookie = NULL; /* Maybe static */
 
 /*
  * Sven-Ola: if the current internet gateway is switched, the
@@ -372,7 +372,7 @@ olsr_delete_rt_path(struct rt_path *rtp)
  * returns TRUE if the first path is better
  * than the second one, FALSE otherwise.
  */
-static bool
+bool
 olsr_cmp_rtp(const struct rt_path *rtp1, const struct rt_path *rtp2, const struct rt_path *inetgw)
 {
     olsr_linkcost etx1 = rtp1->rtp_metric.cost;
index e50e8ba..43a3b9c 100644 (file)
@@ -235,7 +235,7 @@ static INLINE bool olsr_nh_change(const struct rt_nexthop *nh1, const struct rt_
  */
 static INLINE bool olsr_hopcount_change(const struct rt_metric *met1, const struct rt_metric *met2) { return met1->hops != met2->hops; }
 
-bool olsr_cmp_rt(const struct rt_entry *, const struct rt_entry *);
+PLUGIN_PUB bool olsr_cmp_rt(const struct rt_entry *, const struct rt_entry *);
 
 #if defined WIN32
 /**
@@ -275,7 +275,7 @@ void olsr_insert_rt_path(struct rt_path *, struct tc_entry *, struct link_entry
 void olsr_update_rt_path(struct rt_path *, struct tc_entry *, struct link_entry *);
 void olsr_delete_rt_path(struct rt_path *);
 
-struct rt_entry *
+PLUGIN_PUB struct rt_entry *
 olsr_lookup_routing_table(const union olsr_ip_addr *);
 
 
index 5bd0baa..822ee47 100644 (file)
@@ -68,6 +68,7 @@ static struct olsr_cookie_info *timer_mem_cookie = NULL;
 static struct list_node socket_head = {&socket_head, &socket_head};
 
 /* Prototypes */
+static unsigned long olsr_times(void);
 static void walk_timers(clock_t *);
 static void poll_sockets(void);
 static clock_t calc_jitter(unsigned int rel_time, uint8_t jitter_pct,
@@ -822,7 +823,7 @@ olsr_set_timer(struct timer_entry **timer_ptr,
  * the underlying kernel calls the smallest accountable time unit) are
  * inherently "unsigned" (and always incremented).
  */
-unsigned long olsr_times(void)
+static unsigned long olsr_times(void)
 {
   struct tms tms_buf;
   const long t = times(&tms_buf);
index d4bef1a..11283a4 100644 (file)
@@ -164,8 +164,8 @@ LISTNODE2STRUCT(list2socket, struct olsr_socket_entry, socket_node);
 
 void add_olsr_socket(int fd, socket_handler_func pf_pr, socket_handler_func pf_imm, void *data, unsigned int flags);
 int remove_olsr_socket(int fd, socket_handler_func pf_pr, socket_handler_func pf_imm);
-void enable_olsr_socket(int fd, socket_handler_func pf_pr, socket_handler_func pf_imm, unsigned int flags);
-void disable_olsr_socket(int fd, socket_handler_func pf_pr, socket_handler_func pf_imm, unsigned int flags);
+PLUGIN_PUB void enable_olsr_socket(int fd, socket_handler_func pf_pr, socket_handler_func pf_imm, unsigned int flags);
+PLUGIN_PUB void disable_olsr_socket(int fd, socket_handler_func pf_pr, socket_handler_func pf_imm, unsigned int flags);
 
 /*
  * a wrapper around times(2). times(2) has the problem, that it may return -1
@@ -174,7 +174,6 @@ void disable_olsr_socket(int fd, socket_handler_func pf_pr, socket_handler_func
  * the underlying kernel calls the smallest accountable time unit) are
  * inherently "unsigned" (and always incremented).
  */
-unsigned long olsr_times(void);
 
 
 #endif
index 751f701..41cd55a 100644 (file)
@@ -312,7 +312,7 @@ olsr_locate_tc_entry(const union olsr_ip_addr *adr)
 /**
  * Format tc_edge contents into a buffer.
  */
-char *
+static char *
 olsr_tc_edge_to_string(struct tc_edge_entry *tc_edge)
 {
   static char buf[128];
index 3173761..47e32ef 100644 (file)
@@ -168,7 +168,6 @@ static INLINE void olsr_lock_tc_entry(struct tc_entry *tc) { tc->refcount++; }
 static INLINE void olsr_unlock_tc_entry(struct tc_entry *tc) { if (--tc->refcount == 0) { /* All references are gone. */ olsr_cookie_free(tc_mem_cookie, tc); } }
 
 /* tc_edge_entry manipulation */
-char *olsr_tc_edge_to_string(struct tc_edge_entry *);
 struct tc_edge_entry *olsr_lookup_tc_edge(struct tc_entry *,
                                          union olsr_ip_addr *);
 struct tc_edge_entry *olsr_add_tc_edge_entry(struct tc_entry *,