|
PAPI
5.0.1.0
|
00001 /* 00002 * File: cmpinfo.c 00003 * Author: Philip Mucci 00004 * mucci@cs.utk.edu 00005 * Mods: <your name here> 00006 * <your email address> 00007 */ 00008 #include <stdlib.h> 00009 #include <stdio.h> 00010 #include "papi_test.h" 00011 00012 int 00013 main( int argc, char **argv ) 00014 { 00015 int retval; 00016 00017 const PAPI_component_info_t *cmpinfo; 00018 00019 tests_quiet( argc, argv ); /* Set TESTS_QUIET variable */ 00020 00021 if ( ( retval = 00022 PAPI_library_init( PAPI_VER_CURRENT ) ) != PAPI_VER_CURRENT ) 00023 test_fail( __FILE__, __LINE__, "PAPI_library_init", retval ); 00024 00025 if ( ( cmpinfo = PAPI_get_component_info( 0 ) ) == NULL ) 00026 test_fail( __FILE__, __LINE__, "PAPI_get_component_info", retval ); 00027 00028 printf( "name: %s\n", cmpinfo->name ); 00029 printf( "component_version: %s\n", cmpinfo->version ); 00030 printf( "support_version: %s\n", cmpinfo->support_version ); 00031 printf( "kernel_version: %s\n", cmpinfo->kernel_version ); 00032 printf( "num_cntrs: %d\n", cmpinfo->num_cntrs ); 00033 printf( "num_mpx_cntrs: %d\n", cmpinfo->num_mpx_cntrs ); 00034 printf( "num_preset_events: %d\n", cmpinfo->num_preset_events ); /* Number of counters the component supports */ 00035 printf( "num_native_events: %d\n", cmpinfo->num_native_events ); /* Number of counters the component supports */ 00036 printf( "default_domain: 0x%x (%s)\n", cmpinfo->default_domain, 00037 stringify_all_domains( cmpinfo->default_domain ) ); 00038 printf( "available_domains: 0x%x (%s)\n", cmpinfo->available_domains, stringify_all_domains( cmpinfo->available_domains ) ); /* Available domains */ 00039 printf( "default_granularity: 0x%x (%s)\n", cmpinfo->default_granularity, 00040 stringify_granularity( cmpinfo->default_granularity ) ); 00041 /* The default granularity when this component is used */ 00042 printf( "available_granularities: 0x%x (%s)\n", cmpinfo->available_granularities, stringify_all_granularities( cmpinfo->available_granularities ) ); /* Available granularities */ 00043 printf( "hardware_intr_sig: %d\n", cmpinfo->hardware_intr_sig ); printf( "hardware_intr: %d\n", cmpinfo->hardware_intr ); /* Needs hw overflow intr to be emulated in software */ 00044 printf( "precise_intr: %d\n", cmpinfo->precise_intr ); /* Performance interrupts happen precisely */ 00045 printf( "posix1b_timers: %d\n", cmpinfo->posix1b_timers ); /* Performance interrupts happen precisely */ 00046 printf( "kernel_profile: %d\n", cmpinfo->kernel_profile ); /* Needs kernel profile support (buffered interrupts) to be emulated */ 00047 printf( "kernel_multiplex: %d\n", cmpinfo->kernel_multiplex ); /* In kernel multiplexing */ 00048 printf( "fast_counter_read: %d\n", cmpinfo->fast_counter_read ); /* Has a fast counter read */ 00049 printf( "fast_real_timer: %d\n", cmpinfo->fast_real_timer ); /* Has a fast real timer */ 00050 printf( "fast_virtual_timer: %d\n", cmpinfo->fast_virtual_timer ); /* Has a fast virtual timer */ 00051 printf( "attach: %d\n", cmpinfo->attach ); /* Supports attach */ 00052 printf( "attach_must_ptrace: %d\n", cmpinfo->attach_must_ptrace ); /* */ 00053 00054 test_pass( __FILE__, NULL, 0 ); 00055 exit( 0 ); 00056 }