69 lines
1.7 KiB
C
69 lines
1.7 KiB
C
|
/*
|
||
|
* fcyc.h - prototypes for the routines in fcyc.c that estimate the
|
||
|
* time in CPU cycles used by a test function f
|
||
|
*
|
||
|
* Copyright (c) 2002, R. Bryant and D. O'Hallaron, All rights reserved.
|
||
|
* May not be used, modified, or copied without permission.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
/* The test function takes a generic pointer as input */
|
||
|
typedef void (*test_funct)(void *);
|
||
|
|
||
|
/* Compute number of cycles used by test function f */
|
||
|
double fcyc(test_funct f, void* argp);
|
||
|
|
||
|
/*********************************************************
|
||
|
* Set the various parameters used by measurement routines
|
||
|
*********************************************************/
|
||
|
|
||
|
/*
|
||
|
* set_fcyc_clear_cache - When set, will run code to clear cache
|
||
|
* before each measurement.
|
||
|
* Default = 0
|
||
|
*/
|
||
|
void set_fcyc_clear_cache(int clear);
|
||
|
|
||
|
/*
|
||
|
* set_fcyc_cache_size - Set size of cache to use when clearing cache
|
||
|
* Default = 1<<19 (512KB)
|
||
|
*/
|
||
|
void set_fcyc_cache_size(int bytes);
|
||
|
|
||
|
/*
|
||
|
* set_fcyc_cache_block - Set size of cache block
|
||
|
* Default = 32
|
||
|
*/
|
||
|
void set_fcyc_cache_block(int bytes);
|
||
|
|
||
|
/*
|
||
|
* set_fcyc_compensate- When set, will attempt to compensate for
|
||
|
* timer interrupt overhead
|
||
|
* Default = 0
|
||
|
*/
|
||
|
void set_fcyc_compensate(int compensate_arg);
|
||
|
|
||
|
/*
|
||
|
* set_fcyc_k - Value of K in K-best measurement scheme
|
||
|
* Default = 3
|
||
|
*/
|
||
|
void set_fcyc_k(int k);
|
||
|
|
||
|
/*
|
||
|
* set_fcyc_maxsamples - Maximum number of samples attempting to find
|
||
|
* K-best within some tolerance.
|
||
|
* When exceeded, just return best sample found.
|
||
|
* Default = 20
|
||
|
*/
|
||
|
void set_fcyc_maxsamples(int maxsamples_arg);
|
||
|
|
||
|
/*
|
||
|
* set_fcyc_epsilon - Tolerance required for K-best
|
||
|
* Default = 0.01
|
||
|
*/
|
||
|
void set_fcyc_epsilon(double epsilon_arg);
|
||
|
|
||
|
|
||
|
|
||
|
|