* killed lots of #ifdef ... #endif which make the source quite unreadable
[olsrd.git] / src / mantissa.h
index 4d11e2a..7764b1a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * The olsr.org Optimized Link-State Routing daemon(olsrd)
- * Copyright (c) 2004, Andreas Tønnesen(andreto@olsr.org)
+ * Copyright (c) 2004, Andreas Tønnesen(andreto@olsr.org)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without 
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: mantissa.h,v 1.6 2004/11/21 11:28:56 kattemat Exp $
  */
 
 
 #ifndef _OLSR_MANTISSA
 #define _OLSR_MANTISSA
 
-#include "olsr_protocol.h"
+#include "olsr_types.h"
 
+/* olsr_reltime is a relative timestamp measured in microseconds */
+typedef olsr_u32_t olsr_reltime;
 
-olsr_u8_t
-double_to_me(double);
-
-double
-me_to_double(olsr_u8_t);
+/**
+ * Macro for converting a mantissa/exponent 8bit value back
+ * to an integer (measured in microseconds) as described in RFC3626:
+ *
+ * value = C*(1+a/16)*2^b [in seconds]
+ *
+ *  where a is the integer represented by the four highest bits of the
+ *  field and b the integer represented by the four lowest bits of the
+ *  field.
+ *
+ * me is the 8 bit mantissa/exponent value
+ *
+ */
+olsr_reltime me_to_reltime(const olsr_u8_t);
 
+olsr_u8_t reltime_to_me(const olsr_reltime);
 
 #endif