aboutsummaryrefslogtreecommitdiff
path: root/src/modules/systemlib/perf_counter.c
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2013-10-11 14:05:11 +0200
committerJulian Oes <julian@oes.ch>2013-10-11 14:05:11 +0200
commit2d23d5fd4ec3a00ae18c63304a3b1b3905d7de66 (patch)
treedfe21bf4ddd3b10e2e92cd3d6be206de5a445616 /src/modules/systemlib/perf_counter.c
parent326f241185f45d9e2d4377e8096a8a2f05f65b0d (diff)
parent1306c9de7b946783ff1143bb42a33734e9380e2c (diff)
downloadpx4-firmware-2d23d5fd4ec3a00ae18c63304a3b1b3905d7de66.tar.gz
px4-firmware-2d23d5fd4ec3a00ae18c63304a3b1b3905d7de66.tar.bz2
px4-firmware-2d23d5fd4ec3a00ae18c63304a3b1b3905d7de66.zip
Merge remote-tracking branch 'px4/master' into pwm_ioctls
Conflicts: src/drivers/px4io/px4io.cpp
Diffstat (limited to 'src/modules/systemlib/perf_counter.c')
-rw-r--r--src/modules/systemlib/perf_counter.c26
1 files changed, 26 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)
{