os_info
__u64 os_info; /* 0x0e18 */
u32 os_info_csum(struct os_info *os_info);
OFFSET(__LC_OS_INFO, lowcore, os_info);
static struct os_info os_info __page_aligned_data;
u32 os_info_csum(struct os_info *os_info)
int size = sizeof(*os_info) - offsetof(struct os_info, version_major);
return (__force u32)cksm(&os_info->version_major, size, 0);
os_info.crashkernel_addr = (u64)(unsigned long)base;
os_info.crashkernel_size = (u64)(unsigned long)size;
os_info.csum = os_info_csum(&os_info);
os_info.entry[nr].addr = __pa(ptr);
os_info.entry[nr].size = size;
os_info.entry[nr].csum = (__force u32)cksm(ptr, size, 0);
os_info.csum = os_info_csum(&os_info);
os_info.entry[nr].val = value;
os_info.entry[nr].size = 0;
os_info.entry[nr].csum = 0;
os_info.csum = os_info_csum(&os_info);
BUILD_BUG_ON(sizeof(struct os_info) != PAGE_SIZE);
os_info.version_major = OS_INFO_VERSION_MAJOR;
os_info.version_minor = OS_INFO_VERSION_MINOR;
os_info.magic = OS_INFO_MAGIC;
os_info.csum = os_info_csum(&os_info);
abs_lc->os_info = __pa(&os_info);
static struct os_info *os_info_old;
os_info("winch_thread : failed to write synchronization byte, err = %d\n",
os_info("winch_thread : sigprocmask failed, errno = %d\n",
os_info("winch_thread : setsid failed, errno = %d\n",
os_info("winch_thread : TIOCSCTTY failed on "
os_info("winch_thread : tcsetpgrp failed on fd %d err = %d\n",
os_info("winch_thread : failed to read synchronization byte, err = %d\n",
os_info("winch_thread : write failed, err = %d\n",
extern void os_info(const char *fmt, ...)
os_info("Adding %ld bytes to physical memory to account for "
os_info("Physical memory size shrunk to %llu bytes\n",
os_info("Kernel virtual memory size shrunk to %lu bytes\n",
os_info("\n");
os_info("Checking environment variables for a tempdir...");
os_info("%s\n", dir);
os_info("none found\n");
os_info("Checking PROT_EXEC mmap in %s...", tempdir);
os_info("OK\n");
os_info("Couldn't allocate shadow memory: %s\n.",
os_info("Couldn't set MAD_DONTDUMP on shadow memory: %s\n.",
os_info("Couldn't set MADV_DONTFORK on shadow memory: %s\n.",
os_info("Checking if %s is on tmpfs...", dir);
os_info("%s\n", strerror(errno));
os_info("no\n");
os_info("OK\n");
os_info("Checking syscall emulation for ptrace...");
os_info("OK\n");
os_info("Checking that ptrace can change system call numbers...");
os_info("OK\n");
os_info("Checking that seccomp filters can be installed...");
os_info("failed to fetch registers: %d\n", r);
os_info("OK\n");
os_info("missing\n");
os_info("error\n");
os_info("Core dump limits :\n\tsoft - ");
os_info("NONE\n");
os_info("%llu\n", (unsigned long long)lim.rlim_cur);
os_info("\thard - ");
os_info("NONE\n");
os_info("%llu\n", (unsigned long long)lim.rlim_max);
os_info("Failed to get host CPU features\n");
vf2pf_info->os_info.all = 0;
unsigned int os_info;
uint32_t os_info;
union amd_sriov_msg_os_info os_info;
struct os_info *os_info;
os_info = (void *)__get_free_page(GFP_KERNEL);
if (!os_info)
rc = memcpy_hsa_kernel(os_info, os_info_addr, PAGE_SIZE);
rc = memcpy_real(os_info, os_info_addr, PAGE_SIZE);
if (rc || os_info_csum(os_info) != os_info->csum)
entry = &os_info->entry[OS_INFO_FLAGS_ENTRY];
free_page((unsigned long)os_info);