mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-19 15:59:06 +08:00
They were removed during one of the syncs because Linux repo's tools/ versions of UAPI headers were removed (as they were not needed for perf anymore). This is no right for libbpf, so add them back. And moving forward, we'll sync them from Linux repo original UAPIs. Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
44 lines
1.4 KiB
C
44 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
#ifndef _LINUX_OPENAT2_H
|
|
#define _LINUX_OPENAT2_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
/*
|
|
* Arguments for how openat2(2) should open the target path. If only @flags and
|
|
* @mode are non-zero, then openat2(2) operates very similarly to openat(2).
|
|
*
|
|
* However, unlike openat(2), unknown or invalid bits in @flags result in
|
|
* -EINVAL rather than being silently ignored. @mode must be zero unless one of
|
|
* {O_CREAT, O_TMPFILE} are set.
|
|
*
|
|
* @flags: O_* flags.
|
|
* @mode: O_CREAT/O_TMPFILE file mode.
|
|
* @resolve: RESOLVE_* flags.
|
|
*/
|
|
struct open_how {
|
|
__u64 flags;
|
|
__u64 mode;
|
|
__u64 resolve;
|
|
};
|
|
|
|
/* how->resolve flags for openat2(2). */
|
|
#define RESOLVE_NO_XDEV 0x01 /* Block mount-point crossings
|
|
(includes bind-mounts). */
|
|
#define RESOLVE_NO_MAGICLINKS 0x02 /* Block traversal through procfs-style
|
|
"magic-links". */
|
|
#define RESOLVE_NO_SYMLINKS 0x04 /* Block traversal through all symlinks
|
|
(implies OEXT_NO_MAGICLINKS) */
|
|
#define RESOLVE_BENEATH 0x08 /* Block "lexical" trickery like
|
|
"..", symlinks, and absolute
|
|
paths which escape the dirfd. */
|
|
#define RESOLVE_IN_ROOT 0x10 /* Make all jumps to "/" and ".."
|
|
be scoped inside the dirfd
|
|
(similar to chroot(2)). */
|
|
#define RESOLVE_CACHED 0x20 /* Only complete if resolution can be
|
|
completed through cached lookup. May
|
|
return -EAGAIN if that's not
|
|
possible. */
|
|
|
|
#endif /* _LINUX_OPENAT2_H */
|