/* Generated by ./xlat/gen.sh from ./xlat/fcntlcmds.in; do not edit. */
#if !(defined(F_DUPFD) || (defined(HAVE_DECL_F_DUPFD) && HAVE_DECL_F_DUPFD))
# define F_DUPFD 0
#endif
#if !(defined(F_GETFD) || (defined(HAVE_DECL_F_GETFD) && HAVE_DECL_F_GETFD))
# define F_GETFD 1
#endif
#if !(defined(F_SETFD) || (defined(HAVE_DECL_F_SETFD) && HAVE_DECL_F_SETFD))
# define F_SETFD 2
#endif
#if !(defined(F_GETFL) || (defined(HAVE_DECL_F_GETFL) && HAVE_DECL_F_GETFL))
# define F_GETFL 3
#endif
#if !(defined(F_SETFL) || (defined(HAVE_DECL_F_SETFL) && HAVE_DECL_F_SETFL))
# define F_SETFL 4
#endif
#if !(defined(F_GETLK) || (defined(HAVE_DECL_F_GETLK) && HAVE_DECL_F_GETLK))
# define F_GETLK 5
#endif
#if !(defined(F_SETLK) || (defined(HAVE_DECL_F_SETLK) && HAVE_DECL_F_SETLK))
# define F_SETLK 6
#endif
#if !(defined(F_SETLKW) || (defined(HAVE_DECL_F_SETLKW) && HAVE_DECL_F_SETLKW))
# define F_SETLKW 7
#endif
#if !(defined(F_SETOWN) || (defined(HAVE_DECL_F_SETOWN) && HAVE_DECL_F_SETOWN))
# define F_SETOWN 8
#endif
#if !(defined(F_GETOWN) || (defined(HAVE_DECL_F_GETOWN) && HAVE_DECL_F_GETOWN))
# define F_GETOWN 9
#endif
#if !(defined(F_SETSIG) || (defined(HAVE_DECL_F_SETSIG) && HAVE_DECL_F_SETSIG))
# define F_SETSIG 10
#endif
#if !(defined(F_GETSIG) || (defined(HAVE_DECL_F_GETSIG) && HAVE_DECL_F_GETSIG))
# define F_GETSIG 11
#endif
#if !(defined(F_SETOWN_EX) || (defined(HAVE_DECL_F_SETOWN_EX) && HAVE_DECL_F_SETOWN_EX))
# define F_SETOWN_EX 15
#endif
#if !(defined(F_GETOWN_EX) || (defined(HAVE_DECL_F_GETOWN_EX) && HAVE_DECL_F_GETOWN_EX))
# define F_GETOWN_EX 16
#endif
#if !(defined(F_GETOWNER_UIDS) || (defined(HAVE_DECL_F_GETOWNER_UIDS) && HAVE_DECL_F_GETOWNER_UIDS))
# define F_GETOWNER_UIDS 17
#endif
#if !(defined(F_OFD_GETLK) || (defined(HAVE_DECL_F_OFD_GETLK) && HAVE_DECL_F_OFD_GETLK))
# define F_OFD_GETLK 36
#endif
#if !(defined(F_OFD_SETLK) || (defined(HAVE_DECL_F_OFD_SETLK) && HAVE_DECL_F_OFD_SETLK))
# define F_OFD_SETLK 37
#endif
#if !(defined(F_OFD_SETLKW) || (defined(HAVE_DECL_F_OFD_SETLKW) && HAVE_DECL_F_OFD_SETLKW))
# define F_OFD_SETLKW 38
#endif
#if !(defined(F_SETLEASE) || (defined(HAVE_DECL_F_SETLEASE) && HAVE_DECL_F_SETLEASE))
# define F_SETLEASE (1024 + 0)
#endif
#if !(defined(F_GETLEASE) || (defined(HAVE_DECL_F_GETLEASE) && HAVE_DECL_F_GETLEASE))
# define F_GETLEASE (1024 + 1)
#endif
#if !(defined(F_NOTIFY) || (defined(HAVE_DECL_F_NOTIFY) && HAVE_DECL_F_NOTIFY))
# define F_NOTIFY (1024 + 2)
#endif
#if !(defined(F_CANCELLK) || (defined(HAVE_DECL_F_CANCELLK) && HAVE_DECL_F_CANCELLK))
# define F_CANCELLK (1024 + 5)
#endif
#if !(defined(F_DUPFD_CLOEXEC) || (defined(HAVE_DECL_F_DUPFD_CLOEXEC) && HAVE_DECL_F_DUPFD_CLOEXEC))
# define F_DUPFD_CLOEXEC (1024 + 6)
#endif
#if !(defined(F_SETPIPE_SZ) || (defined(HAVE_DECL_F_SETPIPE_SZ) && HAVE_DECL_F_SETPIPE_SZ))
# define F_SETPIPE_SZ (1024 + 7)
#endif
#if !(defined(F_GETPIPE_SZ) || (defined(HAVE_DECL_F_GETPIPE_SZ) && HAVE_DECL_F_GETPIPE_SZ))
# define F_GETPIPE_SZ (1024 + 8)
#endif
#if !(defined(F_ADD_SEALS) || (defined(HAVE_DECL_F_ADD_SEALS) && HAVE_DECL_F_ADD_SEALS))
# define F_ADD_SEALS (1024 + 9)
#endif
#if !(defined(F_GET_SEALS) || (defined(HAVE_DECL_F_GET_SEALS) && HAVE_DECL_F_GET_SEALS))
# define F_GET_SEALS (1024 + 10)
#endif

#ifdef IN_MPERS

# error static const struct xlat fcntlcmds in mpers mode

#else

static
const struct xlat fcntlcmds[] = {
/* asm-generic/fcntl.h */
 XLAT(F_DUPFD),
 XLAT(F_GETFD),
 XLAT(F_SETFD),
 XLAT(F_GETFL),
 XLAT(F_SETFL),
 XLAT(F_GETLK),
 XLAT(F_SETLK),
 XLAT(F_SETLKW),
 XLAT(F_SETOWN),
 XLAT(F_GETOWN),
 XLAT(F_SETSIG),
 XLAT(F_GETSIG),
 XLAT(F_SETOWN_EX),
 XLAT(F_GETOWN_EX),
 XLAT(F_GETOWNER_UIDS),
 XLAT(F_OFD_GETLK),
 XLAT(F_OFD_SETLK),
 XLAT(F_OFD_SETLKW),

/* linux/fcntl.h */
 XLAT(F_SETLEASE),
 XLAT(F_GETLEASE),
 XLAT(F_NOTIFY),
 XLAT(F_CANCELLK),
 XLAT(F_DUPFD_CLOEXEC),
 XLAT(F_SETPIPE_SZ),
 XLAT(F_GETPIPE_SZ),
 XLAT(F_ADD_SEALS),
 XLAT(F_GET_SEALS),
 XLAT_END
};

#endif /* !IN_MPERS */
