/* 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[] = {

 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),


 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 */
