---
name: "PAPI_set_domain"
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_set_domain"
---

# PAPI\_set\_domain(3)

Set the default counting domain for new event sets bound to the cpu component.

## NAME

PAPI\_set\_domain - Set the default counting domain for new event sets bound to the cpu component.

## SYNOPSIS

## Detailed Description

**C Prototype:**

\#include \<**papi.h**\> \
\
  int **PAPI\_set\_domain( int domain )**;

**Parameters**

*domain* one of the following constants as defined in the **papi.h** header file

- •

  PAPI\_DOM\_USER User context counted

- •

  PAPI\_DOM\_KERNEL Kernel/OS context counted

- •

  PAPI\_DOM\_OTHER Exception/transient mode counted

- •

  PAPI\_DOM\_SUPERVISOR Supervisor/hypervisor context counted

- •

  PAPI\_DOM\_ALL All above contexts counted

- •

  PAPI\_DOM\_MIN The smallest available context

- •

  PAPI\_DOM\_MAX The largest available context

**Return values**

*PAPI\_OK* \
 *PAPI\_EINVAL* One or more of the arguments is invalid.

**PAPI\_set\_domain** sets the default counting domain for all new event sets created by **PAPI\_create\_eventset** in all threads. This call implicitly sets the domain for the cpu component (component 0) and is included to preserve backward compatibility.

**Example:**

```
int ret;
// Initialize the library
ret = PAPI_library_init(PAPI_VER_CURRENT);
if (ret > 0 && ret != PAPI_VER_CURRENT) {
  fprintf(stderr,"PAPI library version mismatch!\n");
  exit(1);
}
if (ret < 0) handle_error(ret);
// Set the default domain for the cpu component
ret = PAPI_set_domain(PAPI_DOM_KERNEL);
if (ret != PAPI_OK) handle_error(ret);
ret = PAPI_create_eventset(&EventSet);
if (ret != PAPI_OK) handle_error(ret);
```

**See also**

**PAPI\_set\_cmp\_domain** **PAPI\_set\_granularity** **PAPI\_set\_opt** **PAPI\_get\_opt**

## Author

Generated automatically by Doxygen for PAPI from the source code.
