Skip to content

Commit ddf5315

Browse files
committed
selftests/pidfd: expand common pidfd header
Move more infrastructure to the pidfd header. Link: https://lore.kernel.org/r/20250305-work-pidfs-kill_on_last_close-v3-9-c8c3d8361705@kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent 18938f7 commit ddf5315

3 files changed

Lines changed: 78 additions & 71 deletions

File tree

tools/testing/selftests/pidfd/pidfd.h

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <stdlib.h>
1313
#include <string.h>
1414
#include <syscall.h>
15+
#include <sys/ioctl.h>
1516
#include <sys/types.h>
1617
#include <sys/wait.h>
1718

@@ -66,6 +67,83 @@
6667
#define PIDFD_SELF_PROCESS PIDFD_SELF_THREAD_GROUP
6768
#endif
6869

70+
#ifndef PIDFS_IOCTL_MAGIC
71+
#define PIDFS_IOCTL_MAGIC 0xFF
72+
#endif
73+
74+
#ifndef PIDFD_GET_CGROUP_NAMESPACE
75+
#define PIDFD_GET_CGROUP_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 1)
76+
#endif
77+
78+
#ifndef PIDFD_GET_IPC_NAMESPACE
79+
#define PIDFD_GET_IPC_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 2)
80+
#endif
81+
82+
#ifndef PIDFD_GET_MNT_NAMESPACE
83+
#define PIDFD_GET_MNT_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 3)
84+
#endif
85+
86+
#ifndef PIDFD_GET_NET_NAMESPACE
87+
#define PIDFD_GET_NET_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 4)
88+
#endif
89+
90+
#ifndef PIDFD_GET_PID_NAMESPACE
91+
#define PIDFD_GET_PID_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 5)
92+
#endif
93+
94+
#ifndef PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE
95+
#define PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 6)
96+
#endif
97+
98+
#ifndef PIDFD_GET_TIME_NAMESPACE
99+
#define PIDFD_GET_TIME_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 7)
100+
#endif
101+
102+
#ifndef PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE
103+
#define PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 8)
104+
#endif
105+
106+
#ifndef PIDFD_GET_USER_NAMESPACE
107+
#define PIDFD_GET_USER_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 9)
108+
#endif
109+
110+
#ifndef PIDFD_GET_UTS_NAMESPACE
111+
#define PIDFD_GET_UTS_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 10)
112+
#endif
113+
114+
#ifndef PIDFD_GET_INFO
115+
#define PIDFD_GET_INFO _IOWR(PIDFS_IOCTL_MAGIC, 11, struct pidfd_info)
116+
#endif
117+
118+
#ifndef PIDFD_INFO_PID
119+
#define PIDFD_INFO_PID (1UL << 0) /* Always returned, even if not requested */
120+
#endif
121+
122+
#ifndef PIDFD_INFO_CREDS
123+
#define PIDFD_INFO_CREDS (1UL << 1) /* Always returned, even if not requested */
124+
#endif
125+
126+
#ifndef PIDFD_INFO_CGROUPID
127+
#define PIDFD_INFO_CGROUPID (1UL << 2) /* Always returned if available, even if not requested */
128+
#endif
129+
130+
struct pidfd_info {
131+
__u64 mask;
132+
__u64 cgroupid;
133+
__u32 pid;
134+
__u32 tgid;
135+
__u32 ppid;
136+
__u32 ruid;
137+
__u32 rgid;
138+
__u32 euid;
139+
__u32 egid;
140+
__u32 suid;
141+
__u32 sgid;
142+
__u32 fsuid;
143+
__u32 fsgid;
144+
__u32 spare0[1];
145+
};
146+
69147
/*
70148
* The kernel reserves 300 pids via RESERVED_PIDS in kernel/pid.c
71149
* That means, when it wraps around any pid < 300 will be skipped.

tools/testing/selftests/pidfd/pidfd_open_test.c

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -22,32 +22,6 @@
2222
#include "pidfd.h"
2323
#include "../kselftest.h"
2424

25-
#ifndef PIDFS_IOCTL_MAGIC
26-
#define PIDFS_IOCTL_MAGIC 0xFF
27-
#endif
28-
29-
#ifndef PIDFD_GET_INFO
30-
#define PIDFD_GET_INFO _IOWR(PIDFS_IOCTL_MAGIC, 11, struct pidfd_info)
31-
#define PIDFD_INFO_CGROUPID (1UL << 0)
32-
33-
struct pidfd_info {
34-
__u64 mask;
35-
__u64 cgroupid;
36-
__u32 pid;
37-
__u32 tgid;
38-
__u32 ppid;
39-
__u32 ruid;
40-
__u32 rgid;
41-
__u32 euid;
42-
__u32 egid;
43-
__u32 suid;
44-
__u32 sgid;
45-
__u32 fsuid;
46-
__u32 fsgid;
47-
__u32 spare0[1];
48-
};
49-
#endif
50-
5125
static int safe_int(const char *numstr, int *converted)
5226
{
5327
char *err = NULL;

tools/testing/selftests/pidfd/pidfd_setns_test.c

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -16,55 +16,10 @@
1616
#include <unistd.h>
1717
#include <sys/socket.h>
1818
#include <sys/stat.h>
19-
#include <sys/ioctl.h>
2019

2120
#include "pidfd.h"
2221
#include "../kselftest_harness.h"
2322

24-
#ifndef PIDFS_IOCTL_MAGIC
25-
#define PIDFS_IOCTL_MAGIC 0xFF
26-
#endif
27-
28-
#ifndef PIDFD_GET_CGROUP_NAMESPACE
29-
#define PIDFD_GET_CGROUP_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 1)
30-
#endif
31-
32-
#ifndef PIDFD_GET_IPC_NAMESPACE
33-
#define PIDFD_GET_IPC_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 2)
34-
#endif
35-
36-
#ifndef PIDFD_GET_MNT_NAMESPACE
37-
#define PIDFD_GET_MNT_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 3)
38-
#endif
39-
40-
#ifndef PIDFD_GET_NET_NAMESPACE
41-
#define PIDFD_GET_NET_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 4)
42-
#endif
43-
44-
#ifndef PIDFD_GET_PID_NAMESPACE
45-
#define PIDFD_GET_PID_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 5)
46-
#endif
47-
48-
#ifndef PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE
49-
#define PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 6)
50-
#endif
51-
52-
#ifndef PIDFD_GET_TIME_NAMESPACE
53-
#define PIDFD_GET_TIME_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 7)
54-
#endif
55-
56-
#ifndef PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE
57-
#define PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 8)
58-
#endif
59-
60-
#ifndef PIDFD_GET_USER_NAMESPACE
61-
#define PIDFD_GET_USER_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 9)
62-
#endif
63-
64-
#ifndef PIDFD_GET_UTS_NAMESPACE
65-
#define PIDFD_GET_UTS_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 10)
66-
#endif
67-
6823
enum {
6924
PIDFD_NS_USER,
7025
PIDFD_NS_MNT,

0 commit comments

Comments
 (0)