---
name: "PAPI_create_eventset"
section: "3"
platform: "linux"
package: "libpapi-dev"
version: "7.1.0-5+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/PAPI_create_eventset"
---

# PAPI\_create\_eventset(3)

Create a new empty PAPI EventSet.

## NAME

PAPI\_create\_eventset - Create a new empty PAPI EventSet.

## SYNOPSIS

## Detailed Description

**C Interface:**

\#include \<**papi.h**\> \
 **PAPI\_create\_eventset( int \* EventSet )**;

**PAPI\_create\_eventset** creates a new EventSet pointed to by EventSet, which must be initialized to PAPI\_NULL before calling this routine. The user may then add hardware events to the event set by calling **PAPI\_add\_event** or similar routines.

**Note**

PAPI-C uses a late binding model to bind EventSets to components. When an EventSet is first created it is not bound to a component. This will cause some API calls that modify EventSet options to fail. An EventSet can be bound to a component explicitly by calling **PAPI\_assign\_eventset\_component** or implicitly by calling **PAPI\_add\_event** or similar routines.

**Parameters**

*\*EventSet* Address of an integer location to store the new EventSet handle.

**Exceptions**

*PAPI\_EINVAL* The argument handle has not been initialized to PAPI\_NULL or the argument is a NULL pointer.\
 *PAPI\_ENOMEM* Insufficient memory to complete the operation.

**Examples:**

```
int EventSet = PAPI_NULL;
if ( PAPI_create_eventset( &EventSet ) != PAPI_OK )
handle_error( 1 );
// Add Total Instructions Executed to our EventSet
if ( PAPI_add_event( EventSet, PAPI_TOT_INS)  != PAPI_OK )
handle_error( 1 );
```

**See also**

**PAPI\_add\_event** \
 **PAPI\_assign\_eventset\_component** \
 **PAPI\_destroy\_eventset** \
 **PAPI\_cleanup\_eventset**

## Author

Generated automatically by Doxygen for PAPI from the source code.
