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:
Paul Elder
2020-11-03 11:07:21 +09:00
parent 4757ff4ab7
commit fcc6d4bd76
12 changed files with 149 additions and 1 deletions
+7
View File
@@ -55,6 +55,7 @@ libcamera_sources = files([
])
libcamera_sources += libcamera_public_headers
libcamera_sources += libcamera_tracepoint_header
includes = [
libcamera_includes,
@@ -72,6 +73,11 @@ if libgnutls.found()
config_h.set('HAVE_GNUTLS', 1)
endif
if liblttng.found()
config_h.set('HAVE_TRACING', 1)
libcamera_sources += files(['tracepoints.cpp'])
endif
if libudev.found()
config_h.set('HAVE_LIBUDEV', 1)
libcamera_sources += files([
@@ -114,6 +120,7 @@ libcamera_deps = [
libatomic,
libdl,
libgnutls,
liblttng,
libudev,
dependency('threads'),
]
+10
View File
@@ -0,0 +1,10 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright (C) 2020, Google Inc.
*
* tracepoints.cpp - Tracepoints with lttng
*/
#define TRACEPOINT_CREATE_PROBES
#define TRACEPOINT_DEFINE
#include "libcamera/internal/tracepoints.h"