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