PAPI  5.4.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
genpapifdef.c
Go to the documentation of this file.
1 /* This file generates the #defines needed for Fortran examples of PAPI.
2  Its output is usually directed to fpapi.h. See Makefile.inc for details.
3 */
4 
5 /* Modified to produce any of cpp, f77, or f90-style include files.
6  Accepts an optional command-line argument, one of -c, -f77, or -f90
7  (-c default, as in original version of the program).
8  The Fortran versions are fixed-format (source starts in column 7)
9  Note: No check is made to ensure that lines don't extend past 72 columns.
10  Date: 1/26/02
11  Rick Kufrin, NCSA/Univ of Illinois <rkufrin@ncsa.uiuc.edu>
12 */
13 
14 /* Modified to eliminate reliance on libpapi.a.
15  Now it relies only on a small collection of papi header files.
16 */
17 
18 /* Modified to always generate a symbolic representation for the
19  maximum negative number. This is a work-around for a compiler
20  limitation that first showed up on Cray X1 and then spread to
21  GNU Fortran 4.3.2. Thanks to Jim Rosinski (ORNL) for
22  identification and testing on this issue.
23  Date: 06/03/08
24 */
25 
26 #include <stdlib.h>
27 #include <stdio.h>
28 
29 #include <unistd.h>
30 #include <errno.h>
31 #include <sys/types.h>
32 #include <memory.h>
33 
34 #include "papi.h"
35 
36 #undef NDEBUG
37 #include <assert.h>
38 
39 #define PAPI_EVENTS_IN_DERIVED_EVENT 8 /* to satisfy papi_preset.h */
40 #include "papi_preset.h"
41 #include "papi_common_strings.h"
42 /*
43  The following array is used to create a series of defines
44  for use with PAPI in Fortran programs.
45  The value/name pairs come straight from papi.h.
46  They should be manually synchronized with papi.h when changes are made.
47  The definition of hwi_describe_t is in papi_preset.h
48 */
49 
51  {PAPI_NULL, "PAPI_NULL", NULL},
52  {PAPI_VER_CURRENT, "PAPI_VER_CURRENT", NULL},
53  {PAPI_VERSION, "PAPI_VERSION", NULL},
54  {PAPI_MAX_PRESET_EVENTS, "PAPI_MAX_PRESET_EVENTS", NULL},
55 
56  {PAPI_NOT_INITED, "PAPI_NOT_INITED", NULL},
57  {PAPI_LOW_LEVEL_INITED, "PAPI_LOW_LEVEL_INITED", NULL},
58  {PAPI_HIGH_LEVEL_INITED, "PAPI_HIGH_LEVEL_INITED", NULL},
59  {PAPI_THREAD_LEVEL_INITED, "PAPI_THREAD_LEVEL_INITED", NULL},
60 
61  {PAPI_DOM_USER, "PAPI_DOM_USER", NULL},
62  {PAPI_DOM_KERNEL, "PAPI_DOM_KERNEL", NULL},
63  {PAPI_DOM_OTHER, "PAPI_DOM_OTHER", NULL},
64  {PAPI_DOM_SUPERVISOR, "PAPI_DOM_SUPERVISOR", NULL},
65  {PAPI_DOM_ALL, "PAPI_DOM_ALL", NULL},
66  {PAPI_DOM_MIN, "PAPI_DOM_MIN", NULL},
67  {PAPI_DOM_MAX, "PAPI_DOM_MAX", NULL},
68  {PAPI_DOM_HWSPEC, "PAPI_DOM_HWSPEC", NULL},
69 
70  {PAPI_STOPPED, "PAPI_STOPPED", NULL},
71  {PAPI_RUNNING, "PAPI_RUNNING", NULL},
72  {PAPI_PAUSED, "PAPI_PAUSED", NULL},
73  {PAPI_NOT_INIT, "PAPI_NOT_INIT", NULL},
74  {PAPI_OVERFLOWING, "PAPI_OVERFLOWING", NULL},
75  {PAPI_PROFILING, "PAPI_PROFILING", NULL},
76  {PAPI_MULTIPLEXING, "PAPI_MULTIPLEXING", NULL},
77  {PAPI_ATTACHED, "PAPI_ATTACHED", NULL},
78  {PAPI_CPU_ATTACHED, "PAPI_CPU_ATTACHED", NULL},
79 
80  {PAPI_QUIET, "PAPI_QUIET", NULL},
81  {PAPI_VERB_ECONT, "PAPI_VERB_ECONT", NULL},
82  {PAPI_VERB_ESTOP, "PAPI_VERB_ESTOP", NULL},
83 
84  {PAPI_MIN_STR_LEN, "PAPI_MIN_STR_LEN", NULL},
85  {PAPI_HUGE_STR_LEN, "PAPI_HUGE_STR_LEN", NULL},
86  {PAPI_MAX_STR_LEN, "PAPI_MAX_STR_LEN", NULL},
87  {PAPI_NUM_ERRORS, "PAPI_NUM_ERRORS", NULL},
88 
89  {PAPI_MULTIPLEX_DEFAULT, "PAPI_MULTIPLEX_DEFAULT", NULL},
90  {PAPI_MULTIPLEX_FORCE_SW, "PAPI_MULTIPLEX_FORCE_SW", NULL},
91 
92  {PAPI_DEBUG, "PAPI_DEBUG", NULL},
93  {PAPI_MULTIPLEX, "PAPI_MULTIPLEX", NULL},
94  {PAPI_DEFDOM, "PAPI_DEFDOM", NULL},
95  {PAPI_DOMAIN, "PAPI_DOMAIN", NULL},
96  {PAPI_DEFGRN, "PAPI_DEFGRN", NULL},
97  {PAPI_GRANUL, "PAPI_GRANUL", NULL},
98  {PAPI_DEF_MPX_NS, "PAPI_DEF_MPX_NS", NULL},
99  // {PAPI_EDGE_DETECT, "PAPI_EDGE_DETECT", NULL},
100  //{PAPI_INVERT, "PAPI_INVERT", NULL},
101  {PAPI_MAX_MPX_CTRS, "PAPI_MAX_MPX_CTRS", NULL},
102  {PAPI_PROFIL, "PAPI_PROFIL", NULL},
103  {PAPI_PRELOAD, "PAPI_PRELOAD", NULL},
104  {PAPI_CLOCKRATE, "PAPI_CLOCKRATE", NULL},
105  {PAPI_MAX_HWCTRS, "PAPI_MAX_HWCTRS", NULL},
106  {PAPI_HWINFO, "PAPI_HWINFO", NULL},
107  {PAPI_EXEINFO, "PAPI_EXEINFO", NULL},
108  {PAPI_MAX_CPUS, "PAPI_MAX_CPUS", NULL},
109  {PAPI_ATTACH, "PAPI_ATTACH", NULL},
110  {PAPI_SHLIBINFO, "PAPI_SHLIBINFO", NULL},
111  {PAPI_LIB_VERSION, "PAPI_LIB_VERSION", NULL},
112  {PAPI_COMPONENTINFO, "PAPI_COMPONENTINFO", NULL},
113  {PAPI_DETACH, "PAPI_DETACH", NULL},
114 
115  {PAPI_GRN_THR, "PAPI_GRN_THR", NULL},
116  {PAPI_GRN_MIN, "PAPI_GRN_MIN", NULL},
117  {PAPI_GRN_PROC, "PAPI_GRN_PROC", NULL},
118  {PAPI_GRN_PROCG, "PAPI_GRN_PROCG", NULL},
119  {PAPI_GRN_SYS, "PAPI_GRN_SYS", NULL},
120  {PAPI_GRN_SYS_CPU, "PAPI_GRN_SYS_CPU", NULL},
121  {PAPI_GRN_MAX, "PAPI_GRN_MAX", NULL},
122 
123  {PAPI_DERIVED, "PAPI_DERIVED", NULL},
124 
125  {PAPI_PROFIL_POSIX, "PAPI_PROFIL_POSIX", NULL},
126  {PAPI_PROFIL_RANDOM, "PAPI_PROFIL_RANDOM", NULL},
127  {PAPI_PROFIL_WEIGHTED, "PAPI_PROFIL_WEIGHTED", NULL},
128  {PAPI_PROFIL_COMPRESS, "PAPI_PROFIL_COMPRESS", NULL},
129  {PAPI_PROFIL_BUCKET_16, "PAPI_PROFIL_BUCKET_16", NULL},
130  {PAPI_PROFIL_BUCKET_32, "PAPI_PROFIL_BUCKET_32", NULL},
131  {PAPI_PROFIL_BUCKET_64, "PAPI_PROFIL_BUCKET_64", NULL},
132 
133  {PAPI_USR1_LOCK, "PAPI_USR1_LOCK", NULL},
134  {PAPI_USR2_LOCK, "PAPI_USR2_LOCK", NULL},
135  {PAPI_LOCK_USR1, "PAPI_LOCK_USR1", NULL},
136  {PAPI_LOCK_USR2, "PAPI_LOCK_USR2", NULL},
137  {PAPI_LOCK_NUM, "PAPI_LOCK_NUM", NULL},
138 
139  {PAPI_MH_MAX_LEVELS, "PAPI_MH_MAX_LEVELS", NULL},
140 
141  {PAPI_USR1_TLS, "PAPI_USR1_TLS", NULL},
142  {PAPI_USR2_TLS, "PAPI_USR2_TLS", NULL},
143  {PAPI_TLS_USR1, "PAPI_TLS_USR1", NULL},
144  {PAPI_TLS_USR2, "PAPI_TLS_USR2", NULL},
145  {PAPI_TLS_HIGH_LEVEL, "PAPI_TLS_HIGH_LEVEL", NULL},
146  {PAPI_TLS_NUM, "PAPI_TLS_NUM", NULL},
147 
148 /* Fortran offsets into PAPI_dmem_info_t structure. */
149  {PAPIF_DMEM_VMSIZE, "PAPIF_DMEM_VMSIZE", NULL},
150  {PAPIF_DMEM_RESIDENT, "PAPIF_DMEM_RESIDENT", NULL},
151  {PAPIF_DMEM_HIGH_WATER, "PAPIF_DMEM_HIGH_WATER", NULL},
152  {PAPIF_DMEM_SHARED, "PAPIF_DMEM_SHARED", NULL},
153  {PAPIF_DMEM_TEXT, "PAPIF_DMEM_TEXT", NULL},
154  {PAPIF_DMEM_LIBRARY, "PAPIF_DMEM_LIBRARY", NULL},
155  {PAPIF_DMEM_HEAP, "PAPIF_DMEM_HEAP", NULL},
156  {PAPIF_DMEM_LOCKED, "PAPIF_DMEM_LOCKED", NULL},
157  {PAPIF_DMEM_STACK, "PAPIF_DMEM_STACK", NULL},
158  {PAPIF_DMEM_PAGESIZE, "PAPIF_DMEM_PAGESIZE", NULL},
159  {PAPIF_DMEM_MAXVAL, "PAPIF_DMEM_MAXVAL", NULL},
160 
161 /* PAPI error defines */
162  /* 0 */ {PAPI_OK, "PAPI_OK", "No error"},
163  /* 1 */ {PAPI_EINVAL, "PAPI_EINVAL", "Invalid argument"},
164  /* 2 */ {PAPI_ENOMEM, "PAPI_ENOMEM", "Insufficient memory"},
165  /* 3 */ {PAPI_ESYS, "PAPI_ESYS", "A System/C library call failed"},
166  /* 4 */ {PAPI_ECMP, "PAPI_ECMP", "Not supported by component"},
167  /* 5 */ {PAPI_ECLOST, "PAPI_ECLOST", "Access to the counters was lost or interrupted"},
168  /* 6 */ {PAPI_EBUG, "PAPI_EBUG", "Internal error, please send mail to the developers"},
169  /* 7 */ {PAPI_ENOEVNT, "PAPI_ENOEVNT", "Event does not exist"},
170  /* 8 */ {PAPI_ECNFLCT, "PAPI_ECNFLCT", "Event exists, but cannot be counted due to hardware resource limits"},
171  /* 9 */ {PAPI_ENOTRUN, "PAPI_ENOTRUN", "EventSet is currently not running"},
172  /*10 */ {PAPI_EISRUN, "PAPI_EISRUN", "EventSet is currently counting"},
173  /*11 */ {PAPI_ENOEVST, "PAPI_ENOEVST", "No such EventSet available"},
174  /*12 */ {PAPI_ENOTPRESET, "PAPI_ENOTPRESET", "Event in argument is not a valid preset"},
175  /*13 */ {PAPI_ENOCNTR, "PAPI_ENOCNTR", "Hardware does not support performance counters"},
176  /*14 */ {PAPI_EMISC, "PAPI_EMISC", "Unknown error code"},
177  /*15 */ {PAPI_EPERM, "PAPI_EPERM", "Permission level does not permit operation"},
178  /*16 */ {PAPI_ENOINIT, "PAPI_ENOINIT", "PAPI hasn't been initialized yet"},
179  /*17 */ {PAPI_ENOCMP, "PAPI_ENOCMP", "Component Index isn't set"},
180  /*18 */ {PAPI_ENOSUPP, "PAPI_ENOSUPP", "Not supported"},
181  /*19 */ {PAPI_ENOIMPL, "PAPI_ENOIMPL", "Not implemented"},
182  /*20 */ {PAPI_EBUF, "PAPI_EBUF", "Buffer size exceeded"},
183  /*21 */ {PAPI_EINVAL_DOM, "PAPI_EINVAL_DOM", "EventSet domain is not supported for the operation"},
184  /*22 */ {PAPI_EATTR, "PAPI_EATTR", "Invalid or missing event attributes"},
185  /*23 */ {PAPI_ECOUNT, "PAPI_ECOUNT", "Too many events or attributes"},
186  /*24 */ {PAPI_ECOMBO, "PAPI_ECOMBO", "Bad combination of features"}
187 
188 };
189 
190 
193 static char comment_char = 'C';
194 
195 static void
196 define_val( const char *val_string, int val, enum deftype_t deftype )
197 {
198  char value[20];
199  /* The Fortran spec defines negative numbers as the negation of a positive number.
200  Because of that definition, the largest possible 2's complement negative
201  number cannot be legally expressed in Fortran. Compiler behavior is undefined
202  and unpredictable on this issue.
203  Several FORTRAN compilers (GNU Fortran (GCC) > 4.2.3, others?)
204  will throw errors or warnings for an explicit numeric value of -2147483648,
205  However, they don't object to an arithmetic evaluation that produces the
206  desired value. This value happens to be used for the PAPI preset
207  PAPI_L1_DCM, and PAPI_DOM_HWSPEC.
208  The hack below works around that limitation.
209  */
210  if ( ( ( unsigned ) val ) == 0x80000000 ) {
211  sprintf( value, "((-2147483647) - 1)" );
212  } else {
213  sprintf( value, "%d", val );
214  }
215 
216  switch ( deftype ) {
217  case CDEFINE:
218  printf( "#define %-18s %s\n", val_string, value );
219  break;
220  case F77DEFINE:
221  printf( " INTEGER %-18s\n PARAMETER (%s=%s)\n", val_string,
222  val_string, value );
223  break;
224  case F90DEFINE:
225  printf( " INTEGER, PARAMETER :: %-18s = %s\n", val_string, value );
226  break;
227  }
228 }
229 
230 static void
231 createDef( char *title, const hwi_describe_t * descr, int size,
232  enum deftype_t deftype )
233 {
234  int i, j;
235  /* compute the size of the predefined array */
236  j = size / sizeof ( hwi_describe_t );
237 
238  /* create defines for each line in the general arrays */
239  printf( "\n%c\n%c %s\n%c\n\n", comment_char, comment_char, title,
240  comment_char );
241  for ( i = 0; i < j; i++ )
242  define_val( descr[i].name, descr[i].value, deftype );
243 }
244 
245 
246 int
247 main( int argc, char **argv )
248 {
249  int i;
250  enum deftype_t deftype = CDEFINE;
251 
252  if ( argc > 1 ) {
253  if ( strcmp( argv[1], "-f77" ) == 0 ) {
254  deftype = F77DEFINE;
255  comment_char = '!';
256  } else if ( strcmp( argv[1], "-f90" ) == 0 ) {
257  deftype = F90DEFINE;
258  comment_char = '!';
259  } else if ( strcmp( argv[1], "-c" ) == 0 ) {
260  deftype = CDEFINE;
261  comment_char = 'C';
262  } else {
263  fprintf( stderr, "Usage: %s [ -c | -f77 | -f90 ]\n", argv[0] );
264  exit( 1 );
265  }
266  }
267 
268  /* print a file header block */
269  printf
270  ( "%c\n%c This file contains defines required by the PAPI Fortran interface.\n",
272  printf( "%c It is automagically generated by genpapifdef.c\n",
273  comment_char );
274  printf( "%c DO NOT modify its contents and expect the changes to stick.\n",
275  comment_char );
276  printf( "%c Changes MUST be made in genpapifdef.c instead.\n%c\n\n",
278 
279  /* create defines for the internal array pairs */
280  createDef( "General purpose defines.", _papi_def, sizeof ( _papi_def ),
281  deftype );
282  /* create defines for each member of the PRESET array */
283  printf( "\n%c\n%c PAPI preset event values.\n%c\n\n", comment_char,
285 
286  for ( i = 0; i < PAPI_MAX_PRESET_EVENTS; i++ ) {
287  if ( _papi_hwi_presets[i].symbol ) { /* if the event is in the preset table */
288  define_val( _papi_hwi_presets[i].symbol,
289  ( i | PAPI_PRESET_MASK ), deftype );
290  }
291  }
292  exit( 0 );
293 }
#define PAPI_ATTACHED
Definition: papi.h:379
#define PAPI_ENOEVNT
Definition: papi.h:258
sprintf(splash[splash_line++],"\tIozone: Performance Test of File I/O\n")
int val
Definition: libbif.c:235
#define PAPI_OVERFLOWING
Definition: papi.h:376
#define PAPI_VERB_ECONT
Definition: papi.h:387
#define PAPIF_DMEM_MAXVAL
Definition: papi.h:897
#define PAPI_DEF_MPX_NS
Definition: papi.h:434
static void define_val(const char *val_string, int val, enum deftype_t deftype)
Definition: genpapifdef.c:196
#define PAPI_ENOSUPP
Definition: papi.h:269
#define PAPI_LOCK_NUM
Definition: papi.h:336
#define PAPI_NULL
Definition: papi.h:290
#define PAPI_LOW_LEVEL_INITED
Definition: papi.h:279
#define PAPI_PROFIL_BUCKET_16
Definition: papi.h:398
#define PAPI_DOM_KERNEL
Definition: papi.h:298
#define PAPI_DOM_MIN
Definition: papi.h:297
#define PAPIF_DMEM_SHARED
Definition: papi.h:889
#define PAPI_MAX_PRESET_EVENTS
#define PAPI_MULTIPLEXING
Definition: papi.h:378
#define PAPI_MULTIPLEX_FORCE_SW
Definition: papi.h:417
#define PAPI_DOM_ALL
Definition: papi.h:301
#define PAPI_EBUG
Definition: papi.h:257
#define PAPI_TLS_NUM
Definition: papi.h:324
return PAPI_OK
Definition: linux-nvml.c:458
#define PAPI_EBUF
Definition: papi.h:271
#define PAPI_ENOTRUN
Definition: papi.h:260
#define PAPI_PRESET_MASK
#define PAPI_DOM_USER
Definition: papi.h:296
return PAPI_EINVAL
Definition: linux-nvml.c:408
#define PAPI_NOT_INITED
Definition: papi.h:278
#define printf
Definition: papi_test.h:125
#define PAPI_EPERM
Definition: papi.h:266
#define PAPI_ENOTPRESET
Definition: papi.h:263
void double value
Definition: iozone.c:18781
int int argc
Definition: iozone.c:1609
#define PAPI_PRELOAD
Definition: papi.h:439
#define PAPI_HUGE_STR_LEN
Definition: papi.h:465
Return codes and api definitions.
#define PAPI_TLS_USR1
Definition: papi.h:321
#define PAPI_CPU_ATTACHED
Definition: papi.h:380
#define PAPIF_DMEM_HEAP
Definition: papi.h:892
#define PAPI_LOCK_USR2
Definition: papi.h:335
#define PAPIF_DMEM_HIGH_WATER
Definition: papi.h:888
char ** argv
Definition: iozone.c:1610
#define PAPI_EMISC
Definition: papi.h:265
#define PAPI_MH_MAX_LEVELS
Definition: papi.h:742
#define PAPI_PROFIL
Definition: papi.h:438
#define PAPIF_DMEM_LIBRARY
Definition: papi.h:891
#define PAPI_THREAD_LEVEL_INITED
Definition: papi.h:281
#define PAPI_PROFIL_COMPRESS
Definition: papi.h:397
int i
Definition: fileop.c:140
#define PAPIF_DMEM_RESIDENT
Definition: papi.h:887
#define PAPI_DERIVED
Definition: papi.h:468
#define PAPI_ENOEVST
Definition: papi.h:262
#define PAPI_TLS_HIGH_LEVEL
Definition: papi.h:323
static void createDef(char *title, const hwi_describe_t *descr, int size, enum deftype_t deftype)
Definition: genpapifdef.c:231
#define PAPI_LIB_VERSION
Definition: papi.h:447
#define PAPI_PROFIL_BUCKET_64
Definition: papi.h:400
char *long long size
Definition: iozone.c:12023
#define PAPI_EATTR
Definition: papi.h:273
hwi_presets_t _papi_hwi_presets[PAPI_MAX_PRESET_EVENTS]
#define PAPI_EXEINFO
Definition: papi.h:443
#define PAPI_USR1_TLS
Definition: papi.h:317
#define PAPI_ESYS
Definition: papi.h:253
#define PAPI_NUM_ERRORS
Definition: papi.h:276
#define PAPI_PROFIL_RANDOM
Definition: papi.h:395
#define PAPI_GRANUL
Definition: papi.h:433
#define PAPI_MAX_CPUS
Definition: papi.h:444
#define PAPI_DEFGRN
Definition: papi.h:432
#define PAPI_ECNFLCT
Definition: papi.h:259
#define PAPI_DETACH
Definition: papi.h:427
#define PAPI_ATTACH
Definition: papi.h:445
#define PAPI_ECMP
Definition: papi.h:254
#define PAPI_GRN_MAX
Definition: papi.h:366
#define PAPI_TLS_USR2
Definition: papi.h:322
#define PAPI_MAX_MPX_CTRS
Definition: papi.h:437
#define PAPI_MULTIPLEX_DEFAULT
Definition: papi.h:416
#define PAPI_PROFIL_BUCKET_32
Definition: papi.h:399
#define PAPI_EISRUN
Definition: papi.h:261
#define PAPI_MULTIPLEX
Definition: papi.h:429
#define PAPI_GRN_THR
Definition: papi.h:360
#define PAPI_HIGH_LEVEL_INITED
Definition: papi.h:280
#define PAPI_GRN_SYS_CPU
Definition: papi.h:365
#define PAPI_ENOMEM
Definition: papi.h:252
#define PAPI_ENOIMPL
Definition: papi.h:270
static char comment_char
Definition: genpapifdef.c:193
#define PAPI_DOM_HWSPEC
Definition: papi.h:304
#define PAPI_ENOCMP
Definition: papi.h:268
#define PAPI_DOMAIN
Definition: papi.h:431
#define PAPI_COMPONENTINFO
Definition: papi.h:448
deftype_t
Definition: genpapifdef.c:191
#define PAPI_PROFIL_POSIX
Definition: papi.h:394
#define PAPI_PROFIL_WEIGHTED
Definition: papi.h:396
#define PAPIF_DMEM_STACK
Definition: papi.h:894
#define PAPIF_DMEM_PAGESIZE
Definition: papi.h:895
#define PAPI_USR1_LOCK
Definition: papi.h:331
#define PAPI_PROFILING
Definition: papi.h:377
#define PAPI_VERSION
Definition: papi.h:222
#define PAPI_ENOCNTR
Definition: papi.h:264
char * name
Definition: iozone.c:23648
#define PAPI_HWINFO
Definition: papi.h:442
#define PAPI_CLOCKRATE
Definition: papi.h:440
#define PAPI_EINVAL_DOM
Definition: papi.h:272
#define PAPI_RUNNING
Definition: papi.h:373
#define PAPI_MIN_STR_LEN
Definition: papi.h:462
#define PAPI_MAX_HWCTRS
Definition: papi.h:441
#define PAPI_LOCK_USR1
Definition: papi.h:334
#define PAPI_USR2_TLS
Definition: papi.h:318
const hwi_describe_t _papi_def[]
Definition: genpapifdef.c:50
#define PAPIF_DMEM_TEXT
Definition: papi.h:890
#define PAPI_QUIET
Definition: papi.h:386
#define PAPI_DEFDOM
Definition: papi.h:430
#define PAPI_STOPPED
Definition: papi.h:372
#define PAPI_ENOINIT
Definition: papi.h:267
#define PAPI_ECLOST
Definition: papi.h:256
#define PAPI_MAX_STR_LEN
Definition: papi.h:463
#define PAPI_GRN_PROCG
Definition: papi.h:363
#define PAPI_ECOMBO
Definition: papi.h:275
#define PAPI_DOM_OTHER
Definition: papi.h:299
#define PAPIF_DMEM_LOCKED
Definition: papi.h:893
#define PAPI_PAUSED
Definition: papi.h:374
#define PAPI_USR2_LOCK
Definition: papi.h:332
#define PAPI_DOM_SUPERVISOR
Definition: papi.h:300
#define PAPI_VERB_ESTOP
Definition: papi.h:388
#define PAPI_GRN_SYS
Definition: papi.h:364
#define PAPI_NOT_INIT
Definition: papi.h:375
long j
Definition: iozone.c:19135
#define PAPI_GRN_MIN
Definition: papi.h:361
#define PAPI_VER_CURRENT
Definition: papi.h:223
#define PAPI_ECOUNT
Definition: papi.h:274
int main(int argc, char **argv)
List all appio events codes and names.
#define PAPI_DOM_MAX
Definition: papi.h:303
void exit()
#define PAPI_DEBUG
Definition: papi.h:428
#define PAPIF_DMEM_VMSIZE
Definition: papi.h:886
#define PAPI_GRN_PROC
Definition: papi.h:362
#define PAPI_SHLIBINFO
Definition: papi.h:446