---
name: "tracefs_option_enable"
section: "3"
platform: "linux"
package: "libtracefs"
version: "1.8.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/tracefs_option_enable"
---

# tracefs\_option\_enable(3)

Various trace option functions.

## NAME

tracefs\_option\_enable, tracefs\_option\_disable, tracefs\_option\_name - Various trace option functions.

## SYNOPSIS

```
#include <tracefs.h>
int tracefs_option_enable(struct tracefs_instance *instance, enum tracefs_option_id id);
int tracefs_option_disable(struct tracefs_instance *instance, enum tracefs_option_id id);
const char *tracefs_option_name(enum tracefs_option_id id);
```

## DESCRIPTION

This set of APIs can be used to enable and disable ftrace options and to get the name of an option.

The **tracefs\_option\_enable()** function enables the option with *id* in the given *instance*. If *instance* is NULL, the option is enabled in the top trace instance.

The **tracefs\_option\_disable()** function disables the option with *id* in the given *instance*. If *instance* is NULL, the option is disabled in the top trace instance.

The **tracefs\_option\_name()** function returns a string, representing the option with *id*. The string must **not** be freed.

## RETURN VALUE

The **tracefs\_option\_enable()** and **tracefs\_option\_disable()** functions return 0 if the state of the option is set successfully, or -1 in case of an error.

The **tracefs\_option\_name()** function returns string with option name, or "unknown" in case of an error. The returned string must **not** be freed.

## EXAMPLE

```
#include <tracefs.h>
...
if (tracefs_option_enable(NULL, TRACEFS_OPTION_ANNOTATE)) {
        /* Failed to enable annotate option in top trace instance */
}
...
if (tracefs_option_disable(NULL, TRACEFS_OPTION_CONTEXT_INFO)) {
        /* Failed to disable context info option in top trace instance */
}
...
char *name = tracefs_option_name(TRACEFS_OPTION_FUNC_STACKTRACE);
if (strcmp(name, "unknown")) {
        /* Cannot get the name of the option */
}
```

## FILES

```
tracefs.h
        Header file to include in order to have access to the library APIs.
-ltracefs
        Linker switch to add when building a program that uses the library.
```

## SEE ALSO

[**libtracefs**(3)](/libtracefs/3.md), [**libtraceevent**(3)](/libtraceevent/3.md), [**trace-cmd**(1)](/trace-cmd/1.md)

## AUTHOR

```
Steven Rostedt <rostedt@goodmis.org[1]>
Tzvetomir Stoyanov <tz.stoyanov@gmail.com[2]>
```

## REPORTING BUGS

Report bugs to \<**linux-trace-devel@vger.kernel.org**\[3\]\>

## LICENSE

libtracefs is Free Software licensed under the GNU LGPL 2.1

## RESOURCES

**https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/**

## COPYING

Copyright (C) 2020 VMware, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).

## NOTES

- 1\.

  rostedt@goodmis.org

  mailto:rostedt@goodmis.org

- 2\.

  tz.stoyanov@gmail.com

  mailto:tz.stoyanov@gmail.com

- 3\.

  linux-trace-devel@vger.kernel.org

  mailto:linux-trace-devel@vger.kernel.org
