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

#ifdef IN_MPERS

# error static const struct xlat sysctl_root in mpers mode

#else

static
const struct xlat sysctl_root[] = {
 XLAT(CTL_KERN),
 XLAT(CTL_VM),
 XLAT(CTL_NET),
 XLAT(CTL_FS),
 XLAT(CTL_DEBUG),
 XLAT(CTL_DEV),
 XLAT(CTL_BUS),
 XLAT(CTL_ABI),
 XLAT(CTL_CPU),
#if defined(CTL_PROC) || (defined(HAVE_DECL_CTL_PROC) && HAVE_DECL_CTL_PROC)
  XLAT(CTL_PROC),
#endif
#if defined(CTL_ARLAN) || (defined(HAVE_DECL_CTL_ARLAN) && HAVE_DECL_CTL_ARLAN)
  XLAT(CTL_ARLAN),
#endif
#if defined(CTL_S390DBF) || (defined(HAVE_DECL_CTL_S390DBF) && HAVE_DECL_CTL_S390DBF)
  XLAT(CTL_S390DBF),
#endif
#if defined(CTL_SUNRPC) || (defined(HAVE_DECL_CTL_SUNRPC) && HAVE_DECL_CTL_SUNRPC)
  XLAT(CTL_SUNRPC),
#endif
#if defined(CTL_PM) || (defined(HAVE_DECL_CTL_PM) && HAVE_DECL_CTL_PM)
  XLAT(CTL_PM),
#endif
#if defined(CTL_FRV) || (defined(HAVE_DECL_CTL_FRV) && HAVE_DECL_CTL_FRV)
  XLAT(CTL_FRV),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
