]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
b34612bd ZJS |
2 | #pragma once |
3 | ||
4 | #include "macro.h" | |
5 | ||
6 | typedef enum CoredumpFilter { | |
7 | COREDUMP_FILTER_PRIVATE_ANONYMOUS = 0, | |
8 | COREDUMP_FILTER_SHARED_ANONYMOUS, | |
9 | COREDUMP_FILTER_PRIVATE_FILE_BACKED, | |
10 | COREDUMP_FILTER_SHARED_FILE_BACKED, | |
11 | COREDUMP_FILTER_ELF_HEADERS, | |
12 | COREDUMP_FILTER_PRIVATE_HUGE, | |
13 | COREDUMP_FILTER_SHARED_HUGE, | |
14 | COREDUMP_FILTER_PRIVATE_DAX, | |
15 | COREDUMP_FILTER_SHARED_DAX, | |
16 | _COREDUMP_FILTER_MAX, | |
2d93c20e | 17 | _COREDUMP_FILTER_INVALID = -EINVAL, |
b34612bd ZJS |
18 | } CoredumpFilter; |
19 | ||
20 | #define COREDUMP_FILTER_MASK_DEFAULT (1u << COREDUMP_FILTER_PRIVATE_ANONYMOUS | \ | |
21 | 1u << COREDUMP_FILTER_SHARED_ANONYMOUS | \ | |
22 | 1u << COREDUMP_FILTER_ELF_HEADERS | \ | |
23 | 1u << COREDUMP_FILTER_PRIVATE_HUGE) | |
24 | ||
7f3bb8f2 LB |
25 | /* The kernel doesn't like UINT64_MAX and returns ERANGE, use UINT32_MAX to support future new flags */ |
26 | #define COREDUMP_FILTER_MASK_ALL UINT32_MAX | |
27 | ||
b34612bd ZJS |
28 | const char* coredump_filter_to_string(CoredumpFilter i) _const_; |
29 | CoredumpFilter coredump_filter_from_string(const char *s) _pure_; | |
30 | int coredump_filter_mask_from_string(const char *s, uint64_t *ret); | |
ad21e542 | 31 | |
cb38fdbe ZJS |
32 | int parse_auxv(int log_level, |
33 | uint8_t elf_class, | |
34 | const void *auxv, | |
35 | size_t size_bytes, | |
36 | int *at_secure, | |
37 | uid_t *uid, | |
38 | uid_t *euid, | |
39 | gid_t *gid, | |
40 | gid_t *egid); | |
41 | ||
ad21e542 | 42 | int set_coredump_filter(uint64_t value); |
c8715007 | 43 | void disable_coredumps(void); |