|
Packit |
577717 |
/* Standard headers for PAPI test applications.
|
|
Packit |
577717 |
This file is customized to hide Windows / Unix differences.
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#ifdef __cplusplus
|
|
Packit |
577717 |
extern "C"
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
#endif
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
//#if (!defined(NO_DLFCN) && !defined(_BGL) && !defined(_BGP))
|
|
Packit |
577717 |
//#include <dlfcn.h>
|
|
Packit |
577717 |
//#endif
|
|
Packit |
577717 |
|
|
Packit |
577717 |
//#include <memory.h>
|
|
Packit |
577717 |
//#if !defined(__FreeBSD__) && !defined(__APPLE__)
|
|
Packit |
577717 |
//#include <malloc.h>
|
|
Packit |
577717 |
//#endif
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Masks to select operations for add_test_events() and remove_test_events()
|
|
Packit |
577717 |
Mask value tells us what events to select.
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
#define MASK_FP_OPS 0x80000
|
|
Packit |
577717 |
#define MASK_L1_DCA 0x40000 /* three new events for POWER4 */
|
|
Packit |
577717 |
#define MASK_L1_DCW 0x20000
|
|
Packit |
577717 |
#define MASK_L1_DCR 0x10000
|
|
Packit |
577717 |
#define MASK_TOT_IIS 0x04000 /* Try this if TOT_INS won't work */
|
|
Packit |
577717 |
#define MASK_BR_PRC 0x02000
|
|
Packit |
577717 |
#define MASK_BR_MSP 0x01000
|
|
Packit |
577717 |
#define MASK_BR_CN 0x00800
|
|
Packit |
577717 |
#define MASK_L2_TCH 0x00400
|
|
Packit |
577717 |
#define MASK_L2_TCA 0x00200
|
|
Packit |
577717 |
#define MASK_L2_TCM 0x00100
|
|
Packit |
577717 |
#define MASK_L1_DCM 0x00040
|
|
Packit |
577717 |
#define MASK_L1_ICM 0x00020
|
|
Packit |
577717 |
#define MASK_L1_TCM 0x00010
|
|
Packit |
577717 |
#define MASK_FP_INS 0x00004
|
|
Packit |
577717 |
#define MASK_TOT_INS 0x00002
|
|
Packit |
577717 |
#define MASK_TOT_CYC 0x00001
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define MAX_TEST_EVENTS 18
|
|
Packit |
577717 |
|
|
Packit |
577717 |
struct test_events_t {
|
|
Packit |
577717 |
unsigned int mask;
|
|
Packit |
577717 |
unsigned int event;
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
extern struct test_events_t test_events[];
|
|
Packit |
577717 |
|
|
Packit |
577717 |
void validate_string(const char *name, char *s);
|
|
Packit |
577717 |
void *get_overflow_address(void *context);
|
|
Packit |
577717 |
void free_test_space(long long ** values, int num_tests);
|
|
Packit |
577717 |
long long **allocate_test_space(int num_tests, int num_events);
|
|
Packit |
577717 |
int add_test_events(int *number, int *mask, int allow_derived);
|
|
Packit |
577717 |
int add_two_events(int *num_events, int *papi_event, int *mask);
|
|
Packit |
577717 |
int add_two_nonderived_events(int *num_events, int *papi_event, int *mask);
|
|
Packit |
577717 |
int add_test_events_r(int *number, int *mask, void *handle);
|
|
Packit |
577717 |
int find_nonderived_event( void );
|
|
Packit |
577717 |
int enum_add_native_events(int *num_events, int **evtcodes, int need_interrupts, int no_software_events, int cidx);
|
|
Packit |
577717 |
int remove_test_events(int *EventSet, int mask);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
char *stringify_domain(int domain);
|
|
Packit |
577717 |
char *stringify_all_domains(int domains);
|
|
Packit |
577717 |
char *stringify_granularity(int granularity);
|
|
Packit |
577717 |
char *stringify_all_granularities(int granularities);
|
|
Packit |
577717 |
int tests_quiet(int argc, char **argv);
|
|
Packit |
577717 |
void test_pass(const char *filename);
|
|
Packit |
577717 |
void test_fail(const char *file, int line, const char *call, int retval);
|
|
Packit |
577717 |
void test_skip(const char *file, int line, const char *call, int retval);
|
|
Packit |
577717 |
void test_warn(const char *file, int line, const char *call, int retval);
|
|
Packit |
577717 |
void test_print_event_header(const char *call, int evset);
|
|
Packit |
577717 |
int approx_equals(double a, double b);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Unix systems use %lld to display long long values
|
|
Packit |
577717 |
Windows uses %I64d for the same purpose.
|
|
Packit |
577717 |
Since these occur inside a quoted string,
|
|
Packit |
577717 |
we must #define the entire format string.
|
|
Packit |
577717 |
Below are several common forms of this string
|
|
Packit |
577717 |
for both platforms.
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define ONEHDR " %12s"
|
|
Packit |
577717 |
#define TAB2HDR "%s %12s %12s\n"
|
|
Packit |
577717 |
#define TAB3HDR "%s %12s %12s %12s\n"
|
|
Packit |
577717 |
#define TAB4HDR "%s %12s %12s %12s %12s\n"
|
|
Packit |
577717 |
#define ONENUM " %12lld"
|
|
Packit |
577717 |
#define TAB1 "%-12s %12lld\n"
|
|
Packit |
577717 |
#define TAB2 "%-12s %12lld %12lld\n"
|
|
Packit |
577717 |
#define TAB3 "%-12s %12lld %12lld %12lld\n"
|
|
Packit |
577717 |
#define TAB4 "%-12s %12lld %12lld %12lld %12lld\n"
|
|
Packit |
577717 |
#define TAB5 "%-12s %12lld %12lld %12lld %12lld %12lld\n"
|
|
Packit |
577717 |
#define TWO12 "%12lld %12lld %s"
|
|
Packit |
577717 |
#define LLDFMT "%lld"
|
|
Packit |
577717 |
#define LLDFMT10 "%10lld"
|
|
Packit |
577717 |
#define LLDFMT12 "%12lld"
|
|
Packit |
577717 |
#define LLDFMT15 "%15lld"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
extern int TESTS_QUIET; /* Declared in test_utils.c */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#ifdef __cplusplus
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
#endif
|
|
Packit |
577717 |
|