2 * Copyright © 2020 Alexey Gladkov <gladkov.alexey@gmail.com>
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 #include <linux/mount.h>
21 #include <linux/unistd.h>
23 static inline int fsopen(const char *fsname
, unsigned int flags
)
25 return syscall(__NR_fsopen
, fsname
, flags
);
28 static inline int fsconfig(int fd
, unsigned int cmd
, const char *key
, const void *val
, int aux
)
30 return syscall(__NR_fsconfig
, fd
, cmd
, key
, val
, aux
);
38 assert((fsfd
= fsopen("proc", 0)) != -1);
40 ret
= fsconfig(fsfd
, FSCONFIG_SET_BINARY
, "hidepid", &hidepid
, 0);
42 assert(errno
== EINVAL
);
44 assert(!fsconfig(fsfd
, FSCONFIG_SET_STRING
, "hidepid", "2", 0));
45 assert(!fsconfig(fsfd
, FSCONFIG_SET_STRING
, "hidepid", "invisible", 0));