• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #define OS_INFO_INIT_FN		2
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[3];
32 	u8	reserved[4004];
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_from_oldmem(void *dest, void *src, size_t count);
43 #else
os_info_old_entry(int nr,unsigned long * size)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 */
51