linux/include/uapi/linux/openat2.h

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_LINUX_OPENAT2_H
#define _UAPI_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 {};

/* how->resolve flags for openat2(2). */
#define RESOLVE_NO_XDEV
#define RESOLVE_NO_MAGICLINKS
#define RESOLVE_NO_SYMLINKS
#define RESOLVE_BENEATH
#define RESOLVE_IN_ROOT
#define RESOLVE_CACHED

#endif /* _UAPI_LINUX_OPENAT2_H */