Contributors: 23
	  
        
          | Author | 
          Tokens | 
          Token Proportion | 
          Commits | 
          Commit Proportion | 
        
	  
	  
        
        
          | Jann Horn | 
          36 | 
          13.28% | 
          3 | 
          6.25% | 
        
        
          | Linus Torvalds (pre-git) | 
          35 | 
          12.92% | 
          11 | 
          22.92% | 
        
        
          | Roman Kisel | 
          34 | 
          12.55% | 
          1 | 
          2.08% | 
        
        
          | Al Viro | 
          30 | 
          11.07% | 
          5 | 
          10.42% | 
        
        
          | Eric W. Biedermann | 
          22 | 
          8.12% | 
          6 | 
          12.50% | 
        
        
          | Alex Kelly | 
          21 | 
          7.75% | 
          2 | 
          4.17% | 
        
        
          | Daisuke Hatayama | 
          19 | 
          7.01% | 
          1 | 
          2.08% | 
        
        
          | Masami Hiramatsu | 
          17 | 
          6.27% | 
          2 | 
          4.17% | 
        
        
          | nixiaoming | 
          11 | 
          4.06% | 
          1 | 
          2.08% | 
        
        
          | David Howells | 
          6 | 
          2.21% | 
          2 | 
          4.17% | 
        
        
          | Denys Vlasenko | 
          6 | 
          2.21% | 
          1 | 
          2.08% | 
        
        
          | Linus Torvalds | 
          5 | 
          1.85% | 
          2 | 
          4.17% | 
        
        
          | Allen Pais | 
          5 | 
          1.85% | 
          1 | 
          2.08% | 
        
        
          | Luis R. Rodriguez | 
          4 | 
          1.48% | 
          1 | 
          2.08% | 
        
        
          | Adrian Bunk | 
          4 | 
          1.48% | 
          1 | 
          2.08% | 
        
        
          | Oleksandr Natalenko | 
          3 | 
          1.11% | 
          1 | 
          2.08% | 
        
        
          | Richard Weinberger | 
          3 | 
          1.11% | 
          1 | 
          2.08% | 
        
        
          | Mateusz Guzik | 
          3 | 
          1.11% | 
          1 | 
          2.08% | 
        
        
          | Arnd Bergmann | 
          2 | 
          0.74% | 
          1 | 
          2.08% | 
        
        
          | Andrew Morton | 
          2 | 
          0.74% | 
          1 | 
          2.08% | 
        
        
          | Kees Cook | 
          1 | 
          0.37% | 
          1 | 
          2.08% | 
        
        
          | Greg Kroah-Hartman | 
          1 | 
          0.37% | 
          1 | 
          2.08% | 
        
        
          | Oleg Nesterov | 
          1 | 
          0.37% | 
          1 | 
          2.08% | 
        
	  
	  
        
          | Total | 
          271 | 
           | 
          48 | 
           | 
	    
	  
    
 
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_COREDUMP_H
#define _LINUX_COREDUMP_H
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/fs.h>
#include <asm/siginfo.h>
#ifdef CONFIG_COREDUMP
struct core_vma_metadata {
	unsigned long start, end;
	unsigned long flags;
	unsigned long dump_size;
	unsigned long pgoff;
	struct file   *file;
};
struct coredump_params {
	const kernel_siginfo_t *siginfo;
	struct file *file;
	unsigned long limit;
	unsigned long mm_flags;
	int cpu;
	loff_t written;
	loff_t pos;
	loff_t to_skip;
	int vma_count;
	size_t vma_data_size;
	struct core_vma_metadata *vma_meta;
};
extern unsigned int core_file_note_size_limit;
/*
 * These are the only things you should do on a core-file: use only these
 * functions to write out all the necessary info.
 */
extern void dump_skip_to(struct coredump_params *cprm, unsigned long to);
extern void dump_skip(struct coredump_params *cprm, size_t nr);
extern int dump_emit(struct coredump_params *cprm, const void *addr, int nr);
extern int dump_align(struct coredump_params *cprm, int align);
int dump_user_range(struct coredump_params *cprm, unsigned long start,
		    unsigned long len);
extern void do_coredump(const kernel_siginfo_t *siginfo);
/*
 * Logging for the coredump code, ratelimited.
 * The TGID and comm fields are added to the message.
 */
#define __COREDUMP_PRINTK(Level, Format, ...) \
	do {	\
		char comm[TASK_COMM_LEN];	\
	\
		get_task_comm(comm, current);	\
		printk_ratelimited(Level "coredump: %d(%*pE): " Format "\n",	\
			task_tgid_vnr(current), (int)strlen(comm), comm, ##__VA_ARGS__);	\
	} while (0)	\
#define coredump_report(fmt, ...) __COREDUMP_PRINTK(KERN_INFO, fmt, ##__VA_ARGS__)
#define coredump_report_failure(fmt, ...) __COREDUMP_PRINTK(KERN_WARNING, fmt, ##__VA_ARGS__)
#else
static inline void do_coredump(const kernel_siginfo_t *siginfo) {}
#define coredump_report(...)
#define coredump_report_failure(...)
#endif
#if defined(CONFIG_COREDUMP) && defined(CONFIG_SYSCTL)
extern void validate_coredump_safety(void);
#else
static inline void validate_coredump_safety(void) {}
#endif
#endif /* _LINUX_COREDUMP_H */