/* 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[] = {
#if defined(KERN_OSTYPE) || (defined(HAVE_DECL_KERN_OSTYPE) && HAVE_DECL_KERN_OSTYPE)
  XLAT(KERN_OSTYPE),
#endif
#if defined(KERN_OSRELEASE) || (defined(HAVE_DECL_KERN_OSRELEASE) && HAVE_DECL_KERN_OSRELEASE)
  XLAT(KERN_OSRELEASE),
#endif
#if defined(KERN_OSREV) || (defined(HAVE_DECL_KERN_OSREV) && HAVE_DECL_KERN_OSREV)
  XLAT(KERN_OSREV),
#endif
#if defined(KERN_VERSION) || (defined(HAVE_DECL_KERN_VERSION) && HAVE_DECL_KERN_VERSION)
  XLAT(KERN_VERSION),
#endif
#if defined(KERN_SECUREMASK) || (defined(HAVE_DECL_KERN_SECUREMASK) && HAVE_DECL_KERN_SECUREMASK)
  XLAT(KERN_SECUREMASK),
#endif
#if defined(KERN_PROF) || (defined(HAVE_DECL_KERN_PROF) && HAVE_DECL_KERN_PROF)
  XLAT(KERN_PROF),
#endif
#if defined(KERN_NODENAME) || (defined(HAVE_DECL_KERN_NODENAME) && HAVE_DECL_KERN_NODENAME)
  XLAT(KERN_NODENAME),
#endif
#if defined(KERN_DOMAINNAME) || (defined(HAVE_DECL_KERN_DOMAINNAME) && HAVE_DECL_KERN_DOMAINNAME)
  XLAT(KERN_DOMAINNAME),
#endif
#if defined(KERN_PANIC) || (defined(HAVE_DECL_KERN_PANIC) && HAVE_DECL_KERN_PANIC)
  XLAT(KERN_PANIC),
#endif
#if defined(KERN_REALROOTDEV) || (defined(HAVE_DECL_KERN_REALROOTDEV) && HAVE_DECL_KERN_REALROOTDEV)
  XLAT(KERN_REALROOTDEV),
#endif
#if defined(KERN_SPARC_REBOOT) || (defined(HAVE_DECL_KERN_SPARC_REBOOT) && HAVE_DECL_KERN_SPARC_REBOOT)
  XLAT(KERN_SPARC_REBOOT),
#endif
#if defined(KERN_CTLALTDEL) || (defined(HAVE_DECL_KERN_CTLALTDEL) && HAVE_DECL_KERN_CTLALTDEL)
  XLAT(KERN_CTLALTDEL),
#endif
#if defined(KERN_PRINTK) || (defined(HAVE_DECL_KERN_PRINTK) && HAVE_DECL_KERN_PRINTK)
  XLAT(KERN_PRINTK),
#endif
#if defined(KERN_NAMETRANS) || (defined(HAVE_DECL_KERN_NAMETRANS) && HAVE_DECL_KERN_NAMETRANS)
  XLAT(KERN_NAMETRANS),
#endif
#if defined(KERN_PPC_HTABRECLAIM) || (defined(HAVE_DECL_KERN_PPC_HTABRECLAIM) && HAVE_DECL_KERN_PPC_HTABRECLAIM)
  XLAT(KERN_PPC_HTABRECLAIM),
#endif
#if defined(KERN_PPC_ZEROPAGED) || (defined(HAVE_DECL_KERN_PPC_ZEROPAGED) && HAVE_DECL_KERN_PPC_ZEROPAGED)
  XLAT(KERN_PPC_ZEROPAGED),
#endif
#if defined(KERN_PPC_POWERSAVE_NAP) || (defined(HAVE_DECL_KERN_PPC_POWERSAVE_NAP) && HAVE_DECL_KERN_PPC_POWERSAVE_NAP)
  XLAT(KERN_PPC_POWERSAVE_NAP),
#endif
#if defined(KERN_MODPROBE) || (defined(HAVE_DECL_KERN_MODPROBE) && HAVE_DECL_KERN_MODPROBE)
  XLAT(KERN_MODPROBE),
#endif
#if defined(KERN_SG_BIG_BUFF) || (defined(HAVE_DECL_KERN_SG_BIG_BUFF) && HAVE_DECL_KERN_SG_BIG_BUFF)
  XLAT(KERN_SG_BIG_BUFF),
#endif
#if defined(KERN_ACCT) || (defined(HAVE_DECL_KERN_ACCT) && HAVE_DECL_KERN_ACCT)
  XLAT(KERN_ACCT),
#endif
#if defined(KERN_PPC_L2CR) || (defined(HAVE_DECL_KERN_PPC_L2CR) && HAVE_DECL_KERN_PPC_L2CR)
  XLAT(KERN_PPC_L2CR),
#endif
#if defined(KERN_RTSIGNR) || (defined(HAVE_DECL_KERN_RTSIGNR) && HAVE_DECL_KERN_RTSIGNR)
  XLAT(KERN_RTSIGNR),
#endif
#if defined(KERN_RTSIGMAX) || (defined(HAVE_DECL_KERN_RTSIGMAX) && HAVE_DECL_KERN_RTSIGMAX)
  XLAT(KERN_RTSIGMAX),
#endif
#if defined(KERN_SHMMAX) || (defined(HAVE_DECL_KERN_SHMMAX) && HAVE_DECL_KERN_SHMMAX)
  XLAT(KERN_SHMMAX),
#endif
#if defined(KERN_MSGMAX) || (defined(HAVE_DECL_KERN_MSGMAX) && HAVE_DECL_KERN_MSGMAX)
  XLAT(KERN_MSGMAX),
#endif
#if defined(KERN_MSGMNB) || (defined(HAVE_DECL_KERN_MSGMNB) && HAVE_DECL_KERN_MSGMNB)
  XLAT(KERN_MSGMNB),
#endif
#if defined(KERN_MSGPOOL) || (defined(HAVE_DECL_KERN_MSGPOOL) && HAVE_DECL_KERN_MSGPOOL)
  XLAT(KERN_MSGPOOL),
#endif
#if defined(KERN_SYSRQ) || (defined(HAVE_DECL_KERN_SYSRQ) && HAVE_DECL_KERN_SYSRQ)
  XLAT(KERN_SYSRQ),
#endif
#if defined(KERN_MAX_THREADS) || (defined(HAVE_DECL_KERN_MAX_THREADS) && HAVE_DECL_KERN_MAX_THREADS)
  XLAT(KERN_MAX_THREADS),
#endif
#if defined(KERN_RANDOM) || (defined(HAVE_DECL_KERN_RANDOM) && HAVE_DECL_KERN_RANDOM)
  XLAT(KERN_RANDOM),
#endif
#if defined(KERN_SHMALL) || (defined(HAVE_DECL_KERN_SHMALL) && HAVE_DECL_KERN_SHMALL)
  XLAT(KERN_SHMALL),
#endif
#if defined(KERN_MSGMNI) || (defined(HAVE_DECL_KERN_MSGMNI) && HAVE_DECL_KERN_MSGMNI)
  XLAT(KERN_MSGMNI),
#endif
#if defined(KERN_SEM) || (defined(HAVE_DECL_KERN_SEM) && HAVE_DECL_KERN_SEM)
  XLAT(KERN_SEM),
#endif
#if defined(KERN_SPARC_STOP_A) || (defined(HAVE_DECL_KERN_SPARC_STOP_A) && HAVE_DECL_KERN_SPARC_STOP_A)
  XLAT(KERN_SPARC_STOP_A),
#endif
#if defined(KERN_SHMMNI) || (defined(HAVE_DECL_KERN_SHMMNI) && HAVE_DECL_KERN_SHMMNI)
  XLAT(KERN_SHMMNI),
#endif
#if defined(KERN_OVERFLOWUID) || (defined(HAVE_DECL_KERN_OVERFLOWUID) && HAVE_DECL_KERN_OVERFLOWUID)
  XLAT(KERN_OVERFLOWUID),
#endif
#if defined(KERN_OVERFLOWGID) || (defined(HAVE_DECL_KERN_OVERFLOWGID) && HAVE_DECL_KERN_OVERFLOWGID)
  XLAT(KERN_OVERFLOWGID),
#endif
#if defined(KERN_SHMPATH) || (defined(HAVE_DECL_KERN_SHMPATH) && HAVE_DECL_KERN_SHMPATH)
  XLAT(KERN_SHMPATH),
#endif
#if defined(KERN_HOTPLUG) || (defined(HAVE_DECL_KERN_HOTPLUG) && HAVE_DECL_KERN_HOTPLUG)
  XLAT(KERN_HOTPLUG),
#endif
#if defined(KERN_IEEE_EMULATION_WARNINGS) || (defined(HAVE_DECL_KERN_IEEE_EMULATION_WARNINGS) && HAVE_DECL_KERN_IEEE_EMULATION_WARNINGS)
  XLAT(KERN_IEEE_EMULATION_WARNINGS),
#endif
#if defined(KERN_S390_USER_DEBUG_LOGGING) || (defined(HAVE_DECL_KERN_S390_USER_DEBUG_LOGGING) && HAVE_DECL_KERN_S390_USER_DEBUG_LOGGING)
  XLAT(KERN_S390_USER_DEBUG_LOGGING),
#endif
#if defined(KERN_CORE_USES_PID) || (defined(HAVE_DECL_KERN_CORE_USES_PID) && HAVE_DECL_KERN_CORE_USES_PID)
  XLAT(KERN_CORE_USES_PID),
#endif
#if defined(KERN_TAINTED) || (defined(HAVE_DECL_KERN_TAINTED) && HAVE_DECL_KERN_TAINTED)
  XLAT(KERN_TAINTED),
#endif
#if defined(KERN_CADPID) || (defined(HAVE_DECL_KERN_CADPID) && HAVE_DECL_KERN_CADPID)
  XLAT(KERN_CADPID),
#endif
#if defined(KERN_PIDMAX) || (defined(HAVE_DECL_KERN_PIDMAX) && HAVE_DECL_KERN_PIDMAX)
  XLAT(KERN_PIDMAX),
#endif
#if defined(KERN_CORE_PATTERN) || (defined(HAVE_DECL_KERN_CORE_PATTERN) && HAVE_DECL_KERN_CORE_PATTERN)
  XLAT(KERN_CORE_PATTERN),
#endif
#if defined(KERN_PANIC_ON_OOPS) || (defined(HAVE_DECL_KERN_PANIC_ON_OOPS) && HAVE_DECL_KERN_PANIC_ON_OOPS)
  XLAT(KERN_PANIC_ON_OOPS),
#endif
#if defined(KERN_HPPA_PWRSW) || (defined(HAVE_DECL_KERN_HPPA_PWRSW) && HAVE_DECL_KERN_HPPA_PWRSW)
  XLAT(KERN_HPPA_PWRSW),
#endif
#if defined(KERN_HPPA_UNALIGNED) || (defined(HAVE_DECL_KERN_HPPA_UNALIGNED) && HAVE_DECL_KERN_HPPA_UNALIGNED)
  XLAT(KERN_HPPA_UNALIGNED),
#endif
#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 */
