| 
									
										
										
										
											2012-03-11 11:59:34 -04:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * OS info memory interface | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright IBM Corp. 2012 | 
					
						
							|  |  |  |  * Author(s): Michael Holzheu <holzheu@linux.vnet.ibm.com> | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef _ASM_S390_OS_INFO_H
 | 
					
						
							|  |  |  | #define _ASM_S390_OS_INFO_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define OS_INFO_VERSION_MAJOR	1
 | 
					
						
							|  |  |  | #define OS_INFO_VERSION_MINOR	1
 | 
					
						
							|  |  |  | #define OS_INFO_MAGIC		0x4f53494e464f535aULL /* OSINFOSZ */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define OS_INFO_VMCOREINFO	0
 | 
					
						
							|  |  |  | #define OS_INFO_REIPL_BLOCK	1
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct os_info_entry { | 
					
						
							|  |  |  | 	u64	addr; | 
					
						
							|  |  |  | 	u64	size; | 
					
						
							|  |  |  | 	u32	csum; | 
					
						
							|  |  |  | } __packed; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct os_info { | 
					
						
							|  |  |  | 	u64	magic; | 
					
						
							|  |  |  | 	u32	csum; | 
					
						
							|  |  |  | 	u16	version_major; | 
					
						
							|  |  |  | 	u16	version_minor; | 
					
						
							|  |  |  | 	u64	crashkernel_addr; | 
					
						
							|  |  |  | 	u64	crashkernel_size; | 
					
						
							| 
									
										
										
										
											2012-05-18 14:29:19 +02:00
										 |  |  | 	struct os_info_entry entry[2]; | 
					
						
							|  |  |  | 	u8	reserved[4024]; | 
					
						
							| 
									
										
										
										
											2012-03-11 11:59:34 -04:00
										 |  |  | } __packed; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void os_info_init(void); | 
					
						
							|  |  |  | void os_info_entry_add(int nr, void *ptr, u64 len); | 
					
						
							|  |  |  | void os_info_crashkernel_add(unsigned long base, unsigned long size); | 
					
						
							|  |  |  | u32 os_info_csum(struct os_info *os_info); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_CRASH_DUMP
 | 
					
						
							|  |  |  | void *os_info_old_entry(int nr, unsigned long *size); | 
					
						
							|  |  |  | int copy_from_oldmem(void *dest, void *src, size_t count); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | static inline void *os_info_old_entry(int nr, unsigned long *size) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return NULL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* _ASM_S390_OS_INFO_H */
 |