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

static const struct xlat fan_classes[] = {
#if !(defined(FAN_CLASS_NOTIF) || (defined(HAVE_DECL_FAN_CLASS_NOTIF) && HAVE_DECL_FAN_CLASS_NOTIF))
# define FAN_CLASS_NOTIF 0x00000000
#endif
 XLAT(FAN_CLASS_NOTIF),
#if !(defined(FAN_CLASS_CONTENT) || (defined(HAVE_DECL_FAN_CLASS_CONTENT) && HAVE_DECL_FAN_CLASS_CONTENT))
# define FAN_CLASS_CONTENT 0x00000004
#endif
 XLAT(FAN_CLASS_CONTENT),
#if !(defined(FAN_CLASS_PRE_CONTENT) || (defined(HAVE_DECL_FAN_CLASS_PRE_CONTENT) && HAVE_DECL_FAN_CLASS_PRE_CONTENT))
# define FAN_CLASS_PRE_CONTENT 0x00000008
#endif
 XLAT(FAN_CLASS_PRE_CONTENT),
 XLAT_END
};
