From: Yu Watanabe Date: Tue, 18 Jul 2023 14:10:32 +0000 (+0900) Subject: udev: move DEVICE_TRACE() to udev-trace.h X-Git-Tag: v255-rc1~870^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c3edc2ee3cd1625146617f0286fdaf0978402bf;p=thirdparty%2Fsystemd.git udev: move DEVICE_TRACE() to udev-trace.h It is only used by udevd, and not necessary in src/shared. --- diff --git a/src/shared/udev-util.h b/src/shared/udev-util.h index 05a0849934b..c848cf6177a 100644 --- a/src/shared/udev-util.h +++ b/src/shared/udev-util.h @@ -1,11 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#if HAVE_SYS_SDT_H -#define SDT_USE_VARIADIC -#include -#endif - #include "sd-device.h" #include "time-util.h" @@ -55,30 +50,3 @@ bool devpath_conflict(const char *a, const char *b); int udev_queue_is_empty(void); bool udev_available(void); - -#if HAVE_SYS_SDT_H - -/* Each trace point can have different number of additional arguments. Note that when the macro is used only - * additional arguments are listed in the macro invocation! - * - * Default arguments for each trace point are as follows: - * - arg0 - action - * - arg1 - sysname - * - arg2 - syspath - * - arg3 - subsystem - */ -#define DEVICE_TRACE_POINT(name, dev, ...) \ - do { \ - PROTECT_ERRNO; \ - const char *_n = NULL, *_p = NULL, *_s = NULL; \ - sd_device *_d = (dev); \ - sd_device_action_t _a = _SD_DEVICE_ACTION_INVALID; \ - (void) sd_device_get_action(_d, &_a); \ - (void) sd_device_get_sysname(_d, &_n); \ - (void) sd_device_get_syspath(_d, &_p); \ - (void) sd_device_get_subsystem(_d, &_s); \ - STAP_PROBEV(udev, name, device_action_to_string(_a), _n, _p, _s __VA_OPT__(,) __VA_ARGS__);\ - } while (false); -#else -#define DEVICE_TRACE_POINT(name, dev, ...) ((void) 0) -#endif diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c index 31547b76794..745f29a88f3 100644 --- a/src/udev/udev-event.c +++ b/src/udev/udev-event.c @@ -31,6 +31,7 @@ #include "udev-builtin.h" #include "udev-event.h" #include "udev-node.h" +#include "udev-trace.h" #include "udev-util.h" #include "udev-watch.h" #include "user-util.h" diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index 88846ae275a..2c9797f0999 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -32,6 +32,7 @@ #include "udev-event.h" #include "udev-node.h" #include "udev-rules.h" +#include "udev-trace.h" #include "udev-util.h" #include "user-util.h" #include "virt.h" diff --git a/src/udev/udev-trace.h b/src/udev/udev-trace.h new file mode 100644 index 00000000000..5e943908542 --- /dev/null +++ b/src/udev/udev-trace.h @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +#if HAVE_SYS_SDT_H +#define SDT_USE_VARIADIC +#include + +#include "device-private.h" +#include "device-util.h" +#include "errno-util.h" + +/* Each trace point can have different number of additional arguments. Note that when the macro is used only + * additional arguments are listed in the macro invocation! + * + * Default arguments for each trace point are as follows: + * - arg0 - action + * - arg1 - sysname + * - arg2 - syspath + * - arg3 - subsystem + */ +#define DEVICE_TRACE_POINT(name, dev, ...) \ + do { \ + PROTECT_ERRNO; \ + const char *_n = NULL, *_p = NULL, *_s = NULL; \ + sd_device *_d = (dev); \ + sd_device_action_t _a = _SD_DEVICE_ACTION_INVALID; \ + (void) sd_device_get_action(_d, &_a); \ + (void) sd_device_get_sysname(_d, &_n); \ + (void) sd_device_get_syspath(_d, &_p); \ + (void) sd_device_get_subsystem(_d, &_s); \ + STAP_PROBEV(udev, name, device_action_to_string(_a), _n, _p, _s __VA_OPT__(,) __VA_ARGS__);\ + } while (false); +#else +#define DEVICE_TRACE_POINT(name, dev, ...) ((void) 0) +#endif diff --git a/src/udev/udevd.c b/src/udev/udevd.c index fe29dd94b36..b545abd3e44 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -69,6 +69,7 @@ #include "udev-ctrl.h" #include "udev-event.h" #include "udev-node.h" +#include "udev-trace.h" #include "udev-util.h" #include "udev-watch.h" #include "user-util.h"