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 16 extern 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 */ 23 static inline int __get_dumpable(unsigned long mm_flags) 24 { 25 return mm_flags & MMF_DUMPABLE_MASK; 26 } 27 28 static 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 */ 75