]> git.cryptolib.org Git - arm-crypto-lib.git/blob - test_src/performance_test.h
adb08ef85a150ae4e5dde2ce4c262aa67e3d2f98
[arm-crypto-lib.git] / test_src / performance_test.h
1 /* performance_test.h */
2 /*
3     This file is part of the AVR-Crypto-Lib.
4     Copyright (C) 2008  Daniel Otte (daniel.otte@rub.de)
5
6     This program is free software: you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation, either version 3 of the License, or
9     (at your option) any later version.
10
11     This program is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 */
19 #ifndef PERFORMANCE_TEST_H_
20 #define PERFORMANCE_TEST_H_
21
22 #include <stdint.h>
23 #include "hw_gptm.h"
24
25 #define PERF_TIMER TIMER0
26 #define PERF_TIMER_BASE TIMER0_BASE
27
28 #define START_TIMER  gptm_start_timer(PERF_TIMER, 0) /* HW_REG(PERF_TIMER_BASE+GPTM_CTL_OFFSET) |= _BV(GPTM_TAEN) */
29 #define STOP_TIMER   gptm_stop_timer(PERF_TIMER, 0) /* HW_REG(PERF_TIMER_BASE+GPTM_CTL_OFFSET) &= ~_BV(GPTM_TAEN) */
30
31 void calibrateTimer(void);
32 void startTimer(uint8_t granularity);
33 uint64_t stopTimer(void);
34 void getOverhead(uint32_t* constoh, uint32_t* intoh);
35
36 void print_time_P(const char* s, uint64_t t);
37 void print_overhead(void);
38
39 #endif /*PERFORMANCE_TEST_H_*/