^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * linux/init/version.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Copyright (C) 1992 Theodore Ts'o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * May be freely distributed as part of Linux.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <generated/compile.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <linux/build-salt.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <linux/export.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <linux/uts.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <linux/utsname.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #include <generated/utsrelease.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #include <linux/version.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #include <linux/proc_ns.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #ifndef CONFIG_KALLSYMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define version(a) Version_ ## a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #define version_string(a) version(a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) extern int version_string(LINUX_VERSION_CODE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) int version_string(LINUX_VERSION_CODE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) struct uts_namespace init_uts_ns = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) .kref = KREF_INIT(2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) .name = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) .sysname = UTS_SYSNAME,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) .nodename = UTS_NODENAME,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) .release = UTS_RELEASE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) .version = UTS_VERSION,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) .machine = UTS_MACHINE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) .domainname = UTS_DOMAINNAME,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) .user_ns = &init_user_ns,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) .ns.inum = PROC_UTS_INIT_INO,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #ifdef CONFIG_UTS_NS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) .ns.ops = &utsns_operations,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) EXPORT_SYMBOL_GPL(init_uts_ns);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) /* FIXED STRINGS! Don't touch! */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) const char linux_banner[] =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) const char linux_proc_banner[] =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) "%s version %s"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) " (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) " (" LINUX_COMPILER ") %s\n";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) BUILD_SALT;