From: Daan De Meyer Date: Sat, 12 Apr 2025 17:45:49 +0000 (+0200) Subject: basic: Remove circular dependency between process-util.h and pidref.h X-Git-Tag: v258-rc1~780^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=793e18771891f0dac8855a594473f87a6e7a117d;p=thirdparty%2Fsystemd.git basic: Remove circular dependency between process-util.h and pidref.h --- diff --git a/src/basic/capability-util.c b/src/basic/capability-util.c index 0b544ea64a5..0aaf8c3807b 100644 --- a/src/basic/capability-util.c +++ b/src/basic/capability-util.c @@ -20,6 +20,7 @@ #include "macro.h" #include "parse-util.h" #include "pidref.h" +#include "process-util.h" #include "stat-util.h" #include "user-util.h" diff --git a/src/basic/pidref.h b/src/basic/pidref.h index b71c3bd9d0c..064b9d851a9 100644 --- a/src/basic/pidref.h +++ b/src/basic/pidref.h @@ -1,10 +1,8 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -typedef struct PidRef PidRef; - #include "macro.h" -#include "process-util.h" +#include "memory-util.h" /* An embeddable structure carrying a reference to a process. Supposed to be used when tracking processes * continuously. This combines a PID, a modern Linux pidfd and the 64bit inode number of the pidfd into one @@ -29,22 +27,22 @@ typedef struct PidRef PidRef; * process. Moreover, most operations will fail with -EREMOTE. Only PidRef structures that are not marked * *unset* can be marked *remote*. */ -struct PidRef { - pid_t pid; /* > 0 if the PidRef is set, otherwise set to PID_AUTOMATIC if automatic mode is - * desired, or 0 otherwise. */ +typedef struct PidRef { + pid_t pid; /* > 0 if the PidRef is set, otherwise set to INT_MIN (PID_AUTOMATIC) if automatic + * mode is desired, or 0 otherwise. */ int fd; /* only valid if pidfd are available in the kernel, and we manage to get an fd. If we * know that the PID is not from the local machine we set this to -EREMOTE, otherwise * we use -EBADF as indicator the fd is invalid. */ uint64_t fd_id; /* the inode number of pidfd. only useful in kernel 6.9+ where pidfds live in their own pidfs and each process comes with a unique inode number */ -}; +} PidRef; #define PIDREF_NULL (PidRef) { .fd = -EBADF } /* A special pidref value that we are using when a PID shall be automatically acquired from some surrounding * context, for example connection peer. Much like PIDREF_NULL it will be considered unset by * pidref_is_set(). */ -#define PIDREF_AUTOMATIC (const PidRef) { .pid = PID_AUTOMATIC, .fd = -EBADF } +#define PIDREF_AUTOMATIC (const PidRef) { .pid = (pid_t) INT_MIN, .fd = -EBADF } /* Turns a pid_t into a PidRef structure on-the-fly *without* acquiring a pidfd for it. (As opposed to * pidref_set_pid() which does so *with* acquiring one, see below) */ diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c index 2e3c4e0d689..37f9495138f 100644 --- a/src/libsystemd/sd-bus/bus-objects.c +++ b/src/libsystemd/sd-bus/bus-objects.c @@ -11,6 +11,7 @@ #include "bus-slot.h" #include "bus-type.h" #include "log.h" +#include "set.h" #include "string-util.h" #include "strv.h" diff --git a/src/libsystemd/sd-bus/bus-slot.c b/src/libsystemd/sd-bus/bus-slot.c index 25272dbc0f7..ed9da966383 100644 --- a/src/libsystemd/sd-bus/bus-slot.c +++ b/src/libsystemd/sd-bus/bus-slot.c @@ -7,6 +7,7 @@ #include "bus-objects.h" #include "bus-slot.h" #include "log.h" +#include "set.h" #include "string-util.h" sd_bus_slot *bus_slot_allocate( diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c index 5e374ae91e8..3a00a700c93 100644 --- a/src/login/logind-session-dbus.c +++ b/src/login/logind-session-dbus.c @@ -10,6 +10,7 @@ #include "bus-util.h" #include "devnum-util.h" #include "fd-util.h" +#include "format-util.h" #include "logind-brightness.h" #include "logind-dbus.h" #include "logind-polkit.h" diff --git a/src/login/logind-utmp.c b/src/login/logind-utmp.c index 9b6f4adcf03..47a293914ba 100644 --- a/src/login/logind-utmp.c +++ b/src/login/logind-utmp.c @@ -2,6 +2,7 @@ #include "logind-utmp.h" #include "path-util.h" +#include "process-util.h" #include "utmp-wtmp.h" int manager_read_utmp(Manager *m) { diff --git a/src/login/logind-varlink.c b/src/login/logind-varlink.c index 83f0c55531c..d812d81b200 100644 --- a/src/login/logind-varlink.c +++ b/src/login/logind-varlink.c @@ -2,6 +2,7 @@ #include "cgroup-util.h" #include "fd-util.h" +#include "format-util.h" #include "json-util.h" #include "logind.h" #include "logind-dbus.h" diff --git a/src/machine/image-varlink.c b/src/machine/image-varlink.c index eb0fc12dc6b..fc05edf8e14 100644 --- a/src/machine/image-varlink.c +++ b/src/machine/image-varlink.c @@ -13,6 +13,7 @@ #include "json-util.h" #include "machine.h" #include "machine-pool.h" +#include "process-util.h" #include "string-util.h" typedef struct ImageUpdateParameters { diff --git a/src/ptyfwd/ptyfwd-tool.c b/src/ptyfwd/ptyfwd-tool.c index 26bb295b3fb..16a49ccdc1b 100644 --- a/src/ptyfwd/ptyfwd-tool.c +++ b/src/ptyfwd/ptyfwd-tool.c @@ -10,6 +10,7 @@ #include "log.h" #include "main-func.h" #include "pretty-print.h" +#include "process-util.h" #include "ptyfwd.h" #include "strv.h" diff --git a/src/shared/notify-recv.c b/src/shared/notify-recv.c index ac790da2a8c..0e64bdde04b 100644 --- a/src/shared/notify-recv.c +++ b/src/shared/notify-recv.c @@ -4,6 +4,7 @@ #include "fd-util.h" #include "log.h" #include "notify-recv.h" +#include "process-util.h" #include "socket-util.h" #include "strv.h" #include "user-util.h" diff --git a/src/shared/pretty-print.h b/src/shared/pretty-print.h index 16966c3ab8c..6f449550765 100644 --- a/src/shared/pretty-print.h +++ b/src/shared/pretty-print.h @@ -1,6 +1,8 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once +#include + #include "ansi-color.h" #include "assert-util.h" #include "glyph-util.h" diff --git a/src/test/test-display-quota.c b/src/test/test-display-quota.c index e3b67526a30..68ecfc8d013 100644 --- a/src/test/test-display-quota.c +++ b/src/test/test-display-quota.c @@ -2,6 +2,7 @@ #include "bitfield.h" #include "fd-util.h" +#include "format-util.h" #include "log.h" #include "main-func.h" #include "missing_syscall.h" diff --git a/src/udev/udev-watch.c b/src/udev/udev-watch.c index 506c3e0835b..2d3127eee99 100644 --- a/src/udev/udev-watch.c +++ b/src/udev/udev-watch.c @@ -15,7 +15,9 @@ #include "inotify-util.h" #include "mkdir.h" #include "parse-util.h" +#include "process-util.h" #include "rm-rf.h" +#include "set.h" #include "stdio-util.h" #include "string-util.h" #include "udev-manager.h" diff --git a/src/varlinkctl/varlinkctl.c b/src/varlinkctl/varlinkctl.c index 3bcb34b642b..7b2ff301aa9 100644 --- a/src/varlinkctl/varlinkctl.c +++ b/src/varlinkctl/varlinkctl.c @@ -17,6 +17,7 @@ #include "parse-argument.h" #include "path-util.h" #include "pretty-print.h" +#include "process-util.h" #include "terminal-util.h" #include "varlink-idl-util.h" #include "varlink-util.h"