basic: Remove circular dependency between process-util.h and pidref.h
This commit is contained in:
@@ -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
@@ -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) */
|
||||
|
||||
Reference in New Issue
Block a user