libcamera: tracing: Implement tracing infrastructure
Implement tracing infrastructure in libcamera. It takes .tp files, as required by lttng, and generates a tracepoint header and C file, as lttng requires. meson is updated accordingly to get it to compile with the rest of libcamera. Update the documentation accordingly. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
@@ -1,5 +1,14 @@
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
subdir('tracepoints')
|
||||
|
||||
libcamera_tracepoint_header = custom_target(
|
||||
'tp_header',
|
||||
input: [ 'tracepoints.h.in', tracepoint_files ],
|
||||
output: 'tracepoints.h',
|
||||
command: [ gen_tracepoints_header, '@OUTPUT@', '@INPUT@' ],
|
||||
)
|
||||
|
||||
libcamera_internal_headers = files([
|
||||
'byte_stream_buffer.h',
|
||||
'camera_controls.h',
|
||||
|
||||
61
include/libcamera/internal/tracepoints.h.in
Normal file
61
include/libcamera/internal/tracepoints.h.in
Normal file
@@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
/*
|
||||
* Copyright (C) {{year}}, Google Inc.
|
||||
*
|
||||
* tracepoints.h - Tracepoints with lttng
|
||||
*
|
||||
* This file is auto-generated. Do not edit.
|
||||
*/
|
||||
#ifndef __LIBCAMERA_INTERNAL_TRACEPOINTS_H__
|
||||
#define __LIBCAMERA_INTERNAL_TRACEPOINTS_H__
|
||||
|
||||
#if HAVE_TRACING
|
||||
#define LIBCAMERA_TRACEPOINT(...) tracepoint(libcamera, __VA_ARGS__)
|
||||
|
||||
#define LIBCAMERA_TRACEPOINT_IPA_BEGIN(pipe, func) \
|
||||
tracepoint(libcamera, ipa_call_begin, #pipe, #func)
|
||||
|
||||
#define LIBCAMERA_TRACEPOINT_IPA_END(pipe, func) \
|
||||
tracepoint(libcamera, ipa_call_end, #pipe, #func)
|
||||
|
||||
#else
|
||||
|
||||
namespace {
|
||||
|
||||
template <typename ...Args>
|
||||
inline void unused([[maybe_unused]] Args&& ...args)
|
||||
{
|
||||
}
|
||||
|
||||
} /* namespace */
|
||||
|
||||
#define LIBCAMERA_TRACEPOINT(category, ...) unused(__VA_ARGS__)
|
||||
|
||||
#define LIBCAMERA_TRACEPOINT_IPA_BEGIN(pipe, func)
|
||||
#define LIBCAMERA_TRACEPOINT_IPA_END(pipe, func)
|
||||
|
||||
#endif /* HAVE_TRACING */
|
||||
|
||||
#endif /* __LIBCAMERA_INTERNAL_TRACEPOINTS_H__ */
|
||||
|
||||
|
||||
#if HAVE_TRACING
|
||||
|
||||
#undef TRACEPOINT_PROVIDER
|
||||
#define TRACEPOINT_PROVIDER libcamera
|
||||
|
||||
#undef TRACEPOINT_INCLUDE
|
||||
#define TRACEPOINT_INCLUDE "{{path}}"
|
||||
|
||||
#if !defined(INCLUDE_LIBCAMERA_INTERNAL_TRACEPOINTS_TP_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
|
||||
#define INCLUDE_LIBCAMERA_INTERNAL_TRACEPOINTS_TP_H
|
||||
|
||||
#include <lttng/tracepoint.h>
|
||||
|
||||
{{source}}
|
||||
|
||||
#endif /* INCLUDE_LIBCAMERA_INTERNAL_TRACEPOINTS_TP_H */
|
||||
|
||||
#include <lttng/tracepoint-event.h>
|
||||
|
||||
#endif /* HAVE_TRACING */
|
||||
4
include/libcamera/internal/tracepoints/meson.build
Normal file
4
include/libcamera/internal/tracepoints/meson.build
Normal file
@@ -0,0 +1,4 @@
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
tracepoint_files = files([
|
||||
])
|
||||
Reference in New Issue
Block a user