s390/topology: fix topology information when calling cpu hotplug notifiers
[linux-2.6-microblaze.git] / arch / s390 / include / asm / os_info.h
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
18 struct os_info_entry {
19         u64     addr;
20         u64     size;
21         u32     csum;
22 } __packed;
23
24 struct 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
35 void os_info_init(void);
36 void os_info_entry_add(int nr, void *ptr, u64 len);
37 void os_info_crashkernel_add(unsigned long base, unsigned long size);
38 u32 os_info_csum(struct os_info *os_info);
39
40 #ifdef CONFIG_CRASH_DUMP
41 void *os_info_old_entry(int nr, unsigned long *size);
42 int copy_oldmem_kernel(void *dst, void *src, size_t count);
43 #else
44 static 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 */