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