#ifndef _JTEST_CYCLE_H_
#define _JTEST_CYCLE_H_

/*--------------------------------------------------------------------------------*/
/* Includes */
/*--------------------------------------------------------------------------------*/

#include "jtest_fw.h"           /* JTEST_DUMP_STRF() */
#include "jtest_systick.h"
#include "jtest_util.h"         /* STR() */

/*--------------------------------------------------------------------------------*/
/* Declare Module Variables */
/*--------------------------------------------------------------------------------*/
extern const char * JTEST_CYCLE_STRF;

/*--------------------------------------------------------------------------------*/
/* Macros and Defines */
/*--------------------------------------------------------------------------------*/

/**
 *  Wrap the function call, fn_call, to count execution cycles and display the
 *  results.
 */
/* skipp function name + param
#define JTEST_COUNT_CYCLES(fn_call)                     \
    do                                                  \
    {                                                   \
        uint32_t __jtest_cycle_end_count;               \
                                                        \
        JTEST_SYSTICK_RESET(SysTick);                   \
        JTEST_SYSTICK_START(SysTick);                   \
                                                        \
        fn_call;                                        \
                                                        \
        __jtest_cycle_end_count =                       \
            JTEST_SYSTICK_VALUE(SysTick);               \
                                                        \
		JTEST_SYSTICK_RESET(SysTick);                   \
        JTEST_DUMP_STRF(JTEST_CYCLE_STRF,               \
                        STR(fn_call),                   \
                        (JTEST_SYSTICK_INITIAL_VALUE -  \
                         __jtest_cycle_end_count));     \
    } while (0)
*/
#ifndef ARMv7A

#define JTEST_COUNT_CYCLES(fn_call)                     \
    do                                                  \
    {                                                   \
        uint32_t __jtest_cycle_end_count;               \
                                                        \
        JTEST_SYSTICK_RESET(SysTick);                   \
        JTEST_SYSTICK_START(SysTick);                   \
                                                        \
        fn_call;                                        \
                                                        \
        __jtest_cycle_end_count =                       \
            JTEST_SYSTICK_VALUE(SysTick);               \
                                                        \
		JTEST_SYSTICK_RESET(SysTick);           \
        JTEST_DUMP_STRF(JTEST_CYCLE_STRF,               \
                        (JTEST_SYSTICK_INITIAL_VALUE -  \
                         __jtest_cycle_end_count));     \
    } while (0)

#else
/* TODO */
#define JTEST_COUNT_CYCLES(fn_call)                     \
    do                                                  \
    {                                                   \
		fn_call;   										\
    } while (0)

#endif

#endif /* _JTEST_CYCLE_H_ */


