]> Git Repo - J-linux.git/blob - arch/s390/include/asm/os_info.h
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.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 <[email protected]>
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 #define OS_INFO_RESERVED        3
21 #define OS_INFO_IDENTITY_BASE   4
22 #define OS_INFO_KASLR_OFFSET    5
23 #define OS_INFO_KASLR_OFF_PHYS  6
24 #define OS_INFO_VMEMMAP         7
25 #define OS_INFO_AMODE31_START   8
26 #define OS_INFO_AMODE31_END     9
27 #define OS_INFO_IMAGE_START     10
28 #define OS_INFO_IMAGE_END       11
29 #define OS_INFO_IMAGE_PHYS      12
30 #define OS_INFO_MAX             13
31
32 #define OS_INFO_FLAG_REIPL_CLEAR        (1UL << 0)
33
34 struct os_info_entry {
35         union {
36                 u64     addr;
37                 u64     val;
38         };
39         u64     size;
40         u32     csum;
41 } __packed;
42
43 struct os_info {
44         u64     magic;
45         u32     csum;
46         u16     version_major;
47         u16     version_minor;
48         u64     crashkernel_addr;
49         u64     crashkernel_size;
50         struct os_info_entry entry[OS_INFO_MAX];
51         u8      reserved[3804];
52 } __packed;
53
54 void os_info_init(void);
55 void os_info_entry_add_data(int nr, void *ptr, u64 len);
56 void os_info_entry_add_val(int nr, u64 val);
57 void os_info_crashkernel_add(unsigned long base, unsigned long size);
58 u32 os_info_csum(struct os_info *os_info);
59
60 #ifdef CONFIG_CRASH_DUMP
61 void *os_info_old_entry(int nr, unsigned long *size);
62 static inline unsigned long os_info_old_value(int nr)
63 {
64         unsigned long size;
65
66         return (unsigned long)os_info_old_entry(nr, &size);
67 }
68 #else
69 static inline void *os_info_old_entry(int nr, unsigned long *size)
70 {
71         return NULL;
72 }
73 #endif
74
75 #endif /* _ASM_S390_OS_INFO_H */
This page took 0.029111 seconds and 4 git commands to generate.