diff options
Diffstat (limited to 'arch/s390/include/asm/os_info.h')
| -rw-r--r-- | arch/s390/include/asm/os_info.h | 50 | 
1 files changed, 50 insertions, 0 deletions
| diff --git a/arch/s390/include/asm/os_info.h b/arch/s390/include/asm/os_info.h new file mode 100644 index 000000000000..d07518af09ea --- /dev/null +++ b/arch/s390/include/asm/os_info.h @@ -0,0 +1,50 @@ +/* + * 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 +#define OS_INFO_INIT_FN		2 + +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; +	struct os_info_entry entry[3]; +	u8	reserved[4004]; +} __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 */ | 
