]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd/sd-bus/bus-creds.h
089442e88571119fab102a6ada651b147d690ebe
[thirdparty/systemd.git] / src / libsystemd / sd-bus / bus-creds.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #pragma once
3
4 #include "forward.h"
5
6 typedef struct sd_bus_creds {
7 bool allocated;
8 unsigned n_ref;
9
10 uint64_t mask;
11 uint64_t augmented;
12
13 uid_t uid;
14 uid_t euid;
15 uid_t suid;
16 uid_t fsuid;
17 gid_t gid;
18 gid_t egid;
19 gid_t sgid;
20 gid_t fsgid;
21
22 gid_t *supplementary_gids;
23 unsigned n_supplementary_gids;
24
25 pid_t ppid;
26 pid_t pid;
27 pid_t tid;
28 int pidfd;
29
30 char *comm;
31 char *tid_comm;
32 char *exe;
33
34 char *cmdline;
35 size_t cmdline_size;
36 char **cmdline_array;
37
38 char *cgroup;
39 char *session;
40 char *unit;
41 char *user_unit;
42 char *slice;
43 char *user_slice;
44
45 char *tty;
46
47 uint32_t *capability;
48
49 uint32_t audit_session_id;
50 uid_t audit_login_uid;
51
52 char *label;
53
54 char *unique_name;
55
56 char **well_known_names;
57 bool well_known_names_driver:1;
58 bool well_known_names_local:1;
59
60 char *cgroup_root;
61
62 char *description, *unescaped_description;
63 } sd_bus_creds;
64
65 #define SD_BUS_CREDS_INIT_FIELDS \
66 .uid = UID_INVALID, \
67 .euid = UID_INVALID, \
68 .suid = UID_INVALID, \
69 .fsuid = UID_INVALID, \
70 .gid = GID_INVALID, \
71 .egid = GID_INVALID, \
72 .sgid = GID_INVALID, \
73 .fsgid = GID_INVALID, \
74 .pidfd = -EBADF, \
75 .audit_login_uid = UID_INVALID
76
77 sd_bus_creds* bus_creds_new(void);
78
79 void bus_creds_done(sd_bus_creds *c);
80
81 int bus_creds_add_more(sd_bus_creds *c, uint64_t mask, PidRef *pidref, pid_t tid);