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#define OS_INFO_VERSION_MAJOR 1 12#define OS_INFO_VERSION_MINOR 1 13#define OS_INFO_MAGIC 0x4f53494e464f535aULL /* OSINFOSZ */ 14 15#define OS_INFO_VMCOREINFO 0 16#define OS_INFO_REIPL_BLOCK 1 17 18struct os_info_entry { 19 u64 addr; 20 u64 size; 21 u32 csum; 22} __packed; 23 24struct os_info { 25 u64 magic; 26 u32 csum; 27 u16 version_major; 28 u16 version_minor; 29 u64 crashkernel_addr; 30 u64 crashkernel_size; 31 struct os_info_entry entry[2]; 32 u8 reserved[4024]; 33} __packed; 34 35void os_info_init(void); 36void os_info_entry_add(int nr, void *ptr, u64 len); 37void os_info_crashkernel_add(unsigned long base, unsigned long size); 38u32 os_info_csum(struct os_info *os_info); 39 40#ifdef CONFIG_CRASH_DUMP 41void *os_info_old_entry(int nr, unsigned long *size); 42int copy_oldmem_kernel(void *dst, void *src, size_t count); 43#else 44static inline void *os_info_old_entry(int nr, unsigned long *size) 45{ 46 return NULL; 47} 48#endif 49 50#endif /* _ASM_S390_OS_INFO_H */ 51