45 unsigned long blength;
48 const char *profstr[5] = {
"PAPI_PROFIL_POSIX",
50 "PAPI_PROFIL_WEIGHTED",
51 "PAPI_PROFIL_COMPRESS",
64 blength =
prof_size( plength, scale, bucket, &num_buckets );
67 for (
i = 0;
i < 5;
i++ ) {
69 printf(
"Test type : \t%s\n", profstr[
i] );
76 profflags[
i] | bucket ) ) !=
PAPI_OK ) {
80 sprintf(warning,
"PAPI_profil %s not supported",
82 test_warn( __FILE__, __LINE__, warning, 1 );
112 printf(
TAB1,
"PAPI_TOT_CYC", (
values[1] )[1] );
124 "address\t\t\tflat\trandom\tweight\tcomprs\tall\n" );
129 for (
i = 0;
i < 5;
i++ ) {
158 test_fail( __FILE__, __LINE__,
"PAPI_get_executable_info", 1 );
163 if (!
quiet) printf(
"No events found\n");
164 test_skip(__FILE__, __LINE__,
"No events found",1);
180 #if defined(ITANIUM1) || defined(ITANIUM2) || defined(__powerpc64__) 182 end = (
caddr_t ) ( ( (
struct fdesc * ) end )->ip );
196 test_fail( __FILE__, __LINE__,
"Profile length < 0!", (
int )
length );
201 "POSIX compatible profiling with hardware counters.\n",
char event_name[2][PAPI_MAX_STR_LEN]
int PAPI_stop(int EventSet, long long *values)
void test_pass(const char *filename)
int main(int argc, char **argv)
#define PAPI_PROFIL_BUCKET_16
#define PAPI_PROFIL_BUCKET_32
get the executable's info
#define PAPI_PROFIL_COMPRESS
#define PAPI_PROFIL_POSIX
static struct timeval start
void test_warn(const char *file, int line, const char *call, int retval)
Return codes and api definitions.
static int do_profile(caddr_t start, unsigned long plength, unsigned scale, int thresh, int bucket)
void test_skip(const char *file, int line, const char *call, int retval)
unsigned long prof_size(unsigned long plength, unsigned scale, int bucket, int *num_buckets)
int PAPI_library_init(int version)
int PAPI_profil(void *buf, unsigned bufsiz, caddr_t offset, unsigned scale, int EventSet, int EventCode, int threshold, int flags)
void prof_out(caddr_t start, int n, int bucket, int num_buckets, unsigned int scale)
const PAPI_exe_info_t * PAPI_get_executable_info(void)
PAPI_address_map_t address_info
int PAPI_query_event(int EventCode)
#define PAPI_PROFIL_RANDOM
void prof_head(unsigned long blength, int bucket, int num_buckets, const char *header)
int tests_quiet(int argc, char **argv)
void test_fail(const char *file, int line, const char *call, int retval)
void prof_print_address(const char *title, const PAPI_exe_info_t *prginfo)
void prof_print_prof_info(caddr_t start, caddr_t end, int threshold, char *event_name)
void do_no_profile(int quiet)
int prof_check(int n, int bucket, int num_buckets)
#define PAPI_PROFIL_FORCE_SW
int prof_events(int num_tests)
#define PAPI_PROFIL_WEIGHTED
static long long mythreshold
int PAPI_start(int EventSet)
#define PAPI_PROFIL_BUCKET_64
static long long values[NUM_EVENTS]
int remove_test_events(int *EventSet, int mask)
void prof_alloc(int num, unsigned long blength)