In case decompression fails, add a ".enc.z" to indicate the file has compressed data. This will help user space utilities to figure out the file contents. Signed-off-by: Aruna Balakrishnaiah <aruna@linux.vnet.ibm.com> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Tony Luck <tony.luck@intel.com>
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef __PSTORE_INTERNAL_H__
 | 
						|
#define __PSTORE_INTERNAL_H__
 | 
						|
 | 
						|
#include <linux/types.h>
 | 
						|
#include <linux/time.h>
 | 
						|
#include <linux/pstore.h>
 | 
						|
 | 
						|
#if NR_CPUS <= 2 && defined(CONFIG_ARM_THUMB)
 | 
						|
#define PSTORE_CPU_IN_IP 0x1
 | 
						|
#elif NR_CPUS <= 4 && defined(CONFIG_ARM)
 | 
						|
#define PSTORE_CPU_IN_IP 0x3
 | 
						|
#endif
 | 
						|
 | 
						|
struct pstore_ftrace_record {
 | 
						|
	unsigned long ip;
 | 
						|
	unsigned long parent_ip;
 | 
						|
#ifndef PSTORE_CPU_IN_IP
 | 
						|
	unsigned int cpu;
 | 
						|
#endif
 | 
						|
};
 | 
						|
 | 
						|
static inline void
 | 
						|
pstore_ftrace_encode_cpu(struct pstore_ftrace_record *rec, unsigned int cpu)
 | 
						|
{
 | 
						|
#ifndef PSTORE_CPU_IN_IP
 | 
						|
	rec->cpu = cpu;
 | 
						|
#else
 | 
						|
	rec->ip |= cpu;
 | 
						|
#endif
 | 
						|
}
 | 
						|
 | 
						|
static inline unsigned int
 | 
						|
pstore_ftrace_decode_cpu(struct pstore_ftrace_record *rec)
 | 
						|
{
 | 
						|
#ifndef PSTORE_CPU_IN_IP
 | 
						|
	return rec->cpu;
 | 
						|
#else
 | 
						|
	return rec->ip & PSTORE_CPU_IN_IP;
 | 
						|
#endif
 | 
						|
}
 | 
						|
 | 
						|
#ifdef CONFIG_PSTORE_FTRACE
 | 
						|
extern void pstore_register_ftrace(void);
 | 
						|
#else
 | 
						|
static inline void pstore_register_ftrace(void) {}
 | 
						|
#endif
 | 
						|
 | 
						|
extern struct pstore_info *psinfo;
 | 
						|
 | 
						|
extern void	pstore_set_kmsg_bytes(int);
 | 
						|
extern void	pstore_get_records(int);
 | 
						|
extern int	pstore_mkfile(enum pstore_type_id, char *psname, u64 id,
 | 
						|
			      int count, char *data, bool compressed,
 | 
						|
			      size_t size, struct timespec time,
 | 
						|
			      struct pstore_info *psi);
 | 
						|
extern int	pstore_is_mounted(void);
 | 
						|
 | 
						|
#endif
 |