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

#ifdef IN_MPERS

# error static const struct xlat sysctl_kern in mpers mode

#else

static
const struct xlat sysctl_kern[] = {
 XLAT(KERN_OSTYPE),
 XLAT(KERN_OSRELEASE),
 XLAT(KERN_OSREV),
 XLAT(KERN_VERSION),
 XLAT(KERN_SECUREMASK),
 XLAT(KERN_PROF),
 XLAT(KERN_NODENAME),
 XLAT(KERN_DOMAINNAME),
 XLAT(KERN_PANIC),
 XLAT(KERN_REALROOTDEV),
 XLAT(KERN_SPARC_REBOOT),
 XLAT(KERN_CTLALTDEL),
 XLAT(KERN_PRINTK),
 XLAT(KERN_NAMETRANS),
 XLAT(KERN_PPC_HTABRECLAIM),
 XLAT(KERN_PPC_ZEROPAGED),
 XLAT(KERN_PPC_POWERSAVE_NAP),
 XLAT(KERN_MODPROBE),
 XLAT(KERN_SG_BIG_BUFF),
 XLAT(KERN_ACCT),
 XLAT(KERN_PPC_L2CR),
 XLAT(KERN_RTSIGNR),
 XLAT(KERN_RTSIGMAX),
 XLAT(KERN_SHMMAX),
 XLAT(KERN_MSGMAX),
 XLAT(KERN_MSGMNB),
 XLAT(KERN_MSGPOOL),
 XLAT(KERN_SYSRQ),
 XLAT(KERN_MAX_THREADS),
 XLAT(KERN_RANDOM),
 XLAT(KERN_SHMALL),
 XLAT(KERN_MSGMNI),
 XLAT(KERN_SEM),
 XLAT(KERN_SPARC_STOP_A),
 XLAT(KERN_SHMMNI),
 XLAT(KERN_OVERFLOWUID),
 XLAT(KERN_OVERFLOWGID),
 XLAT(KERN_SHMPATH),
 XLAT(KERN_HOTPLUG),
 XLAT(KERN_IEEE_EMULATION_WARNINGS),
 XLAT(KERN_S390_USER_DEBUG_LOGGING),
 XLAT(KERN_CORE_USES_PID),
 XLAT(KERN_TAINTED),
 XLAT(KERN_CADPID),
 XLAT(KERN_PIDMAX),
 XLAT(KERN_CORE_PATTERN),
 XLAT(KERN_PANIC_ON_OOPS),
 XLAT(KERN_HPPA_PWRSW),
 XLAT(KERN_HPPA_UNALIGNED),
#if defined(KERN_PRINTK_RATELIMIT) || (defined(HAVE_DECL_KERN_PRINTK_RATELIMIT) && HAVE_DECL_KERN_PRINTK_RATELIMIT)
  XLAT(KERN_PRINTK_RATELIMIT),
#endif
#if defined(KERN_PRINTK_RATELIMIT_BURST) || (defined(HAVE_DECL_KERN_PRINTK_RATELIMIT_BURST) && HAVE_DECL_KERN_PRINTK_RATELIMIT_BURST)
  XLAT(KERN_PRINTK_RATELIMIT_BURST),
#endif
#if defined(KERN_PTY) || (defined(HAVE_DECL_KERN_PTY) && HAVE_DECL_KERN_PTY)
  XLAT(KERN_PTY),
#endif
#if defined(KERN_NGROUPS_MAX) || (defined(HAVE_DECL_KERN_NGROUPS_MAX) && HAVE_DECL_KERN_NGROUPS_MAX)
  XLAT(KERN_NGROUPS_MAX),
#endif
#if defined(KERN_SPARC_SCONS_PWROFF) || (defined(HAVE_DECL_KERN_SPARC_SCONS_PWROFF) && HAVE_DECL_KERN_SPARC_SCONS_PWROFF)
  XLAT(KERN_SPARC_SCONS_PWROFF),
#endif
#if defined(KERN_HZ_TIMER) || (defined(HAVE_DECL_KERN_HZ_TIMER) && HAVE_DECL_KERN_HZ_TIMER)
  XLAT(KERN_HZ_TIMER),
#endif
#if defined(KERN_UNKNOWN_NMI_PANIC) || (defined(HAVE_DECL_KERN_UNKNOWN_NMI_PANIC) && HAVE_DECL_KERN_UNKNOWN_NMI_PANIC)
  XLAT(KERN_UNKNOWN_NMI_PANIC),
#endif
#if defined(KERN_BOOTLOADER_TYPE) || (defined(HAVE_DECL_KERN_BOOTLOADER_TYPE) && HAVE_DECL_KERN_BOOTLOADER_TYPE)
  XLAT(KERN_BOOTLOADER_TYPE),
#endif
#if defined(KERN_RANDOMIZE) || (defined(HAVE_DECL_KERN_RANDOMIZE) && HAVE_DECL_KERN_RANDOMIZE)
  XLAT(KERN_RANDOMIZE),
#endif
#if defined(KERN_SETUID_DUMPABLE) || (defined(HAVE_DECL_KERN_SETUID_DUMPABLE) && HAVE_DECL_KERN_SETUID_DUMPABLE)
  XLAT(KERN_SETUID_DUMPABLE),
#endif
#if defined(KERN_SPIN_RETRY) || (defined(HAVE_DECL_KERN_SPIN_RETRY) && HAVE_DECL_KERN_SPIN_RETRY)
  XLAT(KERN_SPIN_RETRY),
#endif
#if defined(KERN_ACPI_VIDEO_FLAGS) || (defined(HAVE_DECL_KERN_ACPI_VIDEO_FLAGS) && HAVE_DECL_KERN_ACPI_VIDEO_FLAGS)
  XLAT(KERN_ACPI_VIDEO_FLAGS),
#endif
#if defined(KERN_IA64_UNALIGNED) || (defined(HAVE_DECL_KERN_IA64_UNALIGNED) && HAVE_DECL_KERN_IA64_UNALIGNED)
  XLAT(KERN_IA64_UNALIGNED),
#endif
#if defined(KERN_COMPAT_LOG) || (defined(HAVE_DECL_KERN_COMPAT_LOG) && HAVE_DECL_KERN_COMPAT_LOG)
  XLAT(KERN_COMPAT_LOG),
#endif
#if defined(KERN_MAX_LOCK_DEPTH) || (defined(HAVE_DECL_KERN_MAX_LOCK_DEPTH) && HAVE_DECL_KERN_MAX_LOCK_DEPTH)
  XLAT(KERN_MAX_LOCK_DEPTH),
#endif
#if defined(KERN_NMI_WATCHDOG) || (defined(HAVE_DECL_KERN_NMI_WATCHDOG) && HAVE_DECL_KERN_NMI_WATCHDOG)
  XLAT(KERN_NMI_WATCHDOG),
#endif
#if defined(KERN_PANIC_ON_NMI) || (defined(HAVE_DECL_KERN_PANIC_ON_NMI) && HAVE_DECL_KERN_PANIC_ON_NMI)
  XLAT(KERN_PANIC_ON_NMI),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
