/* This file is part of the Linux Trace Toolkit trace reading library
* Copyright (C) 2003-2004 Michel Dagenais
+ * 2005 Mathieu Desnoyers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
static inline int ltt_time_compare(LttTime t1, LttTime t2)
{
int ret=0;
- if(likely(t1.tv_sec > t2.tv_sec)) ret = 1;
- else if(unlikely(t1.tv_sec < t2.tv_sec)) ret = -1;
- else if(likely(t1.tv_nsec > t2.tv_nsec)) ret = 1;
- else if(unlikely(t1.tv_nsec < t2.tv_nsec)) ret = -1;
+ //if(likely(t1.tv_sec > t2.tv_sec)) ret = 1;
+ //else if(unlikely(t1.tv_sec < t2.tv_sec)) ret = -1;
+ //else if(likely(t1.tv_nsec > t2.tv_nsec)) ret = 1;
+ //else if(unlikely(t1.tv_nsec < t2.tv_nsec)) ret = -1;
+ if(likely((long)t1.tv_sec - (long)t2.tv_sec > 0)) ret = 1;
+ else if(unlikely((long)t1.tv_sec - (long)t2.tv_sec < 0)) ret = -1;
+ else if(likely((long)t1.tv_nsec - (long)t2.tv_nsec > 0)) ret = 1;
+ else if(unlikely((long)t1.tv_nsec - (long)t2.tv_nsec < 0)) ret = -1;
return ret;
}
static inline guint64 ltt_time_to_uint64(LttTime t1)
{
- return (guint64)((t1.tv_sec*LTT_TIME_UINT_SHIFT_CONST) >> LTT_TIME_UINT_SHIFT)
+ return (((guint64)t1.tv_sec*LTT_TIME_UINT_SHIFT_CONST) << LTT_TIME_UINT_SHIFT)
+ (guint64)t1.tv_nsec;
}