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

#ifdef IN_MPERS

# error static const struct xlat notifyflags in mpers mode

#else

static
const struct xlat notifyflags[] = {
#if defined(DN_ACCESS) || (defined(HAVE_DECL_DN_ACCESS) && HAVE_DECL_DN_ACCESS)
  XLAT(DN_ACCESS),
#endif
#if defined(DN_MODIFY) || (defined(HAVE_DECL_DN_MODIFY) && HAVE_DECL_DN_MODIFY)
  XLAT(DN_MODIFY),
#endif
#if defined(DN_CREATE) || (defined(HAVE_DECL_DN_CREATE) && HAVE_DECL_DN_CREATE)
  XLAT(DN_CREATE),
#endif
#if defined(DN_DELETE) || (defined(HAVE_DECL_DN_DELETE) && HAVE_DECL_DN_DELETE)
  XLAT(DN_DELETE),
#endif
#if defined(DN_RENAME) || (defined(HAVE_DECL_DN_RENAME) && HAVE_DECL_DN_RENAME)
  XLAT(DN_RENAME),
#endif
#if defined(DN_ATTRIB) || (defined(HAVE_DECL_DN_ATTRIB) && HAVE_DECL_DN_ATTRIB)
  XLAT(DN_ATTRIB),
#endif
#if defined(DN_MULTISHOT) || (defined(HAVE_DECL_DN_MULTISHOT) && HAVE_DECL_DN_MULTISHOT)
  XLAT(DN_MULTISHOT),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
