/* Generated by ./xlat/gen.sh from ./xlat/fan_classes.in; do not edit. */
#if !(defined(FAN_CLASS_NOTIF) || (defined(HAVE_DECL_FAN_CLASS_NOTIF) && HAVE_DECL_FAN_CLASS_NOTIF))
# define FAN_CLASS_NOTIF 0x00000000
#endif
#if !(defined(FAN_CLASS_CONTENT) || (defined(HAVE_DECL_FAN_CLASS_CONTENT) && HAVE_DECL_FAN_CLASS_CONTENT))
# define FAN_CLASS_CONTENT 0x00000004
#endif
#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

#ifdef IN_MPERS

# error static const struct xlat fan_classes in mpers mode

#else

static
const struct xlat fan_classes[] = {
 XLAT(FAN_CLASS_NOTIF),
 XLAT(FAN_CLASS_CONTENT),
 XLAT(FAN_CLASS_PRE_CONTENT),
 XLAT_END
};

#endif /* !IN_MPERS */
