Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v4.12-rc2 74 lines 2.5 kB view raw
1#ifndef _LINUX_SCHED_COREDUMP_H 2#define _LINUX_SCHED_COREDUMP_H 3 4#include <linux/mm_types.h> 5 6#define SUID_DUMP_DISABLE 0 /* No setuid dumping */ 7#define SUID_DUMP_USER 1 /* Dump as user of process */ 8#define SUID_DUMP_ROOT 2 /* Dump as root */ 9 10/* mm flags */ 11 12/* for SUID_DUMP_* above */ 13#define MMF_DUMPABLE_BITS 2 14#define MMF_DUMPABLE_MASK ((1 << MMF_DUMPABLE_BITS) - 1) 15 16extern void set_dumpable(struct mm_struct *mm, int value); 17/* 18 * This returns the actual value of the suid_dumpable flag. For things 19 * that are using this for checking for privilege transitions, it must 20 * test against SUID_DUMP_USER rather than treating it as a boolean 21 * value. 22 */ 23static inline int __get_dumpable(unsigned long mm_flags) 24{ 25 return mm_flags & MMF_DUMPABLE_MASK; 26} 27 28static inline int get_dumpable(struct mm_struct *mm) 29{ 30 return __get_dumpable(mm->flags); 31} 32 33/* coredump filter bits */ 34#define MMF_DUMP_ANON_PRIVATE 2 35#define MMF_DUMP_ANON_SHARED 3 36#define MMF_DUMP_MAPPED_PRIVATE 4 37#define MMF_DUMP_MAPPED_SHARED 5 38#define MMF_DUMP_ELF_HEADERS 6 39#define MMF_DUMP_HUGETLB_PRIVATE 7 40#define MMF_DUMP_HUGETLB_SHARED 8 41#define MMF_DUMP_DAX_PRIVATE 9 42#define MMF_DUMP_DAX_SHARED 10 43 44#define MMF_DUMP_FILTER_SHIFT MMF_DUMPABLE_BITS 45#define MMF_DUMP_FILTER_BITS 9 46#define MMF_DUMP_FILTER_MASK \ 47 (((1 << MMF_DUMP_FILTER_BITS) - 1) << MMF_DUMP_FILTER_SHIFT) 48#define MMF_DUMP_FILTER_DEFAULT \ 49 ((1 << MMF_DUMP_ANON_PRIVATE) | (1 << MMF_DUMP_ANON_SHARED) |\ 50 (1 << MMF_DUMP_HUGETLB_PRIVATE) | MMF_DUMP_MASK_DEFAULT_ELF) 51 52#ifdef CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS 53# define MMF_DUMP_MASK_DEFAULT_ELF (1 << MMF_DUMP_ELF_HEADERS) 54#else 55# define MMF_DUMP_MASK_DEFAULT_ELF 0 56#endif 57 /* leave room for more dump flags */ 58#define MMF_VM_MERGEABLE 16 /* KSM may merge identical pages */ 59#define MMF_VM_HUGEPAGE 17 /* set when VM_HUGEPAGE is set on vma */ 60/* 61 * This one-shot flag is dropped due to necessity of changing exe once again 62 * on NFS restore 63 */ 64//#define MMF_EXE_FILE_CHANGED 18 /* see prctl_set_mm_exe_file() */ 65 66#define MMF_HAS_UPROBES 19 /* has uprobes */ 67#define MMF_RECALC_UPROBES 20 /* MMF_HAS_UPROBES can be wrong */ 68#define MMF_OOM_SKIP 21 /* mm is of no interest for the OOM killer */ 69#define MMF_UNSTABLE 22 /* mm is unstable for copy_from_user */ 70#define MMF_HUGE_ZERO_PAGE 23 /* mm has ever used the global huge zero page */ 71 72#define MMF_INIT_MASK (MMF_DUMPABLE_MASK | MMF_DUMP_FILTER_MASK) 73 74#endif /* _LINUX_SCHED_COREDUMP_H */