From 760877e90cfdf1efd12e12ad29ce47d0ed1503dc Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 13 Mar 2019 12:14:47 +0100 Subject: [PATCH] util: split out sorting related calls to new sort-util.[ch] --- src/analyze/analyze.c | 3 +- src/basic/conf-files.c | 2 +- src/basic/meson.build | 2 + src/basic/sort-util.c | 27 ++++++++ src/basic/sort-util.h | 70 ++++++++++++++++++++ src/basic/strbuf.c | 2 +- src/basic/strv.c | 2 +- src/basic/util.c | 25 ------- src/basic/util.h | 64 ------------------ src/busctl/busctl.c | 2 +- src/cgtop/cgtop.c | 2 +- src/core/job.c | 1 + src/core/namespace.c | 2 +- src/journal/catalog.c | 1 + src/journal/journal-file.c | 1 + src/journal/journal-vacuum.c | 2 +- src/libsystemd-network/sd-lldp.c | 1 + src/libsystemd/sd-bus/bus-match.c | 1 + src/libsystemd/sd-device/device-enumerator.c | 2 +- src/libsystemd/sd-hwdb/hwdb-util.c | 1 + src/libsystemd/sd-netlink/local-addresses.c | 1 + src/machine/machinectl.c | 2 +- src/mount/mount-tool.c | 3 +- src/network/networkctl.c | 2 +- src/nspawn/nspawn-mount.c | 2 +- src/portable/portable.c | 1 + src/resolve/resolved-dns-dnssec.c | 1 + src/resolve/resolved-dns-trust-anchor.c | 3 +- src/resolve/resolved-mdns.c | 1 + src/shared/bootspec.c | 1 + src/shared/bus-unit-util.c | 2 +- src/shared/calendarspec.c | 1 + src/shared/cgroup-show.c | 1 + src/shared/efivars.c | 2 +- src/shared/format-table.c | 1 + src/shared/uid-range.c | 2 +- src/systemctl/systemctl.c | 1 + src/test/test-prioq.c | 2 +- src/tmpfiles/tmpfiles.c | 2 +- 39 files changed, 136 insertions(+), 108 deletions(-) create mode 100644 src/basic/sort-util.c create mode 100644 src/basic/sort-util.h diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c index 77adbed83d..f838daada8 100644 --- a/src/analyze/analyze.c +++ b/src/analyze/analyze.c @@ -36,11 +36,12 @@ #if HAVE_SECCOMP # include "seccomp-util.h" #endif +#include "sort-util.h" #include "special.h" #include "strv.h" #include "strxcpyx.h" -#include "time-util.h" #include "terminal-util.h" +#include "time-util.h" #include "unit-name.h" #include "util.h" #include "verbs.h" diff --git a/src/basic/conf-files.c b/src/basic/conf-files.c index b70c6e50a8..d010fbb266 100644 --- a/src/basic/conf-files.c +++ b/src/basic/conf-files.c @@ -17,11 +17,11 @@ #include "missing.h" #include "path-util.h" #include "set.h" +#include "sort-util.h" #include "stat-util.h" #include "string-util.h" #include "strv.h" #include "terminal-util.h" -#include "util.h" static int files_add( Hashmap *h, diff --git a/src/basic/meson.build b/src/basic/meson.build index 3d382b3940..30466ce946 100644 --- a/src/basic/meson.build +++ b/src/basic/meson.build @@ -174,6 +174,8 @@ basic_sources = files(''' socket-label.c socket-util.c socket-util.h + sort-util.c + sort-util.h sparse-endian.h special.h stat-util.c diff --git a/src/basic/sort-util.c b/src/basic/sort-util.c new file mode 100644 index 0000000000..5cf0d1d49b --- /dev/null +++ b/src/basic/sort-util.c @@ -0,0 +1,27 @@ +#include "sort-util.h" +#include "alloc-util.h" + +/* hey glibc, APIs with callbacks without a user pointer are so useless */ +void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size, + __compar_d_fn_t compar, void *arg) { + size_t l, u, idx; + const void *p; + int comparison; + + assert(!size_multiply_overflow(nmemb, size)); + + l = 0; + u = nmemb; + while (l < u) { + idx = (l + u) / 2; + p = (const uint8_t*) base + idx * size; + comparison = compar(key, p, arg); + if (comparison < 0) + u = idx; + else if (comparison > 0) + l = idx + 1; + else + return (void *)p; + } + return NULL; +} diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h new file mode 100644 index 0000000000..e029f8646e --- /dev/null +++ b/src/basic/sort-util.h @@ -0,0 +1,70 @@ +/* SPDX-License-Identifier: LGPL-2.1+ */ +#pragma once + +#include + +#include "macro.h" + +void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size, + __compar_d_fn_t compar, void *arg); + +#define typesafe_bsearch_r(k, b, n, func, userdata) \ + ({ \ + const typeof(b[0]) *_k = k; \ + int (*_func_)(const typeof(b[0])*, const typeof(b[0])*, typeof(userdata)) = func; \ + xbsearch_r((const void*) _k, (b), (n), sizeof((b)[0]), (__compar_d_fn_t) _func_, userdata); \ + }) + +/** + * Normal bsearch requires base to be nonnull. Here were require + * that only if nmemb > 0. + */ +static inline void* bsearch_safe(const void *key, const void *base, + size_t nmemb, size_t size, __compar_fn_t compar) { + if (nmemb <= 0) + return NULL; + + assert(base); + return bsearch(key, base, nmemb, size, compar); +} + +#define typesafe_bsearch(k, b, n, func) \ + ({ \ + const typeof(b[0]) *_k = k; \ + int (*_func_)(const typeof(b[0])*, const typeof(b[0])*) = func; \ + bsearch_safe((const void*) _k, (b), (n), sizeof((b)[0]), (__compar_fn_t) _func_); \ + }) + +/** + * Normal qsort requires base to be nonnull. Here were require + * that only if nmemb > 0. + */ +static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn_t compar) { + if (nmemb <= 1) + return; + + assert(base); + qsort(base, nmemb, size, compar); +} + +/* A wrapper around the above, but that adds typesafety: the element size is automatically derived from the type and so + * is the prototype for the comparison function */ +#define typesafe_qsort(p, n, func) \ + ({ \ + int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \ + qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \ + }) + +static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) { + if (nmemb <= 1) + return; + + assert(base); + qsort_r(base, nmemb, size, compar, userdata); +} + +#define typesafe_qsort_r(p, n, func, userdata) \ + ({ \ + int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \ + qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \ + }) diff --git a/src/basic/strbuf.c b/src/basic/strbuf.c index 81f4f21ade..769b22aba0 100644 --- a/src/basic/strbuf.c +++ b/src/basic/strbuf.c @@ -5,8 +5,8 @@ #include #include "alloc-util.h" +#include "sort-util.h" #include "strbuf.h" -#include "util.h" /* * Strbuf stores given strings in a single continuous allocated memory diff --git a/src/basic/strv.c b/src/basic/strv.c index 3a62f25ded..3700ce5b30 100644 --- a/src/basic/strv.c +++ b/src/basic/strv.c @@ -11,9 +11,9 @@ #include "escape.h" #include "extract-word.h" #include "fileio.h" +#include "sort-util.h" #include "string-util.h" #include "strv.h" -#include "util.h" char *strv_find(char **l, const char *name) { char **i; diff --git a/src/basic/util.c b/src/basic/util.c index fd0277b5df..ce3e321925 100644 --- a/src/basic/util.c +++ b/src/basic/util.c @@ -126,31 +126,6 @@ void in_initrd_force(bool value) { saved_in_initrd = value; } -/* hey glibc, APIs with callbacks without a user pointer are so useless */ -void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size, - __compar_d_fn_t compar, void *arg) { - size_t l, u, idx; - const void *p; - int comparison; - - assert(!size_multiply_overflow(nmemb, size)); - - l = 0; - u = nmemb; - while (l < u) { - idx = (l + u) / 2; - p = (const uint8_t*) base + idx * size; - comparison = compar(key, p, arg); - if (comparison < 0) - u = idx; - else if (comparison > 0) - l = idx + 1; - else - return (void *)p; - } - return NULL; -} - int on_ac_power(void) { bool found_offline = false, found_online = false; _cleanup_closedir_ DIR *d = NULL; diff --git a/src/basic/util.h b/src/basic/util.h index 3c29586749..02fc31e69e 100644 --- a/src/basic/util.h +++ b/src/basic/util.h @@ -63,70 +63,6 @@ int prot_from_flags(int flags) _const_; bool in_initrd(void); void in_initrd_force(bool value); -void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size, - __compar_d_fn_t compar, void *arg); - -#define typesafe_bsearch_r(k, b, n, func, userdata) \ - ({ \ - const typeof(b[0]) *_k = k; \ - int (*_func_)(const typeof(b[0])*, const typeof(b[0])*, typeof(userdata)) = func; \ - xbsearch_r((const void*) _k, (b), (n), sizeof((b)[0]), (__compar_d_fn_t) _func_, userdata); \ - }) - -/** - * Normal bsearch requires base to be nonnull. Here were require - * that only if nmemb > 0. - */ -static inline void* bsearch_safe(const void *key, const void *base, - size_t nmemb, size_t size, __compar_fn_t compar) { - if (nmemb <= 0) - return NULL; - - assert(base); - return bsearch(key, base, nmemb, size, compar); -} - -#define typesafe_bsearch(k, b, n, func) \ - ({ \ - const typeof(b[0]) *_k = k; \ - int (*_func_)(const typeof(b[0])*, const typeof(b[0])*) = func; \ - bsearch_safe((const void*) _k, (b), (n), sizeof((b)[0]), (__compar_fn_t) _func_); \ - }) - -/** - * Normal qsort requires base to be nonnull. Here were require - * that only if nmemb > 0. - */ -static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn_t compar) { - if (nmemb <= 1) - return; - - assert(base); - qsort(base, nmemb, size, compar); -} - -/* A wrapper around the above, but that adds typesafety: the element size is automatically derived from the type and so - * is the prototype for the comparison function */ -#define typesafe_qsort(p, n, func) \ - ({ \ - int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \ - qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \ - }) - -static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) { - if (nmemb <= 1) - return; - - assert(base); - qsort_r(base, nmemb, size, compar, userdata); -} - -#define typesafe_qsort_r(p, n, func, userdata) \ - ({ \ - int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \ - qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \ - }) - int on_ac_power(void); static inline void _reset_errno_(int *saved_errno) { diff --git a/src/busctl/busctl.c b/src/busctl/busctl.c index a61fd2e706..c8125c6606 100644 --- a/src/busctl/busctl.c +++ b/src/busctl/busctl.c @@ -25,10 +25,10 @@ #include "path-util.h" #include "pretty-print.h" #include "set.h" +#include "sort-util.h" #include "strv.h" #include "terminal-util.h" #include "user-util.h" -#include "util.h" #include "verbs.h" static enum { diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c index ab3b979eaf..eb9ccd0cb0 100644 --- a/src/cgtop/cgtop.c +++ b/src/cgtop/cgtop.c @@ -25,11 +25,11 @@ #include "pretty-print.h" #include "process-util.h" #include "procfs-util.h" +#include "sort-util.h" #include "stdio-util.h" #include "strv.h" #include "terminal-util.h" #include "unit-name.h" -#include "util.h" #include "virt.h" typedef struct Group { diff --git a/src/core/job.c b/src/core/job.c index b2aa0c600f..81f5f9cb72 100644 --- a/src/core/job.c +++ b/src/core/job.c @@ -17,6 +17,7 @@ #include "parse-util.h" #include "serialize.h" #include "set.h" +#include "sort-util.h" #include "special.h" #include "stdio-util.h" #include "string-table.h" diff --git a/src/core/namespace.c b/src/core/namespace.c index 3657e935ee..582f6cb249 100644 --- a/src/core/namespace.c +++ b/src/core/namespace.c @@ -26,13 +26,13 @@ #include "path-util.h" #include "selinux-util.h" #include "socket-util.h" +#include "sort-util.h" #include "stat-util.h" #include "string-table.h" #include "string-util.h" #include "strv.h" #include "umask-util.h" #include "user-util.h" -#include "util.h" #define DEV_MOUNT_OPTIONS (MS_NOSUID|MS_STRICTATIME|MS_NOEXEC) diff --git a/src/journal/catalog.c b/src/journal/catalog.c index b0856f4583..21c0eaac9f 100644 --- a/src/journal/catalog.c +++ b/src/journal/catalog.c @@ -21,6 +21,7 @@ #include "mkdir.h" #include "path-util.h" #include "siphash24.h" +#include "sort-util.h" #include "sparse-endian.h" #include "strbuf.h" #include "string-util.h" diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index 6b4f07c85f..e0f06a21bb 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -27,6 +27,7 @@ #include "path-util.h" #include "random-util.h" #include "set.h" +#include "sort-util.h" #include "stat-util.h" #include "string-util.h" #include "strv.h" diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c index 2778ce40c5..a932314e19 100644 --- a/src/journal/journal-vacuum.c +++ b/src/journal/journal-vacuum.c @@ -14,9 +14,9 @@ #include "journal-file.h" #include "journal-vacuum.h" #include "parse-util.h" +#include "sort-util.h" #include "string-util.h" #include "time-util.h" -#include "util.h" #include "xattr-util.h" struct vacuum_info { diff --git a/src/libsystemd-network/sd-lldp.c b/src/libsystemd-network/sd-lldp.c index 3460dc09bd..1f28c5731f 100644 --- a/src/libsystemd-network/sd-lldp.c +++ b/src/libsystemd-network/sd-lldp.c @@ -15,6 +15,7 @@ #include "lldp-network.h" #include "memory-util.h" #include "socket-util.h" +#include "sort-util.h" #include "string-table.h" #define LLDP_DEFAULT_NEIGHBORS_MAX 128U diff --git a/src/libsystemd/sd-bus/bus-match.c b/src/libsystemd/sd-bus/bus-match.c index 9642de10c3..266dd7f1df 100644 --- a/src/libsystemd/sd-bus/bus-match.c +++ b/src/libsystemd/sd-bus/bus-match.c @@ -10,6 +10,7 @@ #include "fd-util.h" #include "fileio.h" #include "hexdecoct.h" +#include "sort-util.h" #include "string-util.h" #include "strv.h" diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c index f643c6ea37..8f2764490a 100644 --- a/src/libsystemd/sd-device/device-enumerator.c +++ b/src/libsystemd/sd-device/device-enumerator.c @@ -8,9 +8,9 @@ #include "dirent-util.h" #include "fd-util.h" #include "set.h" +#include "sort-util.h" #include "string-util.h" #include "strv.h" -#include "util.h" #define DEVICE_ENUMERATE_MAX_DEPTH 256 diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c index f8529670b3..dd9bf9e18d 100644 --- a/src/libsystemd/sd-hwdb/hwdb-util.c +++ b/src/libsystemd/sd-hwdb/hwdb-util.c @@ -13,6 +13,7 @@ #include "label.h" #include "mkdir.h" #include "path-util.h" +#include "sort-util.h" #include "strbuf.h" #include "string-util.h" #include "strv.h" diff --git a/src/libsystemd/sd-netlink/local-addresses.c b/src/libsystemd/sd-netlink/local-addresses.c index 5c37279bd2..751144539b 100644 --- a/src/libsystemd/sd-netlink/local-addresses.c +++ b/src/libsystemd/sd-netlink/local-addresses.c @@ -6,6 +6,7 @@ #include "local-addresses.h" #include "macro.h" #include "netlink-util.h" +#include "sort-util.h" static int address_compare(const struct local_address *a, const struct local_address *b) { int r; diff --git a/src/machine/machinectl.c b/src/machine/machinectl.c index 8b97b4d8ce..78f5f2ff32 100644 --- a/src/machine/machinectl.c +++ b/src/machine/machinectl.c @@ -44,13 +44,13 @@ #include "rlimit-util.h" #include "sigbus.h" #include "signal-util.h" +#include "sort-util.h" #include "spawn-polkit-agent.h" #include "stdio-util.h" #include "string-table.h" #include "strv.h" #include "terminal-util.h" #include "unit-name.h" -#include "util.h" #include "verbs.h" #include "web-util.h" diff --git a/src/mount/mount-tool.c b/src/mount/mount-tool.c index bbbc91c38e..1fc8c954d9 100644 --- a/src/mount/mount-tool.c +++ b/src/mount/mount-tool.c @@ -22,13 +22,14 @@ #include "parse-util.h" #include "path-util.h" #include "pretty-print.h" +#include "sort-util.h" #include "spawn-polkit-agent.h" #include "stat-util.h" #include "strv.h" +#include "terminal-util.h" #include "unit-def.h" #include "unit-name.h" #include "user-util.h" -#include "terminal-util.h" enum { ACTION_DEFAULT, diff --git a/src/network/networkctl.c b/src/network/networkctl.c index 9452dabcde..86f6435e4f 100644 --- a/src/network/networkctl.c +++ b/src/network/networkctl.c @@ -26,6 +26,7 @@ #include "parse-util.h" #include "pretty-print.h" #include "socket-util.h" +#include "sort-util.h" #include "sparse-endian.h" #include "stdio-util.h" #include "string-table.h" @@ -33,7 +34,6 @@ #include "strv.h" #include "strxcpyx.h" #include "terminal-util.h" -#include "util.h" #include "verbs.h" static PagerFlags arg_pager_flags = 0; diff --git a/src/nspawn/nspawn-mount.c b/src/nspawn/nspawn-mount.c index 13f50b2d37..12f557ee99 100644 --- a/src/nspawn/nspawn-mount.c +++ b/src/nspawn/nspawn-mount.c @@ -16,12 +16,12 @@ #include "path-util.h" #include "rm-rf.h" #include "set.h" +#include "sort-util.h" #include "stat-util.h" #include "string-util.h" #include "strv.h" #include "tmpfile-util.h" #include "user-util.h" -#include "util.h" CustomMount* custom_mount_add(CustomMount **l, size_t *n, CustomMountType t) { CustomMount *c, *ret; diff --git a/src/portable/portable.c b/src/portable/portable.c index 01fd1a94a0..9d0d21c115 100644 --- a/src/portable/portable.c +++ b/src/portable/portable.c @@ -24,6 +24,7 @@ #include "set.h" #include "signal-util.h" #include "socket-util.h" +#include "sort-util.h" #include "string-table.h" #include "strv.h" #include "tmpfile-util.h" diff --git a/src/resolve/resolved-dns-dnssec.c b/src/resolve/resolved-dns-dnssec.c index ad7b623b69..a5ded5ada2 100644 --- a/src/resolve/resolved-dns-dnssec.c +++ b/src/resolve/resolved-dns-dnssec.c @@ -15,6 +15,7 @@ #include "memory-util.h" #include "resolved-dns-dnssec.h" #include "resolved-dns-packet.h" +#include "sort-util.h" #include "string-table.h" #define VERIFY_RRS_MAX 256 diff --git a/src/resolve/resolved-dns-trust-anchor.c b/src/resolve/resolved-dns-trust-anchor.c index c5ec93b724..e5a27ca688 100644 --- a/src/resolve/resolved-dns-trust-anchor.c +++ b/src/resolve/resolved-dns-trust-anchor.c @@ -10,9 +10,10 @@ #include "fileio.h" #include "hexdecoct.h" #include "parse-util.h" -#include "resolved-dns-trust-anchor.h" #include "resolved-dns-dnssec.h" +#include "resolved-dns-trust-anchor.h" #include "set.h" +#include "sort-util.h" #include "string-util.h" #include "strv.h" diff --git a/src/resolve/resolved-mdns.c b/src/resolve/resolved-mdns.c index 89c2497d32..67080cb01c 100644 --- a/src/resolve/resolved-mdns.c +++ b/src/resolve/resolved-mdns.c @@ -8,6 +8,7 @@ #include "fd-util.h" #include "resolved-manager.h" #include "resolved-mdns.h" +#include "sort-util.h" #define CLEAR_CACHE_FLUSH(x) (~MDNS_RR_CACHE_FLUSH & (x)) diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c index 64b2574a18..f2b919b6bb 100644 --- a/src/shared/bootspec.c +++ b/src/shared/bootspec.c @@ -21,6 +21,7 @@ #include "parse-util.h" #include "path-util.h" #include "pe-header.h" +#include "sort-util.h" #include "stat-util.h" #include "string-table.h" #include "string-util.h" diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c index 3ea1bd29c9..d0bfd1894f 100644 --- a/src/shared/bus-unit-util.c +++ b/src/shared/bus-unit-util.c @@ -27,13 +27,13 @@ #include "rlimit-util.h" #include "securebits-util.h" #include "signal-util.h" +#include "sort-util.h" #include "string-util.h" #include "syslog-util.h" #include "terminal-util.h" #include "unit-def.h" #include "user-util.h" #include "utf8.h" -#include "util.h" int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) { assert(message); diff --git a/src/shared/calendarspec.c b/src/shared/calendarspec.c index b2285cebdc..e7ee90aa9c 100644 --- a/src/shared/calendarspec.c +++ b/src/shared/calendarspec.c @@ -18,6 +18,7 @@ #include "macro.h" #include "parse-util.h" #include "process-util.h" +#include "sort-util.h" #include "string-util.h" #include "time-util.h" diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c index 61df7511a1..91a243944c 100644 --- a/src/shared/cgroup-show.c +++ b/src/shared/cgroup-show.c @@ -20,6 +20,7 @@ #include "output-mode.h" #include "path-util.h" #include "process-util.h" +#include "sort-util.h" #include "string-util.h" #include "terminal-util.h" #include "unit-name.h" diff --git a/src/shared/efivars.c b/src/shared/efivars.c index 04c0a697b4..4f32163bba 100644 --- a/src/shared/efivars.c +++ b/src/shared/efivars.c @@ -21,11 +21,11 @@ #include "io-util.h" #include "macro.h" #include "parse-util.h" +#include "sort-util.h" #include "stdio-util.h" #include "strv.h" #include "time-util.h" #include "utf8.h" -#include "util.h" #include "virt.h" #if ENABLE_EFI diff --git a/src/shared/format-table.c b/src/shared/format-table.c index 589ae9e236..4e8fc808cd 100644 --- a/src/shared/format-table.c +++ b/src/shared/format-table.c @@ -12,6 +12,7 @@ #include "pager.h" #include "parse-util.h" #include "pretty-print.h" +#include "sort-util.h" #include "string-util.h" #include "terminal-util.h" #include "time-util.h" diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c index 5fa7bd277e..7cb7d8a477 100644 --- a/src/shared/uid-range.c +++ b/src/shared/uid-range.c @@ -6,9 +6,9 @@ #include "alloc-util.h" #include "macro.h" +#include "sort-util.h" #include "uid-range.h" #include "user-util.h" -#include "util.h" static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) { assert(range); diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index dd62b95669..7f6196328b 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -66,6 +66,7 @@ #include "sigbus.h" #include "signal-util.h" #include "socket-util.h" +#include "sort-util.h" #include "spawn-ask-password-agent.h" #include "spawn-polkit-agent.h" #include "special.h" diff --git a/src/test/test-prioq.c b/src/test/test-prioq.c index 53c9e090a7..21d5b44fbb 100644 --- a/src/test/test-prioq.c +++ b/src/test/test-prioq.c @@ -6,7 +6,7 @@ #include "prioq.h" #include "set.h" #include "siphash24.h" -#include "util.h" +#include "sort-util.h" #define SET_SIZE 1024*4 diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 801e79b01d..ad73600241 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -53,6 +53,7 @@ #include "rm-rf.h" #include "selinux-util.h" #include "set.h" +#include "sort-util.h" #include "specifier.h" #include "stat-util.h" #include "stdio-util.h" @@ -61,7 +62,6 @@ #include "strv.h" #include "umask-util.h" #include "user-util.h" -#include "util.h" /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates * them in the file system. This is intended to be used to create