summaryrefslogtreecommitdiff
path: root/src/libbasic
diff options
context:
space:
mode:
Diffstat (limited to 'src/libbasic')
-rw-r--r--src/libbasic/Makefile27
-rw-r--r--src/libbasic/include/Makefile27
-rw-r--r--src/libbasic/include/basic/Makefile62
-rw-r--r--src/libbasic/include/basic/escape.h2
-rw-r--r--src/libbasic/include/basic/missing.h13
-rw-r--r--src/libbasic/include/basic/socket-util.h1
-rw-r--r--src/libbasic/src/Makefile243
-rw-r--r--src/libbasic/src/MurmurHash2.c2
-rw-r--r--src/libbasic/src/af-list.c4
-rw-r--r--src/libbasic/src/alloc-util.c6
-rw-r--r--src/libbasic/src/architecture.c8
-rw-r--r--src/libbasic/src/arphrd-list.c4
-rw-r--r--src/libbasic/src/async.c10
-rw-r--r--src/libbasic/src/audit-util.c19
-rw-r--r--src/libbasic/src/barrier.c6
-rw-r--r--src/libbasic/src/bitmap.c8
-rw-r--r--src/libbasic/src/btrfs-util.c3
-rw-r--r--src/libbasic/src/bus-label.c8
-rw-r--r--src/libbasic/src/calendarspec.c12
-rw-r--r--src/libbasic/src/cap-list.c10
-rw-r--r--src/libbasic/src/capability-util.c14
-rw-r--r--src/libbasic/src/cgroup-util.c52
-rw-r--r--src/libbasic/src/chattr-util.c7
-rw-r--r--src/libbasic/src/clock-util.c15
-rw-r--r--src/libbasic/src/conf-files.c22
-rw-r--r--src/libbasic/src/copy.c32
-rw-r--r--src/libbasic/src/cpu-set-util.c14
-rw-r--r--src/libbasic/src/device-nodes.c4
-rw-r--r--src/libbasic/src/dirent-util.c6
-rw-r--r--src/libbasic/src/env-util.c16
-rw-r--r--src/libbasic/src/errno-list.c4
-rw-r--r--src/libbasic/src/escape.c10
-rw-r--r--src/libbasic/src/ether-addr-util.c6
-rw-r--r--src/libbasic/src/exit-status.c6
-rw-r--r--src/libbasic/src/extract-word.c14
-rw-r--r--src/libbasic/src/fd-util.c18
-rw-r--r--src/libbasic/src/fdset.c14
-rw-r--r--src/libbasic/src/fileio-label.c6
-rw-r--r--src/libbasic/src/fileio.c36
-rw-r--r--src/libbasic/src/fs-util.c34
-rw-r--r--src/libbasic/src/glob-util.c6
-rw-r--r--src/libbasic/src/gunicode.c2
-rw-r--r--src/libbasic/src/hash-funcs.c2
-rw-r--r--src/libbasic/src/hashmap.c20
-rw-r--r--src/libbasic/src/hexdecoct.c8
-rw-r--r--src/libbasic/src/hostname-util.c10
-rw-r--r--src/libbasic/src/in-addr-util.c8
-rw-r--r--src/libbasic/src/io-util.c4
-rw-r--r--src/libbasic/src/label.c8
-rw-r--r--src/libbasic/src/locale-util.c20
-rw-r--r--src/libbasic/src/lockfile-util.c12
-rw-r--r--src/libbasic/src/log.c38
-rw-r--r--src/libbasic/src/login-util.c4
-rw-r--r--src/libbasic/src/mempool.c6
-rw-r--r--src/libbasic/src/mkdir-label.c4
-rw-r--r--src/libbasic/src/mkdir.c12
-rw-r--r--src/libbasic/src/mount-util.c22
-rw-r--r--src/libbasic/src/ordered-set.c4
-rw-r--r--src/libbasic/src/parse-util.c10
-rw-r--r--src/libbasic/src/prioq.c6
-rw-r--r--src/libbasic/src/proc-cmdline.c22
-rw-r--r--src/libbasic/src/process-util.c3
-rw-r--r--src/libbasic/src/random-util.c3
-rw-r--r--src/libbasic/src/ratelimit.c4
-rw-r--r--src/libbasic/src/replace-var.c8
-rw-r--r--src/libbasic/src/rlimit-util.c16
-rw-r--r--src/libbasic/src/rm-rf.c18
-rw-r--r--src/libbasic/src/sigbus.c6
-rw-r--r--src/libbasic/src/signal-util.c12
-rw-r--r--src/libbasic/src/siphash24.c6
-rw-r--r--src/libbasic/src/smack-util.c18
-rw-r--r--src/libbasic/src/socket-label.c18
-rw-r--r--src/libbasic/src/socket-util.c32
-rw-r--r--src/libbasic/src/stat-util.c17
-rw-r--r--src/libbasic/src/strbuf.c4
-rw-r--r--src/libbasic/src/string-table.c4
-rw-r--r--src/libbasic/src/string-util.c12
-rw-r--r--src/libbasic/src/strv.c14
-rw-r--r--src/libbasic/src/strxcpyx.c2
-rw-r--r--src/libbasic/src/syslog-util.c8
-rw-r--r--src/libbasic/src/terminal-util.c43
-rw-r--r--src/libbasic/src/time-util.c22
-rw-r--r--src/libbasic/src/unit-name.c20
-rw-r--r--src/libbasic/src/user-util.c18
-rw-r--r--src/libbasic/src/utf8.c8
-rw-r--r--src/libbasic/src/util.c48
-rw-r--r--src/libbasic/src/verbs.c10
-rw-r--r--src/libbasic/src/virt.c20
-rw-r--r--src/libbasic/src/web-util.c6
-rw-r--r--src/libbasic/src/xattr-util.c14
-rw-r--r--src/libbasic/src/xml.c6
91 files changed, 911 insertions, 542 deletions
diff --git a/src/libbasic/Makefile b/src/libbasic/Makefile
new file mode 100644
index 0000000000..45d408fa19
--- /dev/null
+++ b/src/libbasic/Makefile
@@ -0,0 +1,27 @@
+# -*- Mode: makefile; indent-tabs-mode: t -*-
+#
+# This file is part of systemd.
+#
+# Copyright 2010-2012 Lennart Poettering
+# Copyright 2010-2012 Kay Sievers
+# Copyright 2013 Zbigniew Jędrzejewski-Szmek
+# Copyright 2013 David Strauss
+# Copyright 2016 Luke Shumaker
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# systemd is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk
+include $(topsrcdir)/build-aux/Makefile.head.mk
+
+at.subdirs += src include
+include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/src/libbasic/include/Makefile b/src/libbasic/include/Makefile
new file mode 100644
index 0000000000..0aa8325a7e
--- /dev/null
+++ b/src/libbasic/include/Makefile
@@ -0,0 +1,27 @@
+# -*- Mode: makefile; indent-tabs-mode: t -*-
+#
+# This file is part of systemd.
+#
+# Copyright 2010-2012 Lennart Poettering
+# Copyright 2010-2012 Kay Sievers
+# Copyright 2013 Zbigniew Jędrzejewski-Szmek
+# Copyright 2013 David Strauss
+# Copyright 2016 Luke Shumaker
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# systemd is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk
+include $(topsrcdir)/build-aux/Makefile.head.mk
+
+at.subdirs += basic
+include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/src/libbasic/include/basic/Makefile b/src/libbasic/include/basic/Makefile
new file mode 100644
index 0000000000..eb8483fe8f
--- /dev/null
+++ b/src/libbasic/include/basic/Makefile
@@ -0,0 +1,62 @@
+# -*- Mode: makefile; indent-tabs-mode: t -*-
+#
+# This file is part of systemd.
+#
+# Copyright 2010-2012 Lennart Poettering
+# Copyright 2010-2012 Kay Sievers
+# Copyright 2013 Zbigniew Jędrzejewski-Szmek
+# Copyright 2013 David Strauss
+# Copyright 2016 Luke Shumaker
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# systemd is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk
+include $(topsrcdir)/build-aux/Makefile.head.mk
+
+$(outdir)/errno-list.txt:
+ $(AM_V_GEN)$(CPP) $(sd.ALL_CPPFLAGS) -dM -include errno.h - </dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+/ { print $$2; }' >$@
+
+$(outdir)/errno-to-name.h: $(outdir)/errno-list.txt
+ $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} !/EDEADLOCK/ && !/EWOULDBLOCK/ && !/ENOTSUP/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' <$< >$@
+
+
+$(outdir)/af-list.txt:
+ $(AM_V_GEN)$(CPP) $(sd.ALL_CPPFLAGS) -dM -include sys/socket.h - </dev/null | grep -v AF_UNSPEC | grep -v AF_MAX | $(AWK) '/^#define[ \t]+AF_[^ \t]+[ \t]+PF_[^ \t]/ { print $$2; }' >$@
+
+$(outdir)/af-to-name.h: $(outdir)/af-list.txt
+ $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const af_names[] = { "} !/AF_FILE/ && !/AF_ROUTE/ && !/AF_LOCAL/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' <$< >$@
+
+
+$(outdir)/arphrd-list.txt:
+ $(AM_V_GEN)$(CPP) $(sd.ALL_CPPFLAGS) -dM -include net/if_arp.h - </dev/null | $(AWK) '/^#define[ \t]+ARPHRD_[^ \t]+[ \t]+[^ \t]/ { print $$2; }' | sed -e 's/ARPHRD_//' >$@
+
+$(outdir)/arphrd-to-name.h: $(outdir)/arphrd-list.txt
+ $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const arphrd_names[] = { "} !/CISCO/ { printf "[ARPHRD_%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' <$< >$@
+
+$(outdir)/arphrd-from-name.gperf: $(outdir)/arphrd-list.txt
+ $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct arphrd_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, ARPHRD_%s\n", $$1, $$1 }' <$< >$@
+
+
+$(outdir)/cap-list.txt:
+ $(AM_V_GEN)$(CPP) $(sd.ALL_CPPFLAGS) -dM -include linux/capability.h -include missing.h - </dev/null | $(AWK) '/^#define[ \t]+CAP_[A-Z_]+[ \t]+/ { print $$2; }' | grep -v CAP_LAST_CAP >$@
+
+$(outdir)/cap-to-name.h: $(outdir)/cap-list.txt
+ $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const capability_names[] = { "} { printf "[%s] = \"%s\",\n", $$1, tolower($$1) } END{print "};"}' <$< >$@
+
+$(outdir)/cap-from-name.gperf: $(outdir)/cap-list.txt
+ $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct capability_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, %s\n", $$1, $$1 }' <$< >$@
+
+$(outdir)/cap-from-name.h: $(outdir)/cap-from-name.gperf
+ $(AM_V_GPERF)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_capability -H hash_capability_name -p -C <$< >$@
+
+include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/src/libbasic/include/basic/escape.h b/src/libbasic/include/basic/escape.h
index deaa4def28..6e58f61e19 100644
--- a/src/libbasic/include/basic/escape.h
+++ b/src/libbasic/include/basic/escape.h
@@ -25,8 +25,8 @@
#include <sys/types.h>
#include <uchar.h>
-#include "string-util.h"
#include "missing.h"
+#include "string-util.h"
/* What characters are special in the shell? */
/* must be escaped outside and inside double-quotes */
diff --git a/src/libbasic/include/basic/missing.h b/src/libbasic/include/basic/missing.h
index 651e414395..168d8cdb0a 100644
--- a/src/libbasic/include/basic/missing.h
+++ b/src/libbasic/include/basic/missing.h
@@ -23,6 +23,13 @@
#include <errno.h>
#include <fcntl.h>
+#include <net/ethernet.h>
+#include <stdlib.h>
+#include <sys/resource.h>
+#include <sys/syscall.h>
+#include <uchar.h>
+#include <unistd.h>
+
#include <linux/audit.h>
#include <linux/capability.h>
#include <linux/if_link.h>
@@ -31,12 +38,6 @@
#include <linux/neighbour.h>
#include <linux/oom.h>
#include <linux/rtnetlink.h>
-#include <net/ethernet.h>
-#include <stdlib.h>
-#include <sys/resource.h>
-#include <sys/syscall.h>
-#include <uchar.h>
-#include <unistd.h>
#ifdef HAVE_AUDIT
#include <libaudit.h>
diff --git a/src/libbasic/include/basic/socket-util.h b/src/libbasic/include/basic/socket-util.h
index e9230e4a9f..bad1f32e09 100644
--- a/src/libbasic/include/basic/socket-util.h
+++ b/src/libbasic/include/basic/socket-util.h
@@ -26,6 +26,7 @@
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/un.h>
+
#include <linux/netlink.h>
#include <linux/if_packet.h>
diff --git a/src/libbasic/src/Makefile b/src/libbasic/src/Makefile
new file mode 100644
index 0000000000..2fc52e91f5
--- /dev/null
+++ b/src/libbasic/src/Makefile
@@ -0,0 +1,243 @@
+# -*- Mode: makefile; indent-tabs-mode: t -*-
+#
+# This file is part of systemd.
+#
+# Copyright 2010-2012 Lennart Poettering
+# Copyright 2010-2012 Kay Sievers
+# Copyright 2013 Zbigniew Jędrzejewski-Szmek
+# Copyright 2013 David Strauss
+# Copyright 2016 Luke Shumaker
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# systemd is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk
+include $(topsrcdir)/build-aux/Makefile.head.mk
+
+noinst_LTLIBRARIES += \
+ libbasic.la
+
+libbasic_la_SOURCES = \
+ src/basic/missing.h \
+ src/basic/missing_syscall.h \
+ src/basic/capability-util.c \
+ src/basic/capability-util.h \
+ src/basic/conf-files.c \
+ src/basic/conf-files.h \
+ src/basic/stdio-util.h \
+ src/basic/hostname-util.h \
+ src/basic/hostname-util.c \
+ src/basic/unit-name.c \
+ src/basic/unit-name.h \
+ src/basic/ioprio.h \
+ src/basic/securebits.h \
+ src/basic/special.h \
+ src/basic/list.h \
+ src/basic/unaligned.h \
+ src/basic/macro.h \
+ src/basic/def.h \
+ src/basic/sparse-endian.h \
+ src/basic/refcnt.h \
+ src/basic/util.c \
+ src/basic/util.h \
+ src/basic/io-util.c \
+ src/basic/io-util.h \
+ src/basic/string-util.c \
+ src/basic/string-util.h \
+ src/basic/fd-util.c \
+ src/basic/fd-util.h \
+ src/basic/parse-util.c \
+ src/basic/parse-util.h \
+ src/basic/user-util.c \
+ src/basic/user-util.h \
+ src/basic/rlimit-util.c \
+ src/basic/rlimit-util.h \
+ src/basic/dirent-util.c \
+ src/basic/dirent-util.h \
+ src/basic/xattr-util.c \
+ src/basic/xattr-util.h \
+ src/basic/chattr-util.c \
+ src/basic/chattr-util.h \
+ src/basic/proc-cmdline.c \
+ src/basic/proc-cmdline.h \
+ src/basic/fs-util.c \
+ src/basic/fs-util.h \
+ src/basic/syslog-util.c \
+ src/basic/syslog-util.h \
+ src/basic/stat-util.c \
+ src/basic/stat-util.h \
+ src/basic/mount-util.c \
+ src/basic/mount-util.h \
+ src/basic/hexdecoct.c \
+ src/basic/hexdecoct.h \
+ src/basic/glob-util.h \
+ src/basic/glob-util.c \
+ src/basic/extract-word.c \
+ src/basic/extract-word.h \
+ src/basic/escape.c \
+ src/basic/escape.h \
+ src/basic/cpu-set-util.c \
+ src/basic/cpu-set-util.h \
+ src/basic/lockfile-util.c \
+ src/basic/lockfile-util.h \
+ src/basic/path-util.c \
+ src/basic/path-util.h \
+ src/basic/time-util.c \
+ src/basic/time-util.h \
+ src/basic/locale-util.c \
+ src/basic/locale-util.h \
+ src/basic/umask-util.h \
+ src/basic/signal-util.c \
+ src/basic/signal-util.h \
+ src/basic/string-table.c \
+ src/basic/string-table.h \
+ src/basic/mempool.c \
+ src/basic/mempool.h \
+ src/basic/hashmap.c \
+ src/basic/hashmap.h \
+ src/basic/hash-funcs.c \
+ src/basic/hash-funcs.h \
+ src/basic/siphash24.c \
+ src/basic/siphash24.h \
+ src/basic/set.h \
+ src/basic/ordered-set.h \
+ src/basic/ordered-set.c \
+ src/basic/bitmap.c \
+ src/basic/bitmap.h \
+ src/basic/fdset.c \
+ src/basic/fdset.h \
+ src/basic/prioq.c \
+ src/basic/prioq.h \
+ src/basic/web-util.c \
+ src/basic/web-util.h \
+ src/basic/strv.c \
+ src/basic/strv.h \
+ src/basic/env-util.c \
+ src/basic/env-util.h \
+ src/basic/strbuf.c \
+ src/basic/strbuf.h \
+ src/basic/strxcpyx.c \
+ src/basic/strxcpyx.h \
+ src/basic/log.c \
+ src/basic/log.h \
+ src/basic/bus-label.c \
+ src/basic/bus-label.h \
+ src/basic/ratelimit.h \
+ src/basic/ratelimit.c \
+ src/basic/exit-status.c \
+ src/basic/exit-status.h \
+ src/basic/virt.c \
+ src/basic/virt.h \
+ src/basic/architecture.c \
+ src/basic/architecture.h \
+ src/basic/smack-util.c \
+ src/basic/smack-util.h \
+ src/basic/device-nodes.c \
+ src/basic/device-nodes.h \
+ src/basic/utf8.c \
+ src/basic/utf8.h \
+ src/basic/gunicode.c \
+ src/basic/gunicode.h \
+ src/basic/socket-util.c \
+ src/basic/socket-util.h \
+ src/basic/in-addr-util.c \
+ src/basic/in-addr-util.h \
+ src/basic/ether-addr-util.h \
+ src/basic/ether-addr-util.c \
+ src/basic/replace-var.c \
+ src/basic/replace-var.h \
+ src/basic/clock-util.c \
+ src/basic/clock-util.h \
+ src/basic/calendarspec.c \
+ src/basic/calendarspec.h \
+ src/basic/fileio.c \
+ src/basic/fileio.h \
+ src/basic/MurmurHash2.c \
+ src/basic/MurmurHash2.h \
+ src/basic/mkdir.c \
+ src/basic/mkdir.h \
+ src/basic/cgroup-util.c \
+ src/basic/cgroup-util.h \
+ src/basic/errno-list.c \
+ src/basic/errno-list.h \
+ src/basic/af-list.c \
+ src/basic/af-list.h \
+ src/basic/arphrd-list.c \
+ src/basic/arphrd-list.h \
+ src/basic/terminal-util.c \
+ src/basic/terminal-util.h \
+ src/basic/login-util.h \
+ src/basic/login-util.c \
+ src/basic/cap-list.c \
+ src/basic/cap-list.h \
+ src/basic/audit-util.c \
+ src/basic/audit-util.h \
+ src/basic/xml.c \
+ src/basic/xml.h \
+ src/basic/barrier.c \
+ src/basic/barrier.h \
+ src/basic/async.c \
+ src/basic/async.h \
+ src/basic/memfd-util.c \
+ src/basic/memfd-util.h \
+ src/basic/process-util.c \
+ src/basic/process-util.h \
+ src/basic/random-util.c \
+ src/basic/random-util.h \
+ src/basic/verbs.c \
+ src/basic/verbs.h \
+ src/basic/sigbus.c \
+ src/basic/sigbus.h \
+ src/basic/build.h \
+ src/basic/socket-label.c \
+ src/basic/label.c \
+ src/basic/label.h \
+ src/basic/btrfs-util.c \
+ src/basic/btrfs-util.h \
+ src/basic/btrfs-ctree.h \
+ src/basic/selinux-util.c \
+ src/basic/selinux-util.h \
+ src/basic/mkdir-label.c \
+ src/basic/fileio-label.c \
+ src/basic/fileio-label.h \
+ src/basic/rm-rf.c \
+ src/basic/rm-rf.h \
+ src/basic/copy.c \
+ src/basic/copy.h \
+ src/basic/alloc-util.h \
+ src/basic/alloc-util.c \
+ src/basic/formats-util.h \
+ src/basic/nss-util.h
+
+nodist_libbasic_la_SOURCES = \
+ src/basic/errno-from-name.h \
+ src/basic/errno-to-name.h \
+ src/basic/af-from-name.h \
+ src/basic/af-to-name.h \
+ src/basic/arphrd-from-name.h \
+ src/basic/arphrd-to-name.h \
+ src/basic/cap-from-name.h \
+ src/basic/cap-to-name.h
+
+libbasic_la_CFLAGS = \
+ $(AM_CFLAGS) \
+ $(SELINUX_CFLAGS) \
+ $(CAP_CFLAGS) \
+ -pthread
+
+libbasic_la_LIBADD = \
+ $(SELINUX_LIBS) \
+ $(CAP_LIBS) \
+ -lrt \
+ -lm
+
+include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/src/libbasic/src/MurmurHash2.c b/src/libbasic/src/MurmurHash2.c
index 9020793930..7d43f18f61 100644
--- a/src/libbasic/src/MurmurHash2.c
+++ b/src/libbasic/src/MurmurHash2.c
@@ -13,7 +13,7 @@
// 2. It will not produce the same results on little-endian and big-endian
// machines.
-#include "MurmurHash2.h"
+#include "basic/MurmurHash2.h"
//-----------------------------------------------------------------------------
// Platform-specific functions and macros
diff --git a/src/libbasic/src/af-list.c b/src/libbasic/src/af-list.c
index 3fac9c508b..434af37851 100644
--- a/src/libbasic/src/af-list.c
+++ b/src/libbasic/src/af-list.c
@@ -20,8 +20,8 @@
#include <string.h>
#include <sys/socket.h>
-#include "af-list.h"
-#include "macro.h"
+#include "basic/af-list.h"
+#include "basic/macro.h"
static const struct af_name* lookup_af(register const char *str, register unsigned int len);
diff --git a/src/libbasic/src/alloc-util.c b/src/libbasic/src/alloc-util.c
index b540dcddf5..4e88a3a3bc 100644
--- a/src/libbasic/src/alloc-util.c
+++ b/src/libbasic/src/alloc-util.c
@@ -20,9 +20,9 @@
#include <stdint.h>
#include <string.h>
-#include "alloc-util.h"
-#include "macro.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/macro.h"
+#include "basic/util.h"
void* memdup(const void *p, size_t l) {
void *r;
diff --git a/src/libbasic/src/architecture.c b/src/libbasic/src/architecture.c
index b1c8e91f50..22815f5353 100644
--- a/src/libbasic/src/architecture.c
+++ b/src/libbasic/src/architecture.c
@@ -19,10 +19,10 @@
#include <sys/utsname.h>
-#include "architecture.h"
-#include "macro.h"
-#include "string-table.h"
-#include "string-util.h"
+#include "basic/architecture.h"
+#include "basic/macro.h"
+#include "basic/string-table.h"
+#include "basic/string-util.h"
int uname_architecture(void) {
diff --git a/src/libbasic/src/arphrd-list.c b/src/libbasic/src/arphrd-list.c
index 6792d1ee3f..fbebe8ca09 100644
--- a/src/libbasic/src/arphrd-list.c
+++ b/src/libbasic/src/arphrd-list.c
@@ -20,8 +20,8 @@
#include <net/if_arp.h>
#include <string.h>
-#include "arphrd-list.h"
-#include "macro.h"
+#include "basic/arphrd-list.h"
+#include "basic/macro.h"
static const struct arphrd_name* lookup_arphrd(register const char *str, register unsigned int len);
diff --git a/src/libbasic/src/async.c b/src/libbasic/src/async.c
index a1f163f27b..0e2fce6850 100644
--- a/src/libbasic/src/async.c
+++ b/src/libbasic/src/async.c
@@ -22,11 +22,11 @@
#include <stddef.h>
#include <unistd.h>
-#include "async.h"
-#include "fd-util.h"
-#include "log.h"
-#include "macro.h"
-#include "util.h"
+#include "basic/async.h"
+#include "basic/fd-util.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/util.h"
int asynchronous_job(void* (*func)(void *p), void *arg) {
pthread_attr_t a;
diff --git a/src/libbasic/src/audit-util.c b/src/libbasic/src/audit-util.c
index 5741fecdd6..0cd8543374 100644
--- a/src/libbasic/src/audit-util.c
+++ b/src/libbasic/src/audit-util.c
@@ -18,18 +18,19 @@
***/
#include <errno.h>
-#include <linux/netlink.h>
#include <stdio.h>
#include <sys/socket.h>
-#include "alloc-util.h"
-#include "audit-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "process-util.h"
-#include "user-util.h"
+#include <linux/netlink.h>
+
+#include "basic/alloc-util.h"
+#include "basic/audit-util.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/process-util.h"
+#include "basic/user-util.h"
int audit_session_from_pid(pid_t pid, uint32_t *id) {
_cleanup_free_ char *s = NULL;
diff --git a/src/libbasic/src/barrier.c b/src/libbasic/src/barrier.c
index 2da633b311..ad685bb3c1 100644
--- a/src/libbasic/src/barrier.c
+++ b/src/libbasic/src/barrier.c
@@ -27,9 +27,9 @@
#include <sys/types.h>
#include <unistd.h>
-#include "barrier.h"
-#include "fd-util.h"
-#include "macro.h"
+#include "basic/barrier.h"
+#include "basic/fd-util.h"
+#include "basic/macro.h"
/**
* Barriers
diff --git a/src/libbasic/src/bitmap.c b/src/libbasic/src/bitmap.c
index ad1fda0198..8645134022 100644
--- a/src/libbasic/src/bitmap.c
+++ b/src/libbasic/src/bitmap.c
@@ -23,10 +23,10 @@
#include <stdlib.h>
#include <string.h>
-#include "alloc-util.h"
-#include "bitmap.h"
-#include "hashmap.h"
-#include "macro.h"
+#include "basic/alloc-util.h"
+#include "basic/bitmap.h"
+#include "basic/hashmap.h"
+#include "basic/macro.h"
struct Bitmap {
uint64_t *bitmaps;
diff --git a/src/libbasic/src/btrfs-util.c b/src/libbasic/src/btrfs-util.c
index 359d85f2e8..7a5f6b7e76 100644
--- a/src/libbasic/src/btrfs-util.c
+++ b/src/libbasic/src/btrfs-util.c
@@ -20,7 +20,6 @@
#include <errno.h>
#include <fcntl.h>
#include <inttypes.h>
-#include <linux/loop.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
@@ -31,6 +30,8 @@
#include <sys/sysmacros.h>
#include <unistd.h>
+#include <linux/loop.h>
+
#ifdef HAVE_LINUX_BTRFS_H
#include <linux/btrfs.h>
#endif
diff --git a/src/libbasic/src/bus-label.c b/src/libbasic/src/bus-label.c
index d4531c7947..a7fd5a227e 100644
--- a/src/libbasic/src/bus-label.c
+++ b/src/libbasic/src/bus-label.c
@@ -19,10 +19,10 @@
#include <stdlib.h>
-#include "alloc-util.h"
-#include "bus-label.h"
-#include "hexdecoct.h"
-#include "macro.h"
+#include "basic/alloc-util.h"
+#include "basic/bus-label.h"
+#include "basic/hexdecoct.h"
+#include "basic/macro.h"
char *bus_label_escape(const char *s) {
char *r, *t;
diff --git a/src/libbasic/src/calendarspec.c b/src/libbasic/src/calendarspec.c
index 6e0bab9b94..a70eb078c6 100644
--- a/src/libbasic/src/calendarspec.c
+++ b/src/libbasic/src/calendarspec.c
@@ -25,12 +25,12 @@
#include <string.h>
#include <time.h>
-#include "alloc-util.h"
-#include "calendarspec.h"
-#include "fileio.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "string-util.h"
+#include "basic/alloc-util.h"
+#include "basic/calendarspec.h"
+#include "basic/fileio.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/string-util.h"
#define BITS_WEEKDAYS 127
diff --git a/src/libbasic/src/cap-list.c b/src/libbasic/src/cap-list.c
index 3e773a06f5..9821644444 100644
--- a/src/libbasic/src/cap-list.c
+++ b/src/libbasic/src/cap-list.c
@@ -20,11 +20,11 @@
#include <errno.h>
#include <string.h>
-#include "cap-list.h"
-#include "macro.h"
-#include "missing.h"
-#include "parse-util.h"
-#include "util.h"
+#include "basic/cap-list.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/parse-util.h"
+#include "basic/util.h"
static const struct capability_name* lookup_capability(register const char *str, register unsigned int len);
diff --git a/src/libbasic/src/capability-util.c b/src/libbasic/src/capability-util.c
index d4c5bd6937..6c35ad09e5 100644
--- a/src/libbasic/src/capability-util.c
+++ b/src/libbasic/src/capability-util.c
@@ -25,13 +25,13 @@
#include <sys/prctl.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "capability-util.h"
-#include "fileio.h"
-#include "log.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/capability-util.h"
+#include "basic/fileio.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/util.h"
int have_effective_cap(int value) {
_cleanup_cap_free_ cap_t cap;
diff --git a/src/libbasic/src/cgroup-util.c b/src/libbasic/src/cgroup-util.c
index 7cdc97ee3c..68c8aae540 100644
--- a/src/libbasic/src/cgroup-util.c
+++ b/src/libbasic/src/cgroup-util.c
@@ -30,32 +30,32 @@
#include <sys/types.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "cgroup-util.h"
-#include "def.h"
-#include "dirent-util.h"
-#include "extract-word.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "formats-util.h"
-#include "fs-util.h"
-#include "log.h"
-#include "login-util.h"
-#include "macro.h"
-#include "missing.h"
-#include "mkdir.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "proc-cmdline.h"
-#include "process-util.h"
-#include "set.h"
-#include "special.h"
-#include "stat-util.h"
-#include "stdio-util.h"
-#include "string-table.h"
-#include "string-util.h"
-#include "unit-name.h"
-#include "user-util.h"
+#include "basic/alloc-util.h"
+#include "basic/cgroup-util.h"
+#include "basic/def.h"
+#include "basic/dirent-util.h"
+#include "basic/extract-word.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/formats-util.h"
+#include "basic/fs-util.h"
+#include "basic/log.h"
+#include "basic/login-util.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/mkdir.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/proc-cmdline.h"
+#include "basic/process-util.h"
+#include "basic/set.h"
+#include "basic/special.h"
+#include "basic/stat-util.h"
+#include "basic/stdio-util.h"
+#include "basic/string-table.h"
+#include "basic/string-util.h"
+#include "basic/unit-name.h"
+#include "basic/user-util.h"
int cg_enumerate_processes(const char *controller, const char *path, FILE **_f) {
_cleanup_free_ char *fs = NULL;
diff --git a/src/libbasic/src/chattr-util.c b/src/libbasic/src/chattr-util.c
index 2896a729af..4d349431c8 100644
--- a/src/libbasic/src/chattr-util.c
+++ b/src/libbasic/src/chattr-util.c
@@ -21,11 +21,12 @@
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
+
#include <linux/fs.h>
-#include "chattr-util.h"
-#include "fd-util.h"
-#include "macro.h"
+#include "basic/chattr-util.h"
+#include "basic/fd-util.h"
+#include "basic/macro.h"
int chattr_fd(int fd, unsigned value, unsigned mask) {
unsigned old_attr, new_attr;
diff --git a/src/libbasic/src/clock-util.c b/src/libbasic/src/clock-util.c
index 7fe8d35ea5..b1d0d2e432 100644
--- a/src/libbasic/src/clock-util.c
+++ b/src/libbasic/src/clock-util.c
@@ -21,17 +21,18 @@
#include <fcntl.h>
#include <limits.h>
#include <stdbool.h>
-#include <time.h>
-#include <linux/rtc.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <sys/time.h>
+#include <time.h>
+
+#include <linux/rtc.h>
-#include "clock-util.h"
-#include "fd-util.h"
-#include "macro.h"
-#include "string-util.h"
-#include "util.h"
+#include "basic/clock-util.h"
+#include "basic/fd-util.h"
+#include "basic/macro.h"
+#include "basic/string-util.h"
+#include "basic/util.h"
int clock_get_hwclock(struct tm *tm) {
_cleanup_close_ int fd = -1;
diff --git a/src/libbasic/src/conf-files.c b/src/libbasic/src/conf-files.c
index c781610e14..2bb794e256 100644
--- a/src/libbasic/src/conf-files.c
+++ b/src/libbasic/src/conf-files.c
@@ -24,17 +24,17 @@
#include <stdlib.h>
#include <string.h>
-#include "conf-files.h"
-#include "dirent-util.h"
-#include "fd-util.h"
-#include "hashmap.h"
-#include "log.h"
-#include "macro.h"
-#include "missing.h"
-#include "path-util.h"
-#include "string-util.h"
-#include "strv.h"
-#include "util.h"
+#include "basic/conf-files.h"
+#include "basic/dirent-util.h"
+#include "basic/fd-util.h"
+#include "basic/hashmap.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/path-util.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/util.h"
static int files_add(Hashmap *h, const char *root, const char *path, const char *suffix) {
_cleanup_closedir_ DIR *dir = NULL;
diff --git a/src/libbasic/src/copy.c b/src/libbasic/src/copy.c
index c3586728d0..4053ac9c16 100644
--- a/src/libbasic/src/copy.c
+++ b/src/libbasic/src/copy.c
@@ -30,22 +30,22 @@
#include <time.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "btrfs-util.h"
-#include "chattr-util.h"
-#include "copy.h"
-#include "dirent-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "fs-util.h"
-#include "io-util.h"
-#include "macro.h"
-#include "missing.h"
-#include "string-util.h"
-#include "strv.h"
-#include "time-util.h"
-#include "umask-util.h"
-#include "xattr-util.h"
+#include "basic/alloc-util.h"
+#include "basic/btrfs-util.h"
+#include "basic/chattr-util.h"
+#include "basic/copy.h"
+#include "basic/dirent-util.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/fs-util.h"
+#include "basic/io-util.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/time-util.h"
+#include "basic/umask-util.h"
+#include "basic/xattr-util.h"
#define COPY_BUFFER_SIZE (16*1024u)
diff --git a/src/libbasic/src/cpu-set-util.c b/src/libbasic/src/cpu-set-util.c
index 95ed6928ff..89e012d6e2 100644
--- a/src/libbasic/src/cpu-set-util.c
+++ b/src/libbasic/src/cpu-set-util.c
@@ -22,13 +22,13 @@
#include <stddef.h>
#include <syslog.h>
-#include "alloc-util.h"
-#include "cpu-set-util.h"
-#include "extract-word.h"
-#include "log.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "string-util.h"
+#include "basic/alloc-util.h"
+#include "basic/cpu-set-util.h"
+#include "basic/extract-word.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/string-util.h"
cpu_set_t* cpu_set_malloc(unsigned *ncpus) {
cpu_set_t *c;
diff --git a/src/libbasic/src/device-nodes.c b/src/libbasic/src/device-nodes.c
index 38c0628a90..e5b2eb637c 100644
--- a/src/libbasic/src/device-nodes.c
+++ b/src/libbasic/src/device-nodes.c
@@ -21,8 +21,8 @@
#include <stdio.h>
#include <string.h>
-#include "device-nodes.h"
-#include "utf8.h"
+#include "basic/device-nodes.h"
+#include "basic/utf8.h"
int whitelisted_char_for_devnode(char c, const char *white) {
diff --git a/src/libbasic/src/dirent-util.c b/src/libbasic/src/dirent-util.c
index 59067121b7..5bc740b189 100644
--- a/src/libbasic/src/dirent-util.c
+++ b/src/libbasic/src/dirent-util.c
@@ -20,9 +20,9 @@
#include <fcntl.h>
#include <sys/stat.h>
-#include "dirent-util.h"
-#include "path-util.h"
-#include "string-util.h"
+#include "basic/dirent-util.h"
+#include "basic/path-util.h"
+#include "basic/string-util.h"
int dirent_ensure_type(DIR *d, struct dirent *de) {
struct stat st;
diff --git a/src/libbasic/src/env-util.c b/src/libbasic/src/env-util.c
index 7f5fddb700..67d8261c87 100644
--- a/src/libbasic/src/env-util.c
+++ b/src/libbasic/src/env-util.c
@@ -24,14 +24,14 @@
#include <string.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "env-util.h"
-#include "extract-word.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "string-util.h"
-#include "strv.h"
-#include "utf8.h"
+#include "basic/alloc-util.h"
+#include "basic/env-util.h"
+#include "basic/extract-word.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/utf8.h"
#define VALID_CHARS_ENV_NAME \
DIGITS LETTERS \
diff --git a/src/libbasic/src/errno-list.c b/src/libbasic/src/errno-list.c
index 31b66bad5e..2d39044b50 100644
--- a/src/libbasic/src/errno-list.c
+++ b/src/libbasic/src/errno-list.c
@@ -19,8 +19,8 @@
#include <string.h>
-#include "errno-list.h"
-#include "macro.h"
+#include "basic/errno-list.h"
+#include "basic/macro.h"
static const struct errno_name* lookup_errno(register const char *str,
register unsigned int len);
diff --git a/src/libbasic/src/escape.c b/src/libbasic/src/escape.c
index 01daf11ce7..609b68ae53 100644
--- a/src/libbasic/src/escape.c
+++ b/src/libbasic/src/escape.c
@@ -21,11 +21,11 @@
#include <stdlib.h>
#include <string.h>
-#include "alloc-util.h"
-#include "escape.h"
-#include "hexdecoct.h"
-#include "macro.h"
-#include "utf8.h"
+#include "basic/alloc-util.h"
+#include "basic/escape.h"
+#include "basic/hexdecoct.h"
+#include "basic/macro.h"
+#include "basic/utf8.h"
size_t cescape_char(char c, char *buf) {
char * buf_old = buf;
diff --git a/src/libbasic/src/ether-addr-util.c b/src/libbasic/src/ether-addr-util.c
index 5697e8d132..933b7c9dc7 100644
--- a/src/libbasic/src/ether-addr-util.c
+++ b/src/libbasic/src/ether-addr-util.c
@@ -21,9 +21,9 @@
#include <stdio.h>
#include <sys/types.h>
-#include "ether-addr-util.h"
-#include "macro.h"
-#include "string-util.h"
+#include "basic/ether-addr-util.h"
+#include "basic/macro.h"
+#include "basic/string-util.h"
char* ether_addr_to_string(const struct ether_addr *addr, char buffer[ETHER_ADDR_TO_STRING_MAX]) {
assert(addr);
diff --git a/src/libbasic/src/exit-status.c b/src/libbasic/src/exit-status.c
index 92fa5ace61..c7af63e052 100644
--- a/src/libbasic/src/exit-status.c
+++ b/src/libbasic/src/exit-status.c
@@ -20,9 +20,9 @@
#include <signal.h>
#include <stdlib.h>
-#include "exit-status.h"
-#include "macro.h"
-#include "set.h"
+#include "basic/exit-status.h"
+#include "basic/macro.h"
+#include "basic/set.h"
const char* exit_status_to_string(ExitStatus status, ExitStatusLevel level) {
diff --git a/src/libbasic/src/extract-word.c b/src/libbasic/src/extract-word.c
index d6c1228463..c38a815592 100644
--- a/src/libbasic/src/extract-word.c
+++ b/src/libbasic/src/extract-word.c
@@ -26,13 +26,13 @@
#include <string.h>
#include <syslog.h>
-#include "alloc-util.h"
-#include "escape.h"
-#include "extract-word.h"
-#include "log.h"
-#include "macro.h"
-#include "string-util.h"
-#include "utf8.h"
+#include "basic/alloc-util.h"
+#include "basic/escape.h"
+#include "basic/extract-word.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/string-util.h"
+#include "basic/utf8.h"
int extract_first_word(const char **p, char **ret, const char *separators, ExtractFlags flags) {
_cleanup_free_ char *s = NULL;
diff --git a/src/libbasic/src/fd-util.c b/src/libbasic/src/fd-util.c
index 8b466cff15..277a4c1075 100644
--- a/src/libbasic/src/fd-util.c
+++ b/src/libbasic/src/fd-util.c
@@ -24,15 +24,15 @@
#include <sys/stat.h>
#include <unistd.h>
-#include "fd-util.h"
-#include "fs-util.h"
-#include "macro.h"
-#include "missing.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "socket-util.h"
-#include "stdio-util.h"
-#include "util.h"
+#include "basic/fd-util.h"
+#include "basic/fs-util.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/socket-util.h"
+#include "basic/stdio-util.h"
+#include "basic/util.h"
int close_nointr(int fd) {
assert(fd >= 0);
diff --git a/src/libbasic/src/fdset.c b/src/libbasic/src/fdset.c
index b52bf1ad05..71e920d08e 100644
--- a/src/libbasic/src/fdset.c
+++ b/src/libbasic/src/fdset.c
@@ -25,13 +25,13 @@
#include <systemd/sd-daemon.h>
-#include "fd-util.h"
-#include "fdset.h"
-#include "log.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "set.h"
+#include "basic/fd-util.h"
+#include "basic/fdset.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/set.h"
#define MAKE_SET(s) ((Set*) s)
#define MAKE_FDSET(s) ((FDSet*) s)
diff --git a/src/libbasic/src/fileio-label.c b/src/libbasic/src/fileio-label.c
index 66dbc0fe1e..3e0cab1b38 100644
--- a/src/libbasic/src/fileio-label.c
+++ b/src/libbasic/src/fileio-label.c
@@ -20,9 +20,9 @@
#include <sys/stat.h>
-#include "fileio-label.h"
-#include "fileio.h"
-#include "selinux-util.h"
+#include "basic/fileio-label.h"
+#include "basic/fileio.h"
+#include "basic/selinux-util.h"
int write_string_file_atomic_label(const char *fn, const char *line) {
int r;
diff --git a/src/libbasic/src/fileio.c b/src/libbasic/src/fileio.c
index 29f5374222..c784aaac54 100644
--- a/src/libbasic/src/fileio.c
+++ b/src/libbasic/src/fileio.c
@@ -17,6 +17,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
+#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
@@ -28,24 +29,23 @@
#include <sys/types.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "ctype.h"
-#include "escape.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "fs-util.h"
-#include "hexdecoct.h"
-#include "log.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "random-util.h"
-#include "stdio-util.h"
-#include "string-util.h"
-#include "strv.h"
-#include "time-util.h"
-#include "umask-util.h"
-#include "utf8.h"
+#include "basic/alloc-util.h"
+#include "basic/escape.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/fs-util.h"
+#include "basic/hexdecoct.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/random-util.h"
+#include "basic/stdio-util.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/time-util.h"
+#include "basic/umask-util.h"
+#include "basic/utf8.h"
int write_string_stream(FILE *f, const char *line, bool enforce_newline) {
diff --git a/src/libbasic/src/fs-util.c b/src/libbasic/src/fs-util.c
index e24e7036f7..03b06fd2d8 100644
--- a/src/libbasic/src/fs-util.c
+++ b/src/libbasic/src/fs-util.c
@@ -27,23 +27,23 @@
#include <time.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "dirent-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "fs-util.h"
-#include "log.h"
-#include "macro.h"
-#include "missing.h"
-#include "mkdir.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "stdio-util.h"
-#include "string-util.h"
-#include "strv.h"
-#include "time-util.h"
-#include "user-util.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/dirent-util.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/fs-util.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/mkdir.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/stdio-util.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/time-util.h"
+#include "basic/user-util.h"
+#include "basic/util.h"
int unlink_noerrno(const char *path) {
PROTECT_ERRNO;
diff --git a/src/libbasic/src/glob-util.c b/src/libbasic/src/glob-util.c
index 007198c269..8762a59bd9 100644
--- a/src/libbasic/src/glob-util.c
+++ b/src/libbasic/src/glob-util.c
@@ -20,9 +20,9 @@
#include <errno.h>
#include <glob.h>
-#include "glob-util.h"
-#include "macro.h"
-#include "strv.h"
+#include "basic/glob-util.h"
+#include "basic/macro.h"
+#include "basic/strv.h"
int glob_exists(const char *path) {
_cleanup_globfree_ glob_t g = {};
diff --git a/src/libbasic/src/gunicode.c b/src/libbasic/src/gunicode.c
index 542110503f..4862021fbb 100644
--- a/src/libbasic/src/gunicode.c
+++ b/src/libbasic/src/gunicode.c
@@ -6,7 +6,7 @@
#include <stdlib.h>
-#include "gunicode.h"
+#include "basic/gunicode.h"
#define unichar uint32_t
diff --git a/src/libbasic/src/hash-funcs.c b/src/libbasic/src/hash-funcs.c
index c3a4a011b5..e82a342063 100644
--- a/src/libbasic/src/hash-funcs.c
+++ b/src/libbasic/src/hash-funcs.c
@@ -18,7 +18,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include "hash-funcs.h"
+#include "basic/hash-funcs.h"
void string_hash_func(const void *p, struct siphash *state) {
siphash24_compress(p, strlen(p) + 1, state);
diff --git a/src/libbasic/src/hashmap.c b/src/libbasic/src/hashmap.c
index 49a0479592..38a4bb3feb 100644
--- a/src/libbasic/src/hashmap.c
+++ b/src/libbasic/src/hashmap.c
@@ -23,16 +23,16 @@
#include <stdlib.h>
#include <string.h>
-#include "alloc-util.h"
-#include "hashmap.h"
-#include "macro.h"
-#include "mempool.h"
-#include "process-util.h"
-#include "random-util.h"
-#include "set.h"
-#include "siphash24.h"
-#include "strv.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/hashmap.h"
+#include "basic/macro.h"
+#include "basic/mempool.h"
+#include "basic/process-util.h"
+#include "basic/random-util.h"
+#include "basic/set.h"
+#include "basic/siphash24.h"
+#include "basic/strv.h"
+#include "basic/util.h"
#ifdef ENABLE_DEBUG_HASHMAP
#include <pthread.h>
diff --git a/src/libbasic/src/hexdecoct.c b/src/libbasic/src/hexdecoct.c
index c5bda6c4d6..060a95b616 100644
--- a/src/libbasic/src/hexdecoct.c
+++ b/src/libbasic/src/hexdecoct.c
@@ -22,10 +22,10 @@
#include <stdint.h>
#include <stdlib.h>
-#include "alloc-util.h"
-#include "hexdecoct.h"
-#include "macro.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/hexdecoct.h"
+#include "basic/macro.h"
+#include "basic/util.h"
char octchar(int x) {
return '0' + (x & 7);
diff --git a/src/libbasic/src/hostname-util.c b/src/libbasic/src/hostname-util.c
index 13c3bb6446..e66f9a2250 100644
--- a/src/libbasic/src/hostname-util.c
+++ b/src/libbasic/src/hostname-util.c
@@ -24,11 +24,11 @@
#include <sys/utsname.h>
#include <unistd.h>
-#include "fd-util.h"
-#include "fileio.h"
-#include "hostname-util.h"
-#include "macro.h"
-#include "string-util.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/hostname-util.h"
+#include "basic/macro.h"
+#include "basic/string-util.h"
bool hostname_is_set(void) {
struct utsname u;
diff --git a/src/libbasic/src/in-addr-util.c b/src/libbasic/src/in-addr-util.c
index 245107ebb8..7d648ce354 100644
--- a/src/libbasic/src/in-addr-util.c
+++ b/src/libbasic/src/in-addr-util.c
@@ -23,10 +23,10 @@
#include <stdint.h>
#include <stdlib.h>
-#include "alloc-util.h"
-#include "in-addr-util.h"
-#include "macro.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/in-addr-util.h"
+#include "basic/macro.h"
+#include "basic/util.h"
int in_addr_is_null(int family, const union in_addr_union *u) {
assert(u);
diff --git a/src/libbasic/src/io-util.c b/src/libbasic/src/io-util.c
index cc6dfa8c1b..800a7044f6 100644
--- a/src/libbasic/src/io-util.c
+++ b/src/libbasic/src/io-util.c
@@ -24,8 +24,8 @@
#include <time.h>
#include <unistd.h>
-#include "io-util.h"
-#include "time-util.h"
+#include "basic/io-util.h"
+#include "basic/time-util.h"
int flush_fd(int fd) {
struct pollfd pollfd = {
diff --git a/src/libbasic/src/label.c b/src/libbasic/src/label.c
index f5ab855d32..cea374198a 100644
--- a/src/libbasic/src/label.c
+++ b/src/libbasic/src/label.c
@@ -21,10 +21,10 @@
#include <sys/stat.h>
#include <unistd.h>
-#include "label.h"
-#include "macro.h"
-#include "selinux-util.h"
-#include "smack-util.h"
+#include "basic/label.h"
+#include "basic/macro.h"
+#include "basic/selinux-util.h"
+#include "basic/smack-util.h"
int label_fix(const char *path, bool ignore_enoent, bool ignore_erofs) {
int r, q;
diff --git a/src/libbasic/src/locale-util.c b/src/libbasic/src/locale-util.c
index ada0a28cd8..7cedaae319 100644
--- a/src/libbasic/src/locale-util.c
+++ b/src/libbasic/src/locale-util.c
@@ -30,16 +30,16 @@
#include <sys/mman.h>
#include <sys/stat.h>
-#include "dirent-util.h"
-#include "fd-util.h"
-#include "hashmap.h"
-#include "locale-util.h"
-#include "path-util.h"
-#include "set.h"
-#include "string-table.h"
-#include "string-util.h"
-#include "strv.h"
-#include "utf8.h"
+#include "basic/dirent-util.h"
+#include "basic/fd-util.h"
+#include "basic/hashmap.h"
+#include "basic/locale-util.h"
+#include "basic/path-util.h"
+#include "basic/set.h"
+#include "basic/string-table.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/utf8.h"
static int add_locales_from_archive(Set *locales) {
/* Stolen from glibc... */
diff --git a/src/libbasic/src/lockfile-util.c b/src/libbasic/src/lockfile-util.c
index 3ee4191e4d..233627c1a4 100644
--- a/src/libbasic/src/lockfile-util.c
+++ b/src/libbasic/src/lockfile-util.c
@@ -24,12 +24,12 @@
#include <sys/file.h>
#include <sys/stat.h>
-#include "alloc-util.h"
-#include "fd-util.h"
-#include "fs-util.h"
-#include "lockfile-util.h"
-#include "macro.h"
-#include "path-util.h"
+#include "basic/alloc-util.h"
+#include "basic/fd-util.h"
+#include "basic/fs-util.h"
+#include "basic/lockfile-util.h"
+#include "basic/macro.h"
+#include "basic/path-util.h"
int make_lock_file(const char *p, int operation, LockFile *ret) {
_cleanup_close_ int fd = -1;
diff --git a/src/libbasic/src/log.c b/src/libbasic/src/log.c
index 05c4896f55..6028cc7a27 100644
--- a/src/libbasic/src/log.c
+++ b/src/libbasic/src/log.c
@@ -35,25 +35,25 @@
#include <systemd/sd-messages.h>
-#include "alloc-util.h"
-#include "fd-util.h"
-#include "formats-util.h"
-#include "io-util.h"
-#include "log.h"
-#include "macro.h"
-#include "missing.h"
-#include "parse-util.h"
-#include "proc-cmdline.h"
-#include "process-util.h"
-#include "signal-util.h"
-#include "socket-util.h"
-#include "stdio-util.h"
-#include "string-table.h"
-#include "string-util.h"
-#include "syslog-util.h"
-#include "terminal-util.h"
-#include "time-util.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/fd-util.h"
+#include "basic/formats-util.h"
+#include "basic/io-util.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/parse-util.h"
+#include "basic/proc-cmdline.h"
+#include "basic/process-util.h"
+#include "basic/signal-util.h"
+#include "basic/socket-util.h"
+#include "basic/stdio-util.h"
+#include "basic/string-table.h"
+#include "basic/string-util.h"
+#include "basic/syslog-util.h"
+#include "basic/terminal-util.h"
+#include "basic/time-util.h"
+#include "basic/util.h"
#define SNDBUF_SIZE (8*1024*1024)
diff --git a/src/libbasic/src/login-util.c b/src/libbasic/src/login-util.c
index 339e94f12d..fe97f66392 100644
--- a/src/libbasic/src/login-util.c
+++ b/src/libbasic/src/login-util.c
@@ -19,8 +19,8 @@
#include <string.h>
-#include "login-util.h"
-#include "string-util.h"
+#include "basic/login-util.h"
+#include "basic/string-util.h"
bool session_id_valid(const char *id) {
diff --git a/src/libbasic/src/mempool.c b/src/libbasic/src/mempool.c
index f95e2beb0f..0a64c1b29c 100644
--- a/src/libbasic/src/mempool.c
+++ b/src/libbasic/src/mempool.c
@@ -21,9 +21,9 @@
#include <stdint.h>
#include <stdlib.h>
-#include "macro.h"
-#include "mempool.h"
-#include "util.h"
+#include "basic/macro.h"
+#include "basic/mempool.h"
+#include "basic/util.h"
struct pool {
struct pool *next;
diff --git a/src/libbasic/src/mkdir-label.c b/src/libbasic/src/mkdir-label.c
index aa6878cdf0..83a1e925c6 100644
--- a/src/libbasic/src/mkdir-label.c
+++ b/src/libbasic/src/mkdir-label.c
@@ -22,8 +22,8 @@
#include <sys/types.h>
#include <unistd.h>
-#include "label.h"
-#include "mkdir.h"
+#include "basic/label.h"
+#include "basic/mkdir.h"
int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid) {
return mkdir_safe_internal(path, mode, uid, gid, mkdir_label);
diff --git a/src/libbasic/src/mkdir.c b/src/libbasic/src/mkdir.c
index 6b1a98402c..0a7f432f3e 100644
--- a/src/libbasic/src/mkdir.c
+++ b/src/libbasic/src/mkdir.c
@@ -22,12 +22,12 @@
#include <string.h>
#include <sys/stat.h>
-#include "fs-util.h"
-#include "macro.h"
-#include "mkdir.h"
-#include "path-util.h"
-#include "stat-util.h"
-#include "user-util.h"
+#include "basic/fs-util.h"
+#include "basic/macro.h"
+#include "basic/mkdir.h"
+#include "basic/path-util.h"
+#include "basic/stat-util.h"
+#include "basic/user-util.h"
int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, mkdir_func_t _mkdir) {
struct stat st;
diff --git a/src/libbasic/src/mount-util.c b/src/libbasic/src/mount-util.c
index ba698959b7..274ec9d29c 100644
--- a/src/libbasic/src/mount-util.c
+++ b/src/libbasic/src/mount-util.c
@@ -25,17 +25,17 @@
#include <sys/statvfs.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "escape.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "hashmap.h"
-#include "mount-util.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "set.h"
-#include "stdio-util.h"
-#include "string-util.h"
+#include "basic/alloc-util.h"
+#include "basic/escape.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/hashmap.h"
+#include "basic/mount-util.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/set.h"
+#include "basic/stdio-util.h"
+#include "basic/string-util.h"
static int fd_fdinfo_mnt_id(int fd, const char *filename, int flags, int *mnt_id) {
char path[strlen("/proc/self/fdinfo/") + DECIMAL_STR_MAX(int)];
diff --git a/src/libbasic/src/ordered-set.c b/src/libbasic/src/ordered-set.c
index 2e0bdf6488..fc6c3c018c 100644
--- a/src/libbasic/src/ordered-set.c
+++ b/src/libbasic/src/ordered-set.c
@@ -17,8 +17,8 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include "ordered-set.h"
-#include "strv.h"
+#include "basic/ordered-set.h"
+#include "basic/strv.h"
int ordered_set_consume(OrderedSet *s, void *p) {
int r;
diff --git a/src/libbasic/src/parse-util.c b/src/libbasic/src/parse-util.c
index 6c11b605a9..b6a99c7cdb 100644
--- a/src/libbasic/src/parse-util.c
+++ b/src/libbasic/src/parse-util.c
@@ -25,11 +25,11 @@
#include <string.h>
#include <xlocale.h>
-#include "alloc-util.h"
-#include "extract-word.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "string-util.h"
+#include "basic/alloc-util.h"
+#include "basic/extract-word.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/string-util.h"
int parse_boolean(const char *v) {
assert(v);
diff --git a/src/libbasic/src/prioq.c b/src/libbasic/src/prioq.c
index d2ec516d29..f29c80b5fc 100644
--- a/src/libbasic/src/prioq.c
+++ b/src/libbasic/src/prioq.c
@@ -30,9 +30,9 @@
#include <errno.h>
#include <stdlib.h>
-#include "alloc-util.h"
-#include "hashmap.h"
-#include "prioq.h"
+#include "basic/alloc-util.h"
+#include "basic/hashmap.h"
+#include "basic/prioq.h"
struct prioq_item {
void *data;
diff --git a/src/libbasic/src/proc-cmdline.c b/src/libbasic/src/proc-cmdline.c
index 3505fa9c9a..e35a21ac0d 100644
--- a/src/libbasic/src/proc-cmdline.c
+++ b/src/libbasic/src/proc-cmdline.c
@@ -21,17 +21,17 @@
#include <stddef.h>
#include <string.h>
-#include "alloc-util.h"
-#include "extract-word.h"
-#include "fileio.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "proc-cmdline.h"
-#include "process-util.h"
-#include "special.h"
-#include "string-util.h"
-#include "util.h"
-#include "virt.h"
+#include "basic/alloc-util.h"
+#include "basic/extract-word.h"
+#include "basic/fileio.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/proc-cmdline.h"
+#include "basic/process-util.h"
+#include "basic/special.h"
+#include "basic/string-util.h"
+#include "basic/util.h"
+#include "basic/virt.h"
int proc_cmdline(char **ret) {
assert(ret);
diff --git a/src/libbasic/src/process-util.c b/src/libbasic/src/process-util.c
index 1ad8816206..02d6f3cca3 100644
--- a/src/libbasic/src/process-util.c
+++ b/src/libbasic/src/process-util.c
@@ -20,7 +20,6 @@
#include <ctype.h>
#include <errno.h>
#include <limits.h>
-#include <linux/oom.h>
#include <sched.h>
#include <signal.h>
#include <stdbool.h>
@@ -33,6 +32,8 @@
#include <sys/wait.h>
#include <syslog.h>
#include <unistd.h>
+
+#include <linux/oom.h>
#ifdef HAVE_VALGRIND_VALGRIND_H
#include <valgrind/valgrind.h>
#endif
diff --git a/src/libbasic/src/random-util.c b/src/libbasic/src/random-util.c
index 2f468db770..6f797879eb 100644
--- a/src/libbasic/src/random-util.c
+++ b/src/libbasic/src/random-util.c
@@ -21,10 +21,11 @@
#include <errno.h>
#include <fcntl.h>
#include <stdbool.h>
+#include <stdint.h>
#include <stdlib.h>
#include <sys/time.h>
+
#include <linux/random.h>
-#include <stdint.h>
#ifdef HAVE_SYS_AUXV_H
#include <sys/auxv.h>
diff --git a/src/libbasic/src/ratelimit.c b/src/libbasic/src/ratelimit.c
index 3ca5625e4d..366aeb6d9a 100644
--- a/src/libbasic/src/ratelimit.c
+++ b/src/libbasic/src/ratelimit.c
@@ -20,8 +20,8 @@
#include <sys/time.h>
-#include "macro.h"
-#include "ratelimit.h"
+#include "basic/macro.h"
+#include "basic/ratelimit.h"
/* Modelled after Linux' lib/ratelimit.c by Dave Young
* <hidave.darkstar@gmail.com>, which is licensed GPLv2. */
diff --git a/src/libbasic/src/replace-var.c b/src/libbasic/src/replace-var.c
index 6a204b9ec3..50e60221ad 100644
--- a/src/libbasic/src/replace-var.c
+++ b/src/libbasic/src/replace-var.c
@@ -22,10 +22,10 @@
#include <stdlib.h>
#include <string.h>
-#include "alloc-util.h"
-#include "macro.h"
-#include "replace-var.h"
-#include "string-util.h"
+#include "basic/alloc-util.h"
+#include "basic/macro.h"
+#include "basic/replace-var.h"
+#include "basic/string-util.h"
/*
* Generic infrastructure for replacing @FOO@ style variables in
diff --git a/src/libbasic/src/rlimit-util.c b/src/libbasic/src/rlimit-util.c
index ee063720ed..3a8196d9c1 100644
--- a/src/libbasic/src/rlimit-util.c
+++ b/src/libbasic/src/rlimit-util.c
@@ -20,14 +20,14 @@
#include <errno.h>
#include <sys/resource.h>
-#include "alloc-util.h"
-#include "extract-word.h"
-#include "formats-util.h"
-#include "macro.h"
-#include "missing.h"
-#include "rlimit-util.h"
-#include "string-table.h"
-#include "time-util.h"
+#include "basic/alloc-util.h"
+#include "basic/extract-word.h"
+#include "basic/formats-util.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/rlimit-util.h"
+#include "basic/string-table.h"
+#include "basic/time-util.h"
int setrlimit_closest(int resource, const struct rlimit *rlim) {
struct rlimit highest, fixed;
diff --git a/src/libbasic/src/rm-rf.c b/src/libbasic/src/rm-rf.c
index 43816fd1bb..b05b512aee 100644
--- a/src/libbasic/src/rm-rf.c
+++ b/src/libbasic/src/rm-rf.c
@@ -26,15 +26,15 @@
#include <sys/statfs.h>
#include <unistd.h>
-#include "btrfs-util.h"
-#include "fd-util.h"
-#include "log.h"
-#include "macro.h"
-#include "mount-util.h"
-#include "path-util.h"
-#include "rm-rf.h"
-#include "stat-util.h"
-#include "string-util.h"
+#include "basic/btrfs-util.h"
+#include "basic/fd-util.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/mount-util.h"
+#include "basic/path-util.h"
+#include "basic/rm-rf.h"
+#include "basic/stat-util.h"
+#include "basic/string-util.h"
int rm_rf_children(int fd, RemoveFlags flags, struct stat *root_dev) {
_cleanup_closedir_ DIR *d = NULL;
diff --git a/src/libbasic/src/sigbus.c b/src/libbasic/src/sigbus.c
index 0ce4f75684..7249f812d7 100644
--- a/src/libbasic/src/sigbus.c
+++ b/src/libbasic/src/sigbus.c
@@ -22,9 +22,9 @@
#include <stddef.h>
#include <sys/mman.h>
-#include "macro.h"
-#include "sigbus.h"
-#include "util.h"
+#include "basic/macro.h"
+#include "basic/sigbus.h"
+#include "basic/util.h"
#define SIGBUS_QUEUE_MAX 64
diff --git a/src/libbasic/src/signal-util.c b/src/libbasic/src/signal-util.c
index 280b5c3251..ade7bff364 100644
--- a/src/libbasic/src/signal-util.c
+++ b/src/libbasic/src/signal-util.c
@@ -21,12 +21,12 @@
#include <stdarg.h>
#include <stdio.h>
-#include "macro.h"
-#include "parse-util.h"
-#include "signal-util.h"
-#include "stdio-util.h"
-#include "string-table.h"
-#include "string-util.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/signal-util.h"
+#include "basic/stdio-util.h"
+#include "basic/string-table.h"
+#include "basic/string-util.h"
int reset_all_signal_handlers(void) {
static const struct sigaction sa = {
diff --git a/src/libbasic/src/siphash24.c b/src/libbasic/src/siphash24.c
index 060e8ba387..8fbc05b435 100644
--- a/src/libbasic/src/siphash24.c
+++ b/src/libbasic/src/siphash24.c
@@ -17,9 +17,9 @@
coding style)
*/
-#include "macro.h"
-#include "siphash24.h"
-#include "unaligned.h"
+#include "basic/macro.h"
+#include "basic/siphash24.h"
+#include "basic/unaligned.h"
static inline uint64_t rotate_left(uint64_t x, uint8_t b) {
assert(b < 64);
diff --git a/src/libbasic/src/smack-util.c b/src/libbasic/src/smack-util.c
index 3a3df987df..c3ce6bd4ac 100644
--- a/src/libbasic/src/smack-util.c
+++ b/src/libbasic/src/smack-util.c
@@ -25,15 +25,15 @@
#include <sys/xattr.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "fileio.h"
-#include "log.h"
-#include "macro.h"
-#include "path-util.h"
-#include "process-util.h"
-#include "smack-util.h"
-#include "string-table.h"
-#include "xattr-util.h"
+#include "basic/alloc-util.h"
+#include "basic/fileio.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/path-util.h"
+#include "basic/process-util.h"
+#include "basic/smack-util.h"
+#include "basic/string-table.h"
+#include "basic/xattr-util.h"
#ifdef HAVE_SMACK
bool mac_smack_use(void) {
diff --git a/src/libbasic/src/socket-label.c b/src/libbasic/src/socket-label.c
index 6d1dc83874..75036f451f 100644
--- a/src/libbasic/src/socket-label.c
+++ b/src/libbasic/src/socket-label.c
@@ -26,15 +26,15 @@
#include <sys/un.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "fd-util.h"
-#include "log.h"
-#include "macro.h"
-#include "missing.h"
-#include "mkdir.h"
-#include "selinux-util.h"
-#include "socket-util.h"
-#include "umask-util.h"
+#include "basic/alloc-util.h"
+#include "basic/fd-util.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/mkdir.h"
+#include "basic/selinux-util.h"
+#include "basic/socket-util.h"
+#include "basic/umask-util.h"
int socket_address_listen(
const SocketAddress *a,
diff --git a/src/libbasic/src/socket-util.c b/src/libbasic/src/socket-util.c
index c8769a54f4..9e1bf1d91d 100644
--- a/src/libbasic/src/socket-util.c
+++ b/src/libbasic/src/socket-util.c
@@ -31,22 +31,22 @@
#include <string.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "formats-util.h"
-#include "log.h"
-#include "macro.h"
-#include "missing.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "socket-util.h"
-#include "string-table.h"
-#include "string-util.h"
-#include "strv.h"
-#include "user-util.h"
-#include "utf8.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/formats-util.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/socket-util.h"
+#include "basic/string-table.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/user-util.h"
+#include "basic/utf8.h"
+#include "basic/util.h"
int socket_address_parse(SocketAddress *a, const char *s) {
char *e, *n;
diff --git a/src/libbasic/src/stat-util.c b/src/libbasic/src/stat-util.c
index 309e84b93d..9ddede98c9 100644
--- a/src/libbasic/src/stat-util.c
+++ b/src/libbasic/src/stat-util.c
@@ -21,17 +21,18 @@
#include <errno.h>
#include <fcntl.h>
#include <sys/stat.h>
-#include <sys/types.h>
-#include <linux/magic.h>
#include <sys/statvfs.h>
+#include <sys/types.h>
#include <unistd.h>
-#include "dirent-util.h"
-#include "fd-util.h"
-#include "macro.h"
-#include "missing.h"
-#include "stat-util.h"
-#include "string-util.h"
+#include <linux/magic.h>
+
+#include "basic/dirent-util.h"
+#include "basic/fd-util.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/stat-util.h"
+#include "basic/string-util.h"
int is_symlink(const char *path) {
struct stat info;
diff --git a/src/libbasic/src/strbuf.c b/src/libbasic/src/strbuf.c
index 4bef87d3c2..3b6fafeb30 100644
--- a/src/libbasic/src/strbuf.c
+++ b/src/libbasic/src/strbuf.c
@@ -21,8 +21,8 @@
#include <stdlib.h>
#include <string.h>
-#include "alloc-util.h"
-#include "strbuf.h"
+#include "basic/alloc-util.h"
+#include "basic/strbuf.h"
/*
* Strbuf stores given strings in a single continuous allocated memory
diff --git a/src/libbasic/src/string-table.c b/src/libbasic/src/string-table.c
index a1499ab126..fae5e944b5 100644
--- a/src/libbasic/src/string-table.c
+++ b/src/libbasic/src/string-table.c
@@ -17,8 +17,8 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include "string-table.h"
-#include "string-util.h"
+#include "basic/string-table.h"
+#include "basic/string-util.h"
ssize_t string_table_lookup(const char * const *table, size_t len, const char *key) {
size_t i;
diff --git a/src/libbasic/src/string-util.c b/src/libbasic/src/string-util.c
index 293a15f9c0..003a20a41d 100644
--- a/src/libbasic/src/string-util.c
+++ b/src/libbasic/src/string-util.c
@@ -23,12 +23,12 @@
#include <stdio.h>
#include <stdlib.h>
-#include "alloc-util.h"
-#include "gunicode.h"
-#include "macro.h"
-#include "string-util.h"
-#include "utf8.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/gunicode.h"
+#include "basic/macro.h"
+#include "basic/string-util.h"
+#include "basic/utf8.h"
+#include "basic/util.h"
int strcmp_ptr(const char *a, const char *b) {
diff --git a/src/libbasic/src/strv.c b/src/libbasic/src/strv.c
index 97a96e5762..aadbef953c 100644
--- a/src/libbasic/src/strv.c
+++ b/src/libbasic/src/strv.c
@@ -24,13 +24,13 @@
#include <stdlib.h>
#include <string.h>
-#include "alloc-util.h"
-#include "escape.h"
-#include "extract-word.h"
-#include "fileio.h"
-#include "string-util.h"
-#include "strv.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/escape.h"
+#include "basic/extract-word.h"
+#include "basic/fileio.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/util.h"
char *strv_find(char **l, const char *name) {
char **i;
diff --git a/src/libbasic/src/strxcpyx.c b/src/libbasic/src/strxcpyx.c
index aaf11d21f6..b6225f0e12 100644
--- a/src/libbasic/src/strxcpyx.c
+++ b/src/libbasic/src/strxcpyx.c
@@ -27,7 +27,7 @@
#include <stdio.h>
#include <string.h>
-#include "strxcpyx.h"
+#include "basic/strxcpyx.h"
size_t strpcpy(char **dest, size_t size, const char *src) {
size_t len;
diff --git a/src/libbasic/src/syslog-util.c b/src/libbasic/src/syslog-util.c
index db3405154e..8647f2a2d6 100644
--- a/src/libbasic/src/syslog-util.c
+++ b/src/libbasic/src/syslog-util.c
@@ -20,10 +20,10 @@
#include <string.h>
#include <syslog.h>
-#include "hexdecoct.h"
-#include "macro.h"
-#include "string-table.h"
-#include "syslog-util.h"
+#include "basic/hexdecoct.h"
+#include "basic/macro.h"
+#include "basic/string-table.h"
+#include "basic/syslog-util.h"
int syslog_parse_priority(const char **p, int *priority, bool with_facility) {
int a = 0, b = 0, c = 0;
diff --git a/src/libbasic/src/terminal-util.c b/src/libbasic/src/terminal-util.c
index 9521b79daa..45b7864a2f 100644
--- a/src/libbasic/src/terminal-util.c
+++ b/src/libbasic/src/terminal-util.c
@@ -20,39 +20,40 @@
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
+#include <poll.h>
+#include <signal.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <sys/inotify.h>
+#include <sys/ioctl.h>
#include <sys/socket.h>
#include <sys/sysmacros.h>
#include <sys/time.h>
-#include <linux/kd.h>
-#include <linux/tiocl.h>
-#include <linux/vt.h>
-#include <poll.h>
-#include <signal.h>
-#include <sys/ioctl.h>
#include <sys/types.h>
#include <termios.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "fs-util.h"
-#include "io-util.h"
-#include "log.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "process-util.h"
-#include "socket-util.h"
-#include "stat-util.h"
-#include "string-util.h"
-#include "terminal-util.h"
-#include "time-util.h"
-#include "util.h"
+#include <linux/kd.h>
+#include <linux/tiocl.h>
+#include <linux/vt.h>
+
+#include "basic/alloc-util.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/fs-util.h"
+#include "basic/io-util.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/process-util.h"
+#include "basic/socket-util.h"
+#include "basic/stat-util.h"
+#include "basic/string-util.h"
+#include "basic/terminal-util.h"
+#include "basic/time-util.h"
+#include "basic/util.h"
static volatile unsigned cached_columns = 0;
static volatile unsigned cached_lines = 0;
diff --git a/src/libbasic/src/time-util.c b/src/libbasic/src/time-util.c
index edd9179cb8..05f5ad7dc7 100644
--- a/src/libbasic/src/time-util.c
+++ b/src/libbasic/src/time-util.c
@@ -28,17 +28,17 @@
#include <sys/types.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "fs-util.h"
-#include "log.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "string-util.h"
-#include "strv.h"
-#include "time-util.h"
+#include "basic/alloc-util.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/fs-util.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/time-util.h"
static nsec_t timespec_load_nsec(const struct timespec *ts);
diff --git a/src/libbasic/src/unit-name.c b/src/libbasic/src/unit-name.c
index fe883b95c7..42c79da536 100644
--- a/src/libbasic/src/unit-name.c
+++ b/src/libbasic/src/unit-name.c
@@ -23,16 +23,16 @@
#include <stdlib.h>
#include <string.h>
-#include "alloc-util.h"
-#include "bus-label.h"
-#include "glob-util.h"
-#include "hexdecoct.h"
-#include "macro.h"
-#include "path-util.h"
-#include "string-table.h"
-#include "string-util.h"
-#include "strv.h"
-#include "unit-name.h"
+#include "basic/alloc-util.h"
+#include "basic/bus-label.h"
+#include "basic/glob-util.h"
+#include "basic/hexdecoct.h"
+#include "basic/macro.h"
+#include "basic/path-util.h"
+#include "basic/string-table.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/unit-name.h"
/* Characters valid in a unit name. */
#define VALID_CHARS \
diff --git a/src/libbasic/src/user-util.c b/src/libbasic/src/user-util.c
index f65ca3edaa..c85eb06491 100644
--- a/src/libbasic/src/user-util.c
+++ b/src/libbasic/src/user-util.c
@@ -30,15 +30,15 @@
#include <sys/stat.h>
#include <unistd.h>
-#include "missing.h"
-#include "alloc-util.h"
-#include "fd-util.h"
-#include "formats-util.h"
-#include "macro.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "string-util.h"
-#include "user-util.h"
+#include "basic/alloc-util.h"
+#include "basic/fd-util.h"
+#include "basic/formats-util.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/string-util.h"
+#include "basic/user-util.h"
bool uid_is_valid(uid_t uid) {
diff --git a/src/libbasic/src/utf8.c b/src/libbasic/src/utf8.c
index 6eae2b983d..b5144b7312 100644
--- a/src/libbasic/src/utf8.c
+++ b/src/libbasic/src/utf8.c
@@ -46,10 +46,10 @@
#include <stdlib.h>
#include <string.h>
-#include "alloc-util.h"
-#include "hexdecoct.h"
-#include "macro.h"
-#include "utf8.h"
+#include "basic/alloc-util.h"
+#include "basic/hexdecoct.h"
+#include "basic/macro.h"
+#include "basic/utf8.h"
bool unichar_is_valid(char32_t ch) {
diff --git a/src/libbasic/src/util.c b/src/libbasic/src/util.c
index 756c663be4..d0db8a28fb 100644
--- a/src/libbasic/src/util.c
+++ b/src/libbasic/src/util.c
@@ -34,30 +34,30 @@
#include <sys/types.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "build.h"
-#include "def.h"
-#include "dirent-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "formats-util.h"
-#include "hashmap.h"
-#include "hostname-util.h"
-#include "log.h"
-#include "macro.h"
-#include "missing.h"
-#include "parse-util.h"
-#include "path-util.h"
-#include "process-util.h"
-#include "set.h"
-#include "signal-util.h"
-#include "stat-util.h"
-#include "string-util.h"
-#include "strv.h"
-#include "time-util.h"
-#include "umask-util.h"
-#include "user-util.h"
-#include "util.h"
+#include "basic/alloc-util.h"
+#include "basic/build.h"
+#include "basic/def.h"
+#include "basic/dirent-util.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/formats-util.h"
+#include "basic/hashmap.h"
+#include "basic/hostname-util.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/missing.h"
+#include "basic/parse-util.h"
+#include "basic/path-util.h"
+#include "basic/process-util.h"
+#include "basic/set.h"
+#include "basic/signal-util.h"
+#include "basic/stat-util.h"
+#include "basic/string-util.h"
+#include "basic/strv.h"
+#include "basic/time-util.h"
+#include "basic/umask-util.h"
+#include "basic/user-util.h"
+#include "basic/util.h"
/* Put this test here for a lack of better place */
assert_cc(EAGAIN == EWOULDBLOCK);
diff --git a/src/libbasic/src/verbs.c b/src/libbasic/src/verbs.c
index d9cdb38d65..526e0fc338 100644
--- a/src/libbasic/src/verbs.c
+++ b/src/libbasic/src/verbs.c
@@ -22,11 +22,11 @@
#include <stdbool.h>
#include <stddef.h>
-#include "log.h"
-#include "macro.h"
-#include "string-util.h"
-#include "verbs.h"
-#include "virt.h"
+#include "basic/log.h"
+#include "basic/macro.h"
+#include "basic/string-util.h"
+#include "basic/verbs.h"
+#include "basic/virt.h"
int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata) {
const Verb *verb;
diff --git a/src/libbasic/src/virt.c b/src/libbasic/src/virt.c
index dace1f4328..33a74f16cf 100644
--- a/src/libbasic/src/virt.c
+++ b/src/libbasic/src/virt.c
@@ -23,16 +23,16 @@
#include <string.h>
#include <unistd.h>
-#include "alloc-util.h"
-#include "dirent-util.h"
-#include "fd-util.h"
-#include "fileio.h"
-#include "macro.h"
-#include "process-util.h"
-#include "stat-util.h"
-#include "string-table.h"
-#include "string-util.h"
-#include "virt.h"
+#include "basic/alloc-util.h"
+#include "basic/dirent-util.h"
+#include "basic/fd-util.h"
+#include "basic/fileio.h"
+#include "basic/macro.h"
+#include "basic/process-util.h"
+#include "basic/stat-util.h"
+#include "basic/string-table.h"
+#include "basic/string-util.h"
+#include "basic/virt.h"
static int detect_vm_cpuid(void) {
diff --git a/src/libbasic/src/web-util.c b/src/libbasic/src/web-util.c
index 595688ed93..a68813ffb8 100644
--- a/src/libbasic/src/web-util.c
+++ b/src/libbasic/src/web-util.c
@@ -19,9 +19,9 @@
#include <stdbool.h>
-#include "string-util.h"
-#include "utf8.h"
-#include "web-util.h"
+#include "basic/string-util.h"
+#include "basic/utf8.h"
+#include "basic/web-util.h"
bool http_etag_is_valid(const char *etag) {
if (isempty(etag))
diff --git a/src/libbasic/src/xattr-util.c b/src/libbasic/src/xattr-util.c
index 8256899eda..07f063e10b 100644
--- a/src/libbasic/src/xattr-util.c
+++ b/src/libbasic/src/xattr-util.c
@@ -25,13 +25,13 @@
#include <sys/time.h>
#include <sys/xattr.h>
-#include "alloc-util.h"
-#include "fd-util.h"
-#include "macro.h"
-#include "sparse-endian.h"
-#include "stdio-util.h"
-#include "time-util.h"
-#include "xattr-util.h"
+#include "basic/alloc-util.h"
+#include "basic/fd-util.h"
+#include "basic/macro.h"
+#include "basic/sparse-endian.h"
+#include "basic/stdio-util.h"
+#include "basic/time-util.h"
+#include "basic/xattr-util.h"
int getxattr_malloc(const char *path, const char *name, char **value, bool allow_symlink) {
char *v;
diff --git a/src/libbasic/src/xml.c b/src/libbasic/src/xml.c
index 1dbeac7324..273fe51fa9 100644
--- a/src/libbasic/src/xml.c
+++ b/src/libbasic/src/xml.c
@@ -21,9 +21,9 @@
#include <stddef.h>
#include <string.h>
-#include "macro.h"
-#include "string-util.h"
-#include "xml.h"
+#include "basic/macro.h"
+#include "basic/string-util.h"
+#include "basic/xml.h"
enum {
STATE_NULL,