aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2017-09-04 02:23:18 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2017-12-31 12:20:59 +0100
commitba46856bb403a507977e4c699c90714c962463f9 (patch)
tree4cbca7d1f0fa584630eae9c6c9f975ac44c1f0eb /include
parent349219c14875705b8142d599f6af153d22a9a00e (diff)
benchmark: move benchmark impl to a private header
There is no need to expose the implementation details of both BENCHMARK_START and BENCHMARK_STOP macros via public header. This change moves them to a separate private header 'bench.h'.
Diffstat (limited to 'include')
-rw-r--r--include/Makefile.am1
-rw-r--r--include/osmocom/gapk/bench.h50
-rw-r--r--include/osmocom/gapk/benchmark.h28
3 files changed, 54 insertions, 25 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index f64faeb..81419f7 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -1,5 +1,6 @@
noinst_HEADERS = \
osmocom/gapk/utils.h \
+ osmocom/gapk/bench.h \
$(NULL)
nobase_include_HEADERS = \
diff --git a/include/osmocom/gapk/bench.h b/include/osmocom/gapk/bench.h
new file mode 100644
index 0000000..02c28db
--- /dev/null
+++ b/include/osmocom/gapk/bench.h
@@ -0,0 +1,50 @@
+/*
+ * This file is part of gapk (GSM Audio Pocket Knife).
+ *
+ * (C) 2014 Harald Welte <laforge@gnumonks.org>
+ *
+ * gapk is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * gapk is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gapk. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#include <osmocom/gapk/get_cycles.h>
+#include <osmocom/gapk/benchmark.h>
+#include <osmocom/gapk/codecs.h>
+
+static inline void benchmark_store(enum osmo_gapk_codec_type codec,
+ int encode, unsigned long cycles)
+{
+ struct osmo_gapk_bench_cycles *bc = &osmo_gapk_bench_codec[codec];
+
+ if (encode) {
+ bc->enc_used = (bc->enc_used + 1) % OSMO_GAPK_CYCLES_NUM_AVG;
+ bc->enc[bc->enc_used] = cycles;
+ } else {
+ bc->dec_used = (bc->dec_used + 1) % OSMO_GAPK_CYCLES_NUM_AVG;
+ bc->dec[bc->dec_used] = cycles;
+ }
+}
+
+#define BENCHMARK_START \
+ do { \
+ cycles_t _cycles_start, _cycles_stop; \
+ _cycles_start = get_cycles()
+
+#define BENCHMARK_STOP(codec, enc) \
+ _cycles_stop = get_cycles(); \
+ benchmark_store(codec, enc, \
+ _cycles_stop - _cycles_start); \
+ } while (0)
diff --git a/include/osmocom/gapk/benchmark.h b/include/osmocom/gapk/benchmark.h
index 6cfc074..b64a3b5 100644
--- a/include/osmocom/gapk/benchmark.h
+++ b/include/osmocom/gapk/benchmark.h
@@ -22,35 +22,13 @@
#include <osmocom/gapk/get_cycles.h>
#include <osmocom/gapk/codecs.h>
-#define NUM_AVG 102400
+#define OSMO_GAPK_CYCLES_NUM_AVG 102400
struct osmo_gapk_bench_cycles {
- cycles_t enc[NUM_AVG];
+ cycles_t enc[OSMO_GAPK_CYCLES_NUM_AVG];
unsigned int enc_used;
- cycles_t dec[NUM_AVG];
+ cycles_t dec[OSMO_GAPK_CYCLES_NUM_AVG];
unsigned int dec_used;
};
extern struct osmo_gapk_bench_cycles osmo_gapk_bench_codec[_CODEC_MAX];
-
-static inline void benchmark_stop(enum osmo_gapk_codec_type codec,
- int encode, unsigned long cycles)
-{
- struct osmo_gapk_bench_cycles *bc = &osmo_gapk_bench_codec[codec];
-
- if (encode) {
- bc->enc_used = (bc->enc_used + 1) % NUM_AVG;
- bc->enc[bc->enc_used] = cycles;
- } else {
- bc->dec_used = (bc->dec_used + 1) % NUM_AVG;
- bc->dec[bc->dec_used] = cycles;
- }
-}
-
-#define BENCHMARK_START do { \
- cycles_t _cycles_start, _cycles_stop; \
- _cycles_start = get_cycles()
-
-#define BENCHMARK_STOP(x,y) _cycles_stop = get_cycles(); \
- benchmark_stop(x, y, _cycles_stop - _cycles_start); \
- } while (0)