aboutsummaryrefslogtreecommitdiffstats
path: root/src/benchmark.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/benchmark.c')
-rw-r--r--src/benchmark.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/benchmark.c b/src/benchmark.c
index 3dead5a..8896a3b 100644
--- a/src/benchmark.c
+++ b/src/benchmark.c
@@ -18,7 +18,35 @@
*/
#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
#include <osmocom/gapk/benchmark.h>
+#include <osmocom/gapk/codecs.h>
-struct osmo_gapk_bench_cycles osmo_gapk_bench_codec[_CODEC_MAX];
+struct osmo_gapk_bench_cycles *
+ osmo_gapk_bench_codec[_CODEC_MAX] = { NULL };
+
+int osmo_gapk_bench_enable(enum osmo_gapk_codec_type codec)
+{
+ struct osmo_gapk_bench_cycles *bench;
+
+ /* Allocate zero-initialized memory */
+ bench = (struct osmo_gapk_bench_cycles *)
+ calloc(1, sizeof(struct osmo_gapk_bench_cycles));
+ if (!bench)
+ return -ENOMEM;
+
+ /* Set up pointer */
+ osmo_gapk_bench_codec[codec] = bench;
+
+ return 0;
+}
+
+void osmo_gapk_bench_free(void)
+{
+ int i;
+
+ for (i = 0; i < _CODEC_MAX; i++)
+ free(osmo_gapk_bench_codec[i]);
+}