util: split out sorting related calls to new sort-util.[ch]
This commit is contained in:
parent
0a9707187b
commit
760877e90c
|
@ -36,11 +36,12 @@
|
||||||
#if HAVE_SECCOMP
|
#if HAVE_SECCOMP
|
||||||
# include "seccomp-util.h"
|
# include "seccomp-util.h"
|
||||||
#endif
|
#endif
|
||||||
|
#include "sort-util.h"
|
||||||
#include "special.h"
|
#include "special.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "strxcpyx.h"
|
#include "strxcpyx.h"
|
||||||
#include "time-util.h"
|
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
|
#include "time-util.h"
|
||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "verbs.h"
|
#include "verbs.h"
|
||||||
|
|
|
@ -17,11 +17,11 @@
|
||||||
#include "missing.h"
|
#include "missing.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
static int files_add(
|
static int files_add(
|
||||||
Hashmap *h,
|
Hashmap *h,
|
||||||
|
|
|
@ -174,6 +174,8 @@ basic_sources = files('''
|
||||||
socket-label.c
|
socket-label.c
|
||||||
socket-util.c
|
socket-util.c
|
||||||
socket-util.h
|
socket-util.h
|
||||||
|
sort-util.c
|
||||||
|
sort-util.h
|
||||||
sparse-endian.h
|
sparse-endian.h
|
||||||
special.h
|
special.h
|
||||||
stat-util.c
|
stat-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;
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
/* SPDX-License-Identifier: LGPL-2.1+ */
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#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); \
|
||||||
|
})
|
|
@ -5,8 +5,8 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "alloc-util.h"
|
#include "alloc-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "strbuf.h"
|
#include "strbuf.h"
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Strbuf stores given strings in a single continuous allocated memory
|
* Strbuf stores given strings in a single continuous allocated memory
|
||||||
|
|
|
@ -11,9 +11,9 @@
|
||||||
#include "escape.h"
|
#include "escape.h"
|
||||||
#include "extract-word.h"
|
#include "extract-word.h"
|
||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
char *strv_find(char **l, const char *name) {
|
char *strv_find(char **l, const char *name) {
|
||||||
char **i;
|
char **i;
|
||||||
|
|
|
@ -126,31 +126,6 @@ void in_initrd_force(bool value) {
|
||||||
saved_in_initrd = 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) {
|
int on_ac_power(void) {
|
||||||
bool found_offline = false, found_online = false;
|
bool found_offline = false, found_online = false;
|
||||||
_cleanup_closedir_ DIR *d = NULL;
|
_cleanup_closedir_ DIR *d = NULL;
|
||||||
|
|
|
@ -63,70 +63,6 @@ int prot_from_flags(int flags) _const_;
|
||||||
bool in_initrd(void);
|
bool in_initrd(void);
|
||||||
void in_initrd_force(bool value);
|
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);
|
int on_ac_power(void);
|
||||||
|
|
||||||
static inline void _reset_errno_(int *saved_errno) {
|
static inline void _reset_errno_(int *saved_errno) {
|
||||||
|
|
|
@ -25,10 +25,10 @@
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
#include "pretty-print.h"
|
#include "pretty-print.h"
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
#include "user-util.h"
|
#include "user-util.h"
|
||||||
#include "util.h"
|
|
||||||
#include "verbs.h"
|
#include "verbs.h"
|
||||||
|
|
||||||
static enum {
|
static enum {
|
||||||
|
|
|
@ -25,11 +25,11 @@
|
||||||
#include "pretty-print.h"
|
#include "pretty-print.h"
|
||||||
#include "process-util.h"
|
#include "process-util.h"
|
||||||
#include "procfs-util.h"
|
#include "procfs-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "stdio-util.h"
|
#include "stdio-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
#include "util.h"
|
|
||||||
#include "virt.h"
|
#include "virt.h"
|
||||||
|
|
||||||
typedef struct Group {
|
typedef struct Group {
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "serialize.h"
|
#include "serialize.h"
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "special.h"
|
#include "special.h"
|
||||||
#include "stdio-util.h"
|
#include "stdio-util.h"
|
||||||
#include "string-table.h"
|
#include "string-table.h"
|
||||||
|
|
|
@ -26,13 +26,13 @@
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
#include "selinux-util.h"
|
#include "selinux-util.h"
|
||||||
#include "socket-util.h"
|
#include "socket-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
#include "string-table.h"
|
#include "string-table.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "umask-util.h"
|
#include "umask-util.h"
|
||||||
#include "user-util.h"
|
#include "user-util.h"
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
#define DEV_MOUNT_OPTIONS (MS_NOSUID|MS_STRICTATIME|MS_NOEXEC)
|
#define DEV_MOUNT_OPTIONS (MS_NOSUID|MS_STRICTATIME|MS_NOEXEC)
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include "mkdir.h"
|
#include "mkdir.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
#include "siphash24.h"
|
#include "siphash24.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "sparse-endian.h"
|
#include "sparse-endian.h"
|
||||||
#include "strbuf.h"
|
#include "strbuf.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
#include "random-util.h"
|
#include "random-util.h"
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
|
|
|
@ -14,9 +14,9 @@
|
||||||
#include "journal-file.h"
|
#include "journal-file.h"
|
||||||
#include "journal-vacuum.h"
|
#include "journal-vacuum.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "time-util.h"
|
#include "time-util.h"
|
||||||
#include "util.h"
|
|
||||||
#include "xattr-util.h"
|
#include "xattr-util.h"
|
||||||
|
|
||||||
struct vacuum_info {
|
struct vacuum_info {
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "lldp-network.h"
|
#include "lldp-network.h"
|
||||||
#include "memory-util.h"
|
#include "memory-util.h"
|
||||||
#include "socket-util.h"
|
#include "socket-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-table.h"
|
#include "string-table.h"
|
||||||
|
|
||||||
#define LLDP_DEFAULT_NEIGHBORS_MAX 128U
|
#define LLDP_DEFAULT_NEIGHBORS_MAX 128U
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include "fd-util.h"
|
#include "fd-util.h"
|
||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
#include "hexdecoct.h"
|
#include "hexdecoct.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
#include "dirent-util.h"
|
#include "dirent-util.h"
|
||||||
#include "fd-util.h"
|
#include "fd-util.h"
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
#define DEVICE_ENUMERATE_MAX_DEPTH 256
|
#define DEVICE_ENUMERATE_MAX_DEPTH 256
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include "label.h"
|
#include "label.h"
|
||||||
#include "mkdir.h"
|
#include "mkdir.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "strbuf.h"
|
#include "strbuf.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include "local-addresses.h"
|
#include "local-addresses.h"
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
#include "netlink-util.h"
|
#include "netlink-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
|
|
||||||
static int address_compare(const struct local_address *a, const struct local_address *b) {
|
static int address_compare(const struct local_address *a, const struct local_address *b) {
|
||||||
int r;
|
int r;
|
||||||
|
|
|
@ -44,13 +44,13 @@
|
||||||
#include "rlimit-util.h"
|
#include "rlimit-util.h"
|
||||||
#include "sigbus.h"
|
#include "sigbus.h"
|
||||||
#include "signal-util.h"
|
#include "signal-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "spawn-polkit-agent.h"
|
#include "spawn-polkit-agent.h"
|
||||||
#include "stdio-util.h"
|
#include "stdio-util.h"
|
||||||
#include "string-table.h"
|
#include "string-table.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
#include "util.h"
|
|
||||||
#include "verbs.h"
|
#include "verbs.h"
|
||||||
#include "web-util.h"
|
#include "web-util.h"
|
||||||
|
|
||||||
|
|
|
@ -22,13 +22,14 @@
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
#include "pretty-print.h"
|
#include "pretty-print.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "spawn-polkit-agent.h"
|
#include "spawn-polkit-agent.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
|
#include "terminal-util.h"
|
||||||
#include "unit-def.h"
|
#include "unit-def.h"
|
||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
#include "user-util.h"
|
#include "user-util.h"
|
||||||
#include "terminal-util.h"
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
ACTION_DEFAULT,
|
ACTION_DEFAULT,
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "pretty-print.h"
|
#include "pretty-print.h"
|
||||||
#include "socket-util.h"
|
#include "socket-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "sparse-endian.h"
|
#include "sparse-endian.h"
|
||||||
#include "stdio-util.h"
|
#include "stdio-util.h"
|
||||||
#include "string-table.h"
|
#include "string-table.h"
|
||||||
|
@ -33,7 +34,6 @@
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "strxcpyx.h"
|
#include "strxcpyx.h"
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
#include "util.h"
|
|
||||||
#include "verbs.h"
|
#include "verbs.h"
|
||||||
|
|
||||||
static PagerFlags arg_pager_flags = 0;
|
static PagerFlags arg_pager_flags = 0;
|
||||||
|
|
|
@ -16,12 +16,12 @@
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
#include "rm-rf.h"
|
#include "rm-rf.h"
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "tmpfile-util.h"
|
#include "tmpfile-util.h"
|
||||||
#include "user-util.h"
|
#include "user-util.h"
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
CustomMount* custom_mount_add(CustomMount **l, size_t *n, CustomMountType t) {
|
CustomMount* custom_mount_add(CustomMount **l, size_t *n, CustomMountType t) {
|
||||||
CustomMount *c, *ret;
|
CustomMount *c, *ret;
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
#include "signal-util.h"
|
#include "signal-util.h"
|
||||||
#include "socket-util.h"
|
#include "socket-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-table.h"
|
#include "string-table.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "tmpfile-util.h"
|
#include "tmpfile-util.h"
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "memory-util.h"
|
#include "memory-util.h"
|
||||||
#include "resolved-dns-dnssec.h"
|
#include "resolved-dns-dnssec.h"
|
||||||
#include "resolved-dns-packet.h"
|
#include "resolved-dns-packet.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-table.h"
|
#include "string-table.h"
|
||||||
|
|
||||||
#define VERIFY_RRS_MAX 256
|
#define VERIFY_RRS_MAX 256
|
||||||
|
|
|
@ -10,9 +10,10 @@
|
||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
#include "hexdecoct.h"
|
#include "hexdecoct.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "resolved-dns-trust-anchor.h"
|
|
||||||
#include "resolved-dns-dnssec.h"
|
#include "resolved-dns-dnssec.h"
|
||||||
|
#include "resolved-dns-trust-anchor.h"
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "fd-util.h"
|
#include "fd-util.h"
|
||||||
#include "resolved-manager.h"
|
#include "resolved-manager.h"
|
||||||
#include "resolved-mdns.h"
|
#include "resolved-mdns.h"
|
||||||
|
#include "sort-util.h"
|
||||||
|
|
||||||
#define CLEAR_CACHE_FLUSH(x) (~MDNS_RR_CACHE_FLUSH & (x))
|
#define CLEAR_CACHE_FLUSH(x) (~MDNS_RR_CACHE_FLUSH & (x))
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
#include "pe-header.h"
|
#include "pe-header.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
#include "string-table.h"
|
#include "string-table.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
|
|
|
@ -27,13 +27,13 @@
|
||||||
#include "rlimit-util.h"
|
#include "rlimit-util.h"
|
||||||
#include "securebits-util.h"
|
#include "securebits-util.h"
|
||||||
#include "signal-util.h"
|
#include "signal-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "syslog-util.h"
|
#include "syslog-util.h"
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
#include "unit-def.h"
|
#include "unit-def.h"
|
||||||
#include "user-util.h"
|
#include "user-util.h"
|
||||||
#include "utf8.h"
|
#include "utf8.h"
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
|
int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
|
||||||
assert(message);
|
assert(message);
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "process-util.h"
|
#include "process-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "time-util.h"
|
#include "time-util.h"
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include "output-mode.h"
|
#include "output-mode.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
#include "process-util.h"
|
#include "process-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
|
|
|
@ -21,11 +21,11 @@
|
||||||
#include "io-util.h"
|
#include "io-util.h"
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "stdio-util.h"
|
#include "stdio-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "time-util.h"
|
#include "time-util.h"
|
||||||
#include "utf8.h"
|
#include "utf8.h"
|
||||||
#include "util.h"
|
|
||||||
#include "virt.h"
|
#include "virt.h"
|
||||||
|
|
||||||
#if ENABLE_EFI
|
#if ENABLE_EFI
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include "pager.h"
|
#include "pager.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "pretty-print.h"
|
#include "pretty-print.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
#include "time-util.h"
|
#include "time-util.h"
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
#include "alloc-util.h"
|
#include "alloc-util.h"
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "uid-range.h"
|
#include "uid-range.h"
|
||||||
#include "user-util.h"
|
#include "user-util.h"
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
|
static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
|
||||||
assert(range);
|
assert(range);
|
||||||
|
|
|
@ -66,6 +66,7 @@
|
||||||
#include "sigbus.h"
|
#include "sigbus.h"
|
||||||
#include "signal-util.h"
|
#include "signal-util.h"
|
||||||
#include "socket-util.h"
|
#include "socket-util.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "spawn-ask-password-agent.h"
|
#include "spawn-ask-password-agent.h"
|
||||||
#include "spawn-polkit-agent.h"
|
#include "spawn-polkit-agent.h"
|
||||||
#include "special.h"
|
#include "special.h"
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#include "prioq.h"
|
#include "prioq.h"
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
#include "siphash24.h"
|
#include "siphash24.h"
|
||||||
#include "util.h"
|
#include "sort-util.h"
|
||||||
|
|
||||||
#define SET_SIZE 1024*4
|
#define SET_SIZE 1024*4
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@
|
||||||
#include "rm-rf.h"
|
#include "rm-rf.h"
|
||||||
#include "selinux-util.h"
|
#include "selinux-util.h"
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
|
#include "sort-util.h"
|
||||||
#include "specifier.h"
|
#include "specifier.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
#include "stdio-util.h"
|
#include "stdio-util.h"
|
||||||
|
@ -61,7 +62,6 @@
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "umask-util.h"
|
#include "umask-util.h"
|
||||||
#include "user-util.h"
|
#include "user-util.h"
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
/* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
|
/* 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
|
* them in the file system. This is intended to be used to create
|
||||||
|
|
Loading…
Reference in New Issue