#include "clock.h"
#include "log.h"
-struct timespec clock_monotonic_get()
+float clock_monotonic_get()
{
struct timespec ret = {0,};
abort();
}
- return ret;
+ return ret.tv_sec + (float)ret.tv_nsec / 1000000000.0f;
}
-struct timespec clock_realtime_get()
+time_t clock_realtime_get()
{
struct timespec ret = {0,};
abort();
}
- return ret;
+ return ret.tv_sec;
}
bool clock_is_supported()
#include <stdbool.h>
/**
- * @brief Check if platform supports required clock types
+ * @brief Check if platform supports all required clock types
*
* @return true if supported, false otherwise.
*/
* @note the func will abort if monotonic clock is not supported.
* call @clock_is_supported beforehead to validate if platform
* supports all clock types.
+ *
+ * @return: seconds since unspecified time point.
*/
-struct timespec clock_monotonic_get();
+float clock_monotonic_get();
/**
* @brief Gets current time using realtime clock
* call @clock_is_supported beforehead to validate if platform
* supports all clock types.
*
+ * @return: number of seconds since Epoch
*/
-struct timespec clock_realtime_get();
+time_t clock_realtime_get();
#endif
}
report->usage = usage;
- report->time = clock_realtime_get().tv_sec;
+ report->time = clock_realtime_get();
generator->previous = current;
return -1;
}
- report->time = clock_realtime_get().tv_sec;
+ report->time = clock_realtime_get();
report->usage = usage;
return 0;
return -1;
}
- report->time = clock_realtime_get().tv_sec;
+ report->time = clock_realtime_get();
report->pid = generator->pid;
report->usage = usage;
return -1;
}
- report->time = clock_realtime_get().tv_sec;
+ report->time = clock_realtime_get();
report->usage = usage;
return 0;
return -1;
}
- report->time = clock_realtime_get().tv_sec;
+ report->time = clock_realtime_get();
report->one_min_avg = a1;
report->five_min_avg = a5;
report->fifteen_min_avg = a15;
appid = process_get_appid(proc);
if (appid) strncpy(report.app_id, appid, sizeof(report.app_id));
report.pid = process_get_pid(proc);
- report.time = clock_realtime_get().tv_sec;
+ report.time = clock_realtime_get();
closure->usage_report[closure->current_index++] = report;
return true;
if (process_get_cpu_usage(proc, &ticks) != 0) {
report.usage = NAN;
} else {
- report.usage = stats_get_cpu_usage_percentage(ticks, closure->sys_stats.frame_time);
+ report.usage = stats_get_cpu_usage_percentage(ticks, closure->sys_stats.frame_time_inverted);
}
appid = process_get_appid(proc);
if (appid) strncpy(report.app_id, appid, sizeof(report.app_id));
report.pid = process_get_pid(proc);
- report.time = clock_realtime_get().tv_sec;
+ report.time = clock_realtime_get();
closure->usage_report[closure->current_index++] = report;
return true;
sys->memory_used = mem_info.used;
sys->total_memory = mem_info.total;
- struct timespec now = clock_monotonic_get();
- sys->frame_time = 1.0f / (now.tv_sec - sys->update_time.tv_sec + ((float)now.tv_nsec - sys->update_time.tv_nsec) / 1000000000.0f);
+ float now = clock_monotonic_get();
+ sys->frame_time_inverted = 1.0f / (now - sys->update_time);
sys->update_time = now;
return 0;
unsigned long long total_ticks;
unsigned long long memory_used;
unsigned long long total_memory;
- struct timespec update_time;
- float frame_time;
+ float update_time;
+ float frame_time_inverted;
};
/**