NAME

PAPI_list_events - list the events in an event set

CONTENTS

Synopsis
Description
Arguments
Return Values
Errors
Examples
Authors
Bugs
See Also

SYNOPSIS

C Interface

#include <papi.h> 

int PAPI_list_events(int EventSet, int *Events, int *number); 

Fortran Interface

#include fpapi.h 

PAPIF_list_events(C_INT EventSet, C_INT(*) Events, C_INT number, C_INT check) 

DESCRIPTION

PAPI_list_events() decomposes an event set into the hardware events it contains.

ARGUMENTS

EventSet -- an integer handle for a PAPI event set as created by PAPI_create_eventset (3)

*Events -- an array of codes for events, such as PAPI_INT_INS. No more than *number codes will be stored into the array.

*number -- On input the variable determines the size of the Events array. On output the variable contains the number of counters in the event set.

Note that if the given array *Events is too short to hold all the counters in the event set the *number variable will be greater than the actually stored number of counter codes.

RETURN VALUES

On success, this function returns PAPI_OK.
On error, a non-zero error code is returned.

ERRORS

PAPI_EINVAL
  One or more of the arguments is invalid.
PAPI_ENOEVST
  The EventSet specified does not exist.
PAPI_ENOTPRESET
  The hardware event specified is not a PAPI preset for this architecture.

EXAMPLES


  int EventCode, EventSet = PAPI_NULL;
  int Events[4], number = 4;
        
  /* Create an EventSet */

if (PAPI_create_eventset(&EventSet) != PAPI_OK) handle_error(1);

/* Convert an event name to an event code */

if (PAPI_event_name_to_code("PAPI_TOT_INS",&EventCode) != PAPI_OK) handle_error(1);

/* Query if Total Instructions Executed exists */

if (PAPI_query_event(EventCode) != PAPI_OK) handle_error(1);

/* Add Total Instructions Executed to our EventSet */

if (PAPI_add_event(EventSet, EventCode) != PAPI_OK) handle_error(1);

/* Convert a second event name to an event code */

if (PAPI_event_name_to_code("PAPI_L1_LDM",&EventCode) != PAPI_OK) handle_error(1);

/* Query if L1 Load Misses exists */

if (PAPI_query_event(EventCode) != PAPI_OK) handle_error(1);

/* Add L1 Load Misses to our EventSet */

if (PAPI_add_event(EventSet, EventCode) != PAPI_OK) handle_error(1);

/* List the events in our EventSet */

number = 4; if(PAPI_list_events(EventSet, Events, &number); handle_error(1);

if(number != 2) handle_error(1);

AUTHORS

The PAPI Team. See them at the PAPI Web Site: http://icl.cs.utk.edu/projects/papi

BUGS

This function has no known bugs.

SEE ALSO

PAPI_event_name_to_code (3), PAPI_query_event (3), PAPI_add_event (3)


PAPI Programmer’s Reference PAPI_list_events (3) November, 2003

  Innovative Computing Laboratory
2001 R&D Winner  
Contact PAPI: papi@cs.utk.edu Computer Science Department
  University of Tennessee