Coverage Report

Created: 2026-01-22 06:47

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/systemd/src/shared/unit-file.h
Line
Count
Source
1
/* SPDX-License-Identifier: LGPL-2.1-or-later */
2
#pragma once
3
4
#include "shared-forward.h"
5
#include "unit-def.h"
6
7
typedef enum UnitFileState {
8
        UNIT_FILE_ENABLED,
9
        UNIT_FILE_ENABLED_RUNTIME,
10
        UNIT_FILE_LINKED,
11
        UNIT_FILE_LINKED_RUNTIME,
12
        UNIT_FILE_ALIAS,
13
        UNIT_FILE_MASKED,
14
        UNIT_FILE_MASKED_RUNTIME,
15
        UNIT_FILE_STATIC,
16
        UNIT_FILE_DISABLED,
17
        UNIT_FILE_INDIRECT,
18
        UNIT_FILE_GENERATED,
19
        UNIT_FILE_TRANSIENT,
20
        UNIT_FILE_BAD,
21
        _UNIT_FILE_STATE_MAX,
22
        _UNIT_FILE_STATE_INVALID = -EINVAL,
23
} UnitFileState;
24
25
0
static inline bool unit_type_may_alias(UnitType type) {
26
0
        return IN_SET(type,
27
0
                      UNIT_SERVICE,
28
0
                      UNIT_SOCKET,
29
0
                      UNIT_TARGET,
30
0
                      UNIT_DEVICE,
31
0
                      UNIT_TIMER,
32
0
                      UNIT_PATH);
33
0
}
Unexecuted instantiation: fuzz-manager-serialize.c:unit_type_may_alias
Unexecuted instantiation: fuzz-unit-file.c:unit_type_may_alias
Unexecuted instantiation: systemctl-util.c:unit_type_may_alias
Unexecuted instantiation: systemctl.c:unit_type_may_alias
Unexecuted instantiation: bus-unit-util.c:unit_type_may_alias
Unexecuted instantiation: install-printf.c:unit_type_may_alias
Unexecuted instantiation: install.c:unit_type_may_alias
Unexecuted instantiation: unit-file.c:unit_type_may_alias
Unexecuted instantiation: load-fragment-gperf.c:unit_type_may_alias
Unexecuted instantiation: automount.c:unit_type_may_alias
Unexecuted instantiation: bpf-firewall.c:unit_type_may_alias
Unexecuted instantiation: bpf-foreign.c:unit_type_may_alias
Unexecuted instantiation: bpf-restrict-fs.c:unit_type_may_alias
Unexecuted instantiation: bpf-restrict-ifaces.c:unit_type_may_alias
Unexecuted instantiation: bpf-socket-bind.c:unit_type_may_alias
Unexecuted instantiation: bpf-bind-iface.c:unit_type_may_alias
Unexecuted instantiation: cgroup.c:unit_type_may_alias
Unexecuted instantiation: dbus-automount.c:unit_type_may_alias
Unexecuted instantiation: dbus-cgroup.c:unit_type_may_alias
Unexecuted instantiation: dbus-device.c:unit_type_may_alias
Unexecuted instantiation: dbus-execute.c:unit_type_may_alias
Unexecuted instantiation: dbus-job.c:unit_type_may_alias
Unexecuted instantiation: dbus-kill.c:unit_type_may_alias
Unexecuted instantiation: dbus-manager.c:unit_type_may_alias
Unexecuted instantiation: dbus-mount.c:unit_type_may_alias
Unexecuted instantiation: dbus-path.c:unit_type_may_alias
Unexecuted instantiation: dbus-scope.c:unit_type_may_alias
Unexecuted instantiation: dbus-service.c:unit_type_may_alias
Unexecuted instantiation: dbus-slice.c:unit_type_may_alias
Unexecuted instantiation: dbus-socket.c:unit_type_may_alias
Unexecuted instantiation: dbus-swap.c:unit_type_may_alias
Unexecuted instantiation: dbus-timer.c:unit_type_may_alias
Unexecuted instantiation: dbus-unit.c:unit_type_may_alias
Unexecuted instantiation: dbus-util.c:unit_type_may_alias
Unexecuted instantiation: dbus.c:unit_type_may_alias
Unexecuted instantiation: device.c:unit_type_may_alias
Unexecuted instantiation: dynamic-user.c:unit_type_may_alias
Unexecuted instantiation: emergency-action.c:unit_type_may_alias
Unexecuted instantiation: execute.c:unit_type_may_alias
Unexecuted instantiation: job.c:unit_type_may_alias
Unexecuted instantiation: load-dropin.c:unit_type_may_alias
Unexecuted instantiation: load-fragment.c:unit_type_may_alias
Unexecuted instantiation: manager-dump.c:unit_type_may_alias
Unexecuted instantiation: manager-serialize.c:unit_type_may_alias
Unexecuted instantiation: manager.c:unit_type_may_alias
Unexecuted instantiation: mount.c:unit_type_may_alias
Unexecuted instantiation: path.c:unit_type_may_alias
Unexecuted instantiation: scope.c:unit_type_may_alias
Unexecuted instantiation: service.c:unit_type_may_alias
Unexecuted instantiation: slice.c:unit_type_may_alias
Unexecuted instantiation: socket.c:unit_type_may_alias
Unexecuted instantiation: swap.c:unit_type_may_alias
Unexecuted instantiation: target.c:unit_type_may_alias
Unexecuted instantiation: timer.c:unit_type_may_alias
Unexecuted instantiation: transaction.c:unit_type_may_alias
Unexecuted instantiation: unit-printf.c:unit_type_may_alias
Unexecuted instantiation: unit-serialize.c:unit_type_may_alias
Unexecuted instantiation: unit.c:unit_type_may_alias
Unexecuted instantiation: varlink.c:unit_type_may_alias
Unexecuted instantiation: varlink-cgroup.c:unit_type_may_alias
Unexecuted instantiation: varlink-dynamic-user.c:unit_type_may_alias
Unexecuted instantiation: varlink-execute.c:unit_type_may_alias
Unexecuted instantiation: varlink-manager.c:unit_type_may_alias
Unexecuted instantiation: varlink-unit.c:unit_type_may_alias
34
35
3.88k
static inline bool unit_type_may_template(UnitType type) {
36
3.88k
        return IN_SET(type,
37
3.88k
                      UNIT_SERVICE,
38
3.88k
                      UNIT_SOCKET,
39
3.88k
                      UNIT_TARGET,
40
3.88k
                      UNIT_TIMER,
41
3.88k
                      UNIT_PATH);
42
3.88k
}
Unexecuted instantiation: fuzz-manager-serialize.c:unit_type_may_template
Unexecuted instantiation: fuzz-unit-file.c:unit_type_may_template
Unexecuted instantiation: systemctl-util.c:unit_type_may_template
Unexecuted instantiation: systemctl.c:unit_type_may_template
Unexecuted instantiation: bus-unit-util.c:unit_type_may_template
Unexecuted instantiation: install-printf.c:unit_type_may_template
Unexecuted instantiation: install.c:unit_type_may_template
Unexecuted instantiation: unit-file.c:unit_type_may_template
Unexecuted instantiation: load-fragment-gperf.c:unit_type_may_template
Unexecuted instantiation: automount.c:unit_type_may_template
Unexecuted instantiation: bpf-firewall.c:unit_type_may_template
Unexecuted instantiation: bpf-foreign.c:unit_type_may_template
Unexecuted instantiation: bpf-restrict-fs.c:unit_type_may_template
Unexecuted instantiation: bpf-restrict-ifaces.c:unit_type_may_template
Unexecuted instantiation: bpf-socket-bind.c:unit_type_may_template
Unexecuted instantiation: bpf-bind-iface.c:unit_type_may_template
Unexecuted instantiation: cgroup.c:unit_type_may_template
Unexecuted instantiation: dbus-automount.c:unit_type_may_template
Unexecuted instantiation: dbus-cgroup.c:unit_type_may_template
Unexecuted instantiation: dbus-device.c:unit_type_may_template
Unexecuted instantiation: dbus-execute.c:unit_type_may_template
Unexecuted instantiation: dbus-job.c:unit_type_may_template
Unexecuted instantiation: dbus-kill.c:unit_type_may_template
Unexecuted instantiation: dbus-manager.c:unit_type_may_template
Unexecuted instantiation: dbus-mount.c:unit_type_may_template
Unexecuted instantiation: dbus-path.c:unit_type_may_template
Unexecuted instantiation: dbus-scope.c:unit_type_may_template
Unexecuted instantiation: dbus-service.c:unit_type_may_template
Unexecuted instantiation: dbus-slice.c:unit_type_may_template
Unexecuted instantiation: dbus-socket.c:unit_type_may_template
Unexecuted instantiation: dbus-swap.c:unit_type_may_template
Unexecuted instantiation: dbus-timer.c:unit_type_may_template
Unexecuted instantiation: dbus-unit.c:unit_type_may_template
Unexecuted instantiation: dbus-util.c:unit_type_may_template
Unexecuted instantiation: dbus.c:unit_type_may_template
Unexecuted instantiation: device.c:unit_type_may_template
Unexecuted instantiation: dynamic-user.c:unit_type_may_template
Unexecuted instantiation: emergency-action.c:unit_type_may_template
Unexecuted instantiation: execute.c:unit_type_may_template
Unexecuted instantiation: job.c:unit_type_may_template
Unexecuted instantiation: load-dropin.c:unit_type_may_template
Unexecuted instantiation: load-fragment.c:unit_type_may_template
Unexecuted instantiation: manager-dump.c:unit_type_may_template
Unexecuted instantiation: manager-serialize.c:unit_type_may_template
Unexecuted instantiation: manager.c:unit_type_may_template
Unexecuted instantiation: mount.c:unit_type_may_template
Unexecuted instantiation: path.c:unit_type_may_template
Unexecuted instantiation: scope.c:unit_type_may_template
Unexecuted instantiation: service.c:unit_type_may_template
Unexecuted instantiation: slice.c:unit_type_may_template
Unexecuted instantiation: socket.c:unit_type_may_template
Unexecuted instantiation: swap.c:unit_type_may_template
Unexecuted instantiation: target.c:unit_type_may_template
Unexecuted instantiation: timer.c:unit_type_may_template
Unexecuted instantiation: transaction.c:unit_type_may_template
Unexecuted instantiation: unit-printf.c:unit_type_may_template
Unexecuted instantiation: unit-serialize.c:unit_type_may_template
unit.c:unit_type_may_template
Line
Count
Source
35
3.88k
static inline bool unit_type_may_template(UnitType type) {
36
3.88k
        return IN_SET(type,
37
3.88k
                      UNIT_SERVICE,
38
3.88k
                      UNIT_SOCKET,
39
3.88k
                      UNIT_TARGET,
40
3.88k
                      UNIT_TIMER,
41
3.88k
                      UNIT_PATH);
42
3.88k
}
Unexecuted instantiation: varlink.c:unit_type_may_template
Unexecuted instantiation: varlink-cgroup.c:unit_type_may_template
Unexecuted instantiation: varlink-dynamic-user.c:unit_type_may_template
Unexecuted instantiation: varlink-execute.c:unit_type_may_template
Unexecuted instantiation: varlink-manager.c:unit_type_may_template
Unexecuted instantiation: varlink-unit.c:unit_type_may_template
43
44
int unit_symlink_name_compatible(const char *symlink, const char *target, bool instance_propagation);
45
int unit_validate_alias_symlink_or_warn(int log_level, const char *filename, const char *target);
46
47
bool lookup_paths_timestamp_hash_same(const LookupPaths *lp, uint64_t timestamp_hash, uint64_t *ret_new);
48
49
int unit_file_resolve_symlink(
50
                const char *root_dir,
51
                char **search_path,
52
                const char *dir,
53
                int dirfd,
54
                const char *filename,
55
                bool resolve_destination_target,
56
                char **ret_destination);
57
58
int unit_file_build_name_map(
59
                const LookupPaths *lp,
60
                uint64_t *cache_timestamp_hash,
61
                Hashmap **unit_ids_map,
62
                Hashmap **unit_names_map,
63
                Set **path_cache);
64
65
int unit_file_remove_from_name_map(
66
                const LookupPaths *lp,
67
                uint64_t *cache_timestamp_hash,
68
                Hashmap **unit_ids_map,
69
                Hashmap **unit_names_map,
70
                Set **path_cache,
71
                const char *path);
72
73
int unit_file_find_fragment(
74
                Hashmap *unit_ids_map,
75
                Hashmap *unit_name_map,
76
                const char *unit_name,
77
                const char **ret_fragment_path,
78
                Set **ret_names);
79
80
const char* runlevel_to_target(const char *word);