tracefs_cpu_open(3) — Linux manual page
LIBTRACEFS(3) libtracefs Manual LIBTRACEFS(3)
NAME
tracefs_cpu_open, tracefs_cpu_close, tracefs_cpu_alloc_fd, tracefs_cpu_free_fd - Opening trace_pipe_raw data for reading
SYNOPSIS
#include <tracefs.h> struct tracefs_cpu *tracefs_cpu_open(struct tracefs_instance *instance, int cpu, bool nonblock); void tracefs_cpu_close(struct tracefs_cpu *tcpu); struct tracefs_cpu *tracefs_cpu_alloc_fd(int fd, int subbuf_size, bool nonblock); void tracefs_cpu_free_fd(struct tracefs_cpu *tcpu);
DESCRIPTION
This set of APIs can be used to open the raw data from the trace_pipe_raw files in the tracefs file system in oder to read them with the tracefs_cpu_read(3) functions. The tracefs_cpu_open() creates a descriptor that can read the tracefs trace_pipe_raw file for a given cpu in a given instance. If instance is NULL than the toplevel trace_pipe_raw file is used. The tracefs_cpu_close() closes all the file descriptors associated to the trace_pipe_raw opened by tracefs_cpu_open(). The tracefs_cpu_alloc_fd() will create a tracefs_cpu descriptor from an existing file descriptor fd. This is useful to use when connecting to a socket or pipe where the other end is feeding raw tracing data in the same format as the trace_pipe_raw file would (like in guest to host tracing). The caller is responsible for determining the subbuf_size that will be used to break up the sub-buffers being read by the file descriptor. The nonblock is treated the same as the same parameter in tracefs_cpu_open(). The tracefs_cpu_free_fd() is used to free the descriptor returned by tracefs_cpu_alloc_fd(). It does all the clean up that tracefs_cpu_close() performs, and that could also be used to free up the descriptor created by tracefs_cpu_alloc_fd() but will also close the file descriptor passed in. Note that tracefs_cpu_free_fd() should not be used on the descriptor returned by tracefs_cpu_open() as it will not close the file descriptor created by it.
RETURN VALUE
The tracefs_cpu_open() returns a struct tracefs_cpu descriptor that can be used by the other functions or NULL on error. The tracefs_cpu_alloc_fd() returns a struct tracefs_cpu descriptor that can be used by the tracefs_cpu_read(3) related functions, where the descriptor will be reading the passed in fd file descriptor.
EXAMPLE
See tracefs_cpu_read(3) for an example.
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), libtraceevent(3), trace-cmd(1)
AUTHOR
Steven Rostedt <rostedt@goodmis.org[1]>
REPORTING BUGS
Report bugs to <linux-trace-devel@vger.kernel.org[2]>
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) 2022 Google, 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. linux-trace-devel@vger.kernel.org mailto:linux-trace-devel@vger.kernel.org
COLOPHON
This page is part of the libtracefs (Linux kernel trace file system library) project. Information about the project can be found at ⟨https://www.trace-cmd.org/⟩. If you have a bug report for this manual page, see ⟨https://www.trace-cmd.org/⟩. This page was obtained from the project's upstream Git repository ⟨https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git⟩ on 2024-06-14. (At that time, the date of the most recent commit that was found in the repository was 2024-05-17.) If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up-to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which is not part of the original manual page), send a mail to man-pages@man7.org libtracefs 1.7.0 12/22/2023 LIBTRACEFS(3)
Pages that refer to this page: tracefs_cpu_read_size(3)