]> git.ipfire.org Git - thirdparty/systemd.git/commit
core: Remove circular dependencies between headers
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 18 Apr 2025 18:53:51 +0000 (20:53 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Wed, 23 Apr 2025 08:33:35 +0000 (10:33 +0200)
commit4ea4abb6518638087ed8beb0e1a2486d97b4fd18
treec9dfd6cb01bf42c60e6ac1388720d87725c42dba
parent64fd6ba9ca462da5b5cb5f913007fd00b7dd87f4
core: Remove circular dependencies between headers

Currently there are various circular dependencies between headers
in core/. Let's get rid of these by making judicious use of forward
declarations and moving includes into implementation files instead of
having them in header files.

Getting rid of circular header includes simplifies the code and makes
various clang based tooling such as iwyu work much better on our code.

The most important change is getting rid of the manager.h include in
unit.h which is possible thanks to the previous commits. We also move
the OOMPolicy and StatusType enums to unit.h to remove the need for
other unit headers to include manager.h to get access to these enums.
66 files changed:
src/core/all-units.h
src/core/automount.c
src/core/automount.h
src/core/bpf-firewall.c
src/core/bpf-restrict-ifaces.c
src/core/bpf-restrict-ifaces.h
src/core/bpf-socket-bind.c
src/core/bpf-socket-bind.h
src/core/cgroup.c
src/core/core-varlink.c
src/core/core-varlink.h
src/core/dbus-cgroup.c
src/core/dbus-execute.h
src/core/dbus-job.h
src/core/dbus-manager.c
src/core/dbus-manager.h
src/core/dbus-scope.h
src/core/dbus-util.c
src/core/dbus.h
src/core/device.c
src/core/device.h
src/core/dynamic-user.c
src/core/dynamic-user.h
src/core/emergency-action.c
src/core/emergency-action.h
src/core/exec-invoke.c
src/core/execute-serialize.c
src/core/execute.c
src/core/execute.h
src/core/executor.c
src/core/fuzz-execute-serialize.c
src/core/fuzz-unit-file.c
src/core/job.c
src/core/job.h
src/core/kill.h
src/core/load-dropin.c
src/core/load-dropin.h
src/core/load-fragment.h
src/core/manager-dump.c
src/core/manager-dump.h
src/core/manager-serialize.c
src/core/manager-serialize.h
src/core/manager.c
src/core/manager.h
src/core/mount.h
src/core/path.c
src/core/path.h
src/core/scope.c
src/core/scope.h
src/core/service.h
src/core/slice.c
src/core/slice.h
src/core/socket.c
src/core/socket.h
src/core/swap.c
src/core/swap.h
src/core/target.h
src/core/timer.c
src/core/timer.h
src/core/transaction.c
src/core/transaction.h
src/core/unit-printf.c
src/core/unit-serialize.c
src/core/unit-serialize.h
src/core/unit.c
src/core/unit.h