/* Generated by ./xlat/gen.sh from ./xlat/mmap_prot.in; do not edit. */

static const struct xlat mmap_prot[] = {
#if defined(PROT_NONE) || (defined(HAVE_DECL_PROT_NONE) && HAVE_DECL_PROT_NONE)
	XLAT(PROT_NONE),
#endif
#if defined(PROT_READ) || (defined(HAVE_DECL_PROT_READ) && HAVE_DECL_PROT_READ)
	XLAT(PROT_READ),
#endif
#if defined(PROT_WRITE) || (defined(HAVE_DECL_PROT_WRITE) && HAVE_DECL_PROT_WRITE)
	XLAT(PROT_WRITE),
#endif
#if defined(PROT_EXEC) || (defined(HAVE_DECL_PROT_EXEC) && HAVE_DECL_PROT_EXEC)
	XLAT(PROT_EXEC),
#endif
#if defined(PROT_SEM) || (defined(HAVE_DECL_PROT_SEM) && HAVE_DECL_PROT_SEM)
	XLAT(PROT_SEM),
#endif
#if defined(PROT_GROWSDOWN) || (defined(HAVE_DECL_PROT_GROWSDOWN) && HAVE_DECL_PROT_GROWSDOWN)
	XLAT(PROT_GROWSDOWN),
#endif
#if defined(PROT_GROWSUP) || (defined(HAVE_DECL_PROT_GROWSUP) && HAVE_DECL_PROT_GROWSUP)
	XLAT(PROT_GROWSUP),
#endif
#if defined(PROT_SAO) || (defined(HAVE_DECL_PROT_SAO) && HAVE_DECL_PROT_SAO)
	XLAT(PROT_SAO),
#endif
	XLAT_END
};
