Fix perf_crypto_rsa.c after various changes
[oweals/gnunet.git] / src / util / bandwidth.c
index 18b846869372ff86670fbb8e4e2961ede2524399..364c469779e170d69ec64847c5cd455b9c3128a2 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2010, 2013 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2010, 2013 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -61,7 +61,26 @@ GNUNET_BANDWIDTH_value_min (struct GNUNET_BANDWIDTH_Value32NBO b1,
 {
   return
       GNUNET_BANDWIDTH_value_init (GNUNET_MIN
-                                   (ntohl (b1.value__), ntohl (b2.value__)));
+                                   (ntohl (b1.value__),
+                                    ntohl (b2.value__)));
+}
+
+
+/**
+ * Compute the MAX of two bandwidth values.
+ *
+ * @param b1 first value
+ * @param b2 second value
+ * @return the min of b1 and b2
+ */
+struct GNUNET_BANDWIDTH_Value32NBO
+GNUNET_BANDWIDTH_value_max (struct GNUNET_BANDWIDTH_Value32NBO b1,
+                            struct GNUNET_BANDWIDTH_Value32NBO b2)
+{
+  return
+      GNUNET_BANDWIDTH_value_init (GNUNET_MAX
+                                   (ntohl (b1.value__),
+                                    ntohl (b2.value__)));
 }
 
 
@@ -123,16 +142,13 @@ GNUNET_BANDWIDTH_value_get_delay_for (struct GNUNET_BANDWIDTH_Value32NBO bps,
  * Task run whenever we hit the bandwidth limit for a tracker.
  *
  * @param cls the `struct GNUNET_BANDWIDTH_Tracker`
- * @param tc scheduler context
  */
 static void
-excess_trigger (void *cls,
-                const struct GNUNET_SCHEDULER_TaskContext *tc)
+excess_trigger (void *cls)
 {
   struct GNUNET_BANDWIDTH_Tracker *av = cls;
 
-  av->excess_task = GNUNET_SCHEDULER_NO_TASK;
-
+  av->excess_task = NULL;
   if (NULL != av->excess_cb)
     av->excess_cb (av->excess_cb_cls);
 }
@@ -179,7 +195,7 @@ update_excess (struct GNUNET_BANDWIDTH_Tracker *av)
     delay = GNUNET_TIME_relative_divide (delay,
                                          av->available_bytes_per_s__);
   }
-  if (GNUNET_SCHEDULER_NO_TASK != av->excess_task)
+  if (NULL != av->excess_task)
     GNUNET_SCHEDULER_cancel (av->excess_task);
   av->excess_task = GNUNET_SCHEDULER_add_delayed (delay,
                                                   &excess_trigger,
@@ -197,7 +213,7 @@ update_excess (struct GNUNET_BANDWIDTH_Tracker *av)
  * bytes).
  *
  * To stop notifications about updates and excess callbacks use
- * #GNUNET_BANDWIDTH_tracker_notification_stop
+ * #GNUNET_BANDWIDTH_tracker_notification_stop().
  *
  * @param av tracker to initialize
  * @param update_cb callback to notify a client about the tracker being updated
@@ -273,9 +289,9 @@ GNUNET_BANDWIDTH_tracker_init (struct GNUNET_BANDWIDTH_Tracker *av,
 void
 GNUNET_BANDWIDTH_tracker_notification_stop (struct GNUNET_BANDWIDTH_Tracker *av)
 {
-  if (GNUNET_SCHEDULER_NO_TASK != av->excess_task)
+  if (NULL != av->excess_task)
     GNUNET_SCHEDULER_cancel (av->excess_task);
-  av->excess_task = GNUNET_SCHEDULER_NO_TASK;
+  av->excess_task = NULL;
   av->excess_cb = NULL;
   av->excess_cb_cls = NULL;
   av->update_cb = NULL;