aboutsummaryrefslogtreecommitdiff
path: root/src/modules/systemlib
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-10-06 14:17:37 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-10-06 14:17:37 +0200
commit90c4664dce0e3613e545eabb208aa5fbb02d90e9 (patch)
tree322cf10e5338bf48d30be289dc9124a9c64dbd2b /src/modules/systemlib
parent4ceddfdd92343277be3c6231cbd2a547e8b7bc57 (diff)
parent6a784b770e4b9dff24effc2643711c9da2b0efab (diff)
downloadpx4-firmware-90c4664dce0e3613e545eabb208aa5fbb02d90e9.tar.gz
px4-firmware-90c4664dce0e3613e545eabb208aa5fbb02d90e9.tar.bz2
px4-firmware-90c4664dce0e3613e545eabb208aa5fbb02d90e9.zip
Merged status changes
Diffstat (limited to 'src/modules/systemlib')
-rw-r--r--src/modules/systemlib/perf_counter.c26
-rw-r--r--src/modules/systemlib/perf_counter.h8
2 files changed, 34 insertions, 0 deletions
diff --git a/src/modules/systemlib/perf_counter.c b/src/modules/systemlib/perf_counter.c
index 3c1e10287..bf84b7945 100644
--- a/src/modules/systemlib/perf_counter.c
+++ b/src/modules/systemlib/perf_counter.c
@@ -321,6 +321,32 @@ perf_print_counter(perf_counter_t handle)
}
}
+uint64_t
+perf_event_count(perf_counter_t handle)
+{
+ if (handle == NULL)
+ return 0;
+
+ switch (handle->type) {
+ case PC_COUNT:
+ return ((struct perf_ctr_count *)handle)->event_count;
+
+ case PC_ELAPSED: {
+ struct perf_ctr_elapsed *pce = (struct perf_ctr_elapsed *)handle;
+ return pce->event_count;
+ }
+
+ case PC_INTERVAL: {
+ struct perf_ctr_interval *pci = (struct perf_ctr_interval *)handle;
+ return pci->event_count;
+ }
+
+ default:
+ break;
+ }
+ return 0;
+}
+
void
perf_print_all(void)
{
diff --git a/src/modules/systemlib/perf_counter.h b/src/modules/systemlib/perf_counter.h
index 4cd8b67a1..e1e3cbe95 100644
--- a/src/modules/systemlib/perf_counter.h
+++ b/src/modules/systemlib/perf_counter.h
@@ -135,6 +135,14 @@ __EXPORT extern void perf_print_all(void);
*/
__EXPORT extern void perf_reset_all(void);
+/**
+ * Return current event_count
+ *
+ * @param handle The counter returned from perf_alloc.
+ * @return event_count
+ */
+__EXPORT extern uint64_t perf_event_count(perf_counter_t handle);
+
__END_DECLS
#endif