basic: Remove circular dependency between process-util.h and pidref.h

This commit is contained in:
Daan De Meyer
2025-04-18 14:19:16 +02:00
parent 95609f3dff
commit 793e187718
14 changed files with 21 additions and 8 deletions
+1
View File
@@ -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"
+6 -8
View File
@@ -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) */
+1
View File
@@ -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"
+1
View File
@@ -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(
+1
View File
@@ -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"
+1
View File
@@ -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) {
+1
View File
@@ -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"
+1
View File
@@ -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 {
+1
View File
@@ -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"
+1
View File
@@ -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"
+2
View File
@@ -1,6 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <string.h>
#include "ansi-color.h"
#include "assert-util.h"
#include "glyph-util.h"
+1
View File
@@ -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"
+2
View File
@@ -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"
+1
View File
@@ -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"