1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * OS info memory interface 4 * 5 * Copyright IBM Corp. 2012 6 * Author(s): Michael Holzheu <holzheu@linux.vnet.ibm.com> 7 */ 8#ifndef _ASM_S390_OS_INFO_H 9#define _ASM_S390_OS_INFO_H 10 11#include <linux/uio.h> 12 13#define OS_INFO_VERSION_MAJOR 1 14#define OS_INFO_VERSION_MINOR 1 15#define OS_INFO_MAGIC 0x4f53494e464f535aULL /* OSINFOSZ */ 16 17#define OS_INFO_VMCOREINFO 0 18#define OS_INFO_REIPL_BLOCK 1 19#define OS_INFO_FLAGS_ENTRY 2 20 21#define OS_INFO_FLAG_REIPL_CLEAR (1UL << 0) 22 23struct os_info_entry { 24 u64 addr; 25 u64 size; 26 u32 csum; 27} __packed; 28 29struct os_info { 30 u64 magic; 31 u32 csum; 32 u16 version_major; 33 u16 version_minor; 34 u64 crashkernel_addr; 35 u64 crashkernel_size; 36 struct os_info_entry entry[3]; 37 u8 reserved[4004]; 38} __packed; 39 40void os_info_init(void); 41void os_info_entry_add(int nr, void *ptr, u64 len); 42void os_info_crashkernel_add(unsigned long base, unsigned long size); 43u32 os_info_csum(struct os_info *os_info); 44 45#ifdef CONFIG_CRASH_DUMP 46void *os_info_old_entry(int nr, unsigned long *size); 47#else 48static inline void *os_info_old_entry(int nr, unsigned long *size) 49{ 50 return NULL; 51} 52#endif 53 54#endif /* _ASM_S390_OS_INFO_H */ 55