/*
- * Copyright (C) 1997-2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2008 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
/** used in various contexts */
#define MAXLINE 255
-/** compute the minimum of \a a and \a b */
-#define PARA_MIN(a,b) ((a) < (b) ? (a) : (b))
-/** compute the maximum of \a a and \a b */
-#define PARA_MAX(a,b) ((a) > (b) ? (a) : (b))
-/** compute the absolute value of \a a */
-#define PARA_ABS(a) ((a) > 0 ? (a) : -(a))
+/** Compute the minimum of \a x and \a y. */
+#define PARA_MIN(x, y) ({ \
+ typeof(x) _min1 = (x); \
+ typeof(y) _min2 = (y); \
+ (void) (&_min1 == &_min2); \
+ _min1 < _min2 ? _min1 : _min2; })
+
+/** Compute the maximum of \a x and \a y. */
+#define PARA_MAX(x, y) ({ \
+ typeof(x) _max1 = (x); \
+ typeof(y) _max2 = (y); \
+ (void) (&_max1 == &_max2); \
+ _max1 < _max2 ? _max2 : _max1; })
+
+/** Compute the absolute value of \a x. */
+#define PARA_ABS(x) ({ \
+ typeof(x) _x = (x); \
+ _x > 0? _x : -_x; })
/** debug loglevel, gets really noisy */
#define DEBUG 1
}
/** version text used by various commands if -V switch was given */
-#define VERSION_TEXT(prefix) "para_" prefix " " PACKAGE_VERSION "\n" \
- "Copyright (C) 2007 Andre Noll\n" \
+#define VERSION_TEXT(prefix) "para_" prefix " " PACKAGE_VERSION " (" CODENAME ")" "\n" \
+ "Copyright (C) 2008 Andre Noll\n" \
"This is free software with ABSOLUTELY NO WARRANTY." \
" See COPYING for details.\n" \
"Written by Andre Noll.\n" \
const long b, const struct timeval *tv2,
struct timeval *result);
void ms2tv(const long unsigned n, struct timeval *tv);
+void compute_chunk_time(long unsigned chunk_num,
+ struct timeval *chunk_tv, struct timeval *stream_start,
+ struct timeval *result);
/** The enum of all status items. */
enum status_items {STATUS_ITEM_ENUM NUM_STAT_ITEMS};
}
/** Round up x to a multiple of y */
-#define ROUND_UP(x, y) (((x) + (y - 1) / (y)) * (y))
+#define ROUND_UP(x, y) (((x) + ((y) - 1) / (y)) * (y))
/** Get the size of an array */
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))