mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 18:55:40 +03:00
util-lib: move /proc/cmdline parsing code to proc-cmdline.[ch]
This commit is contained in:
parent
d4510856a0
commit
4e731273ed
@ -799,6 +799,8 @@ libbasic_la_SOURCES = \
|
|||||||
src/basic/xattr-util.h \
|
src/basic/xattr-util.h \
|
||||||
src/basic/chattr-util.c \
|
src/basic/chattr-util.c \
|
||||||
src/basic/chattr-util.h \
|
src/basic/chattr-util.h \
|
||||||
|
src/basic/proc-cmdline.c \
|
||||||
|
src/basic/proc-cmdline.h \
|
||||||
src/basic/fs-util.c \
|
src/basic/fs-util.c \
|
||||||
src/basic/fs-util.h \
|
src/basic/fs-util.h \
|
||||||
src/basic/stat-util.c \
|
src/basic/stat-util.c \
|
||||||
|
@ -25,10 +25,11 @@
|
|||||||
#include "escape.h"
|
#include "escape.h"
|
||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
#include "mkdir.h"
|
#include "mkdir.h"
|
||||||
|
#include "parse-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "udev-util.h"
|
#include "udev-util.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "parse-util.h"
|
|
||||||
|
|
||||||
static struct udev_device *find_pci_or_platform_parent(struct udev_device *device) {
|
static struct udev_device *find_pci_or_platform_parent(struct udev_device *device) {
|
||||||
struct udev_device *parent;
|
struct udev_device *parent;
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
#include "user-util.h"
|
#include "user-util.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
|
|
||||||
int cg_enumerate_processes(const char *controller, const char *path, FILE **_f) {
|
int cg_enumerate_processes(const char *controller, const char *path, FILE **_f) {
|
||||||
_cleanup_free_ char *fs = NULL;
|
_cleanup_free_ char *fs = NULL;
|
||||||
|
@ -36,6 +36,8 @@
|
|||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
#include "missing.h"
|
#include "missing.h"
|
||||||
|
#include "parse-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "process-util.h"
|
#include "process-util.h"
|
||||||
#include "signal-util.h"
|
#include "signal-util.h"
|
||||||
#include "socket-util.h"
|
#include "socket-util.h"
|
||||||
@ -43,7 +45,6 @@
|
|||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "parse-util.h"
|
|
||||||
|
|
||||||
#define SNDBUF_SIZE (8*1024*1024)
|
#define SNDBUF_SIZE (8*1024*1024)
|
||||||
|
|
||||||
|
144
src/basic/proc-cmdline.c
Normal file
144
src/basic/proc-cmdline.c
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||||
|
|
||||||
|
/***
|
||||||
|
This file is part of systemd.
|
||||||
|
|
||||||
|
Copyright 2010 Lennart Poettering
|
||||||
|
|
||||||
|
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 "extract-word.h"
|
||||||
|
#include "fileio.h"
|
||||||
|
#include "macro.h"
|
||||||
|
#include "parse-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
|
#include "process-util.h"
|
||||||
|
#include "string-util.h"
|
||||||
|
#include "util.h"
|
||||||
|
#include "virt.h"
|
||||||
|
|
||||||
|
int proc_cmdline(char **ret) {
|
||||||
|
assert(ret);
|
||||||
|
|
||||||
|
if (detect_container() > 0)
|
||||||
|
return get_process_cmdline(1, 0, false, ret);
|
||||||
|
else
|
||||||
|
return read_one_line_file("/proc/cmdline", ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
int parse_proc_cmdline(int (*parse_item)(const char *key, const char *value)) {
|
||||||
|
_cleanup_free_ char *line = NULL;
|
||||||
|
const char *p;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
assert(parse_item);
|
||||||
|
|
||||||
|
r = proc_cmdline(&line);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
|
||||||
|
p = line;
|
||||||
|
for (;;) {
|
||||||
|
_cleanup_free_ char *word = NULL;
|
||||||
|
char *value = NULL;
|
||||||
|
|
||||||
|
r = extract_first_word(&p, &word, NULL, EXTRACT_QUOTES|EXTRACT_RELAX);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
if (r == 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* Filter out arguments that are intended only for the
|
||||||
|
* initrd */
|
||||||
|
if (!in_initrd() && startswith(word, "rd."))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
value = strchr(word, '=');
|
||||||
|
if (value)
|
||||||
|
*(value++) = 0;
|
||||||
|
|
||||||
|
r = parse_item(word, value);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int get_proc_cmdline_key(const char *key, char **value) {
|
||||||
|
_cleanup_free_ char *line = NULL, *ret = NULL;
|
||||||
|
bool found = false;
|
||||||
|
const char *p;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
assert(key);
|
||||||
|
|
||||||
|
r = proc_cmdline(&line);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
|
||||||
|
p = line;
|
||||||
|
for (;;) {
|
||||||
|
_cleanup_free_ char *word = NULL;
|
||||||
|
const char *e;
|
||||||
|
|
||||||
|
r = extract_first_word(&p, &word, NULL, EXTRACT_QUOTES|EXTRACT_RELAX);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
if (r == 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* Filter out arguments that are intended only for the
|
||||||
|
* initrd */
|
||||||
|
if (!in_initrd() && startswith(word, "rd."))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (value) {
|
||||||
|
e = startswith(word, key);
|
||||||
|
if (!e)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
r = free_and_strdup(&ret, e);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
|
||||||
|
found = true;
|
||||||
|
} else {
|
||||||
|
if (streq(word, key))
|
||||||
|
found = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value) {
|
||||||
|
*value = ret;
|
||||||
|
ret = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return found;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int shall_restore_state(void) {
|
||||||
|
_cleanup_free_ char *value = NULL;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
r = get_proc_cmdline_key("systemd.restore_state=", &value);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
if (r == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return parse_boolean(value) != 0;
|
||||||
|
}
|
28
src/basic/proc-cmdline.h
Normal file
28
src/basic/proc-cmdline.h
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/***
|
||||||
|
This file is part of systemd.
|
||||||
|
|
||||||
|
Copyright 2010 Lennart Poettering
|
||||||
|
|
||||||
|
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/>.
|
||||||
|
***/
|
||||||
|
|
||||||
|
int proc_cmdline(char **ret);
|
||||||
|
int parse_proc_cmdline(int (*parse_word)(const char *key, const char *value));
|
||||||
|
int get_proc_cmdline_key(const char *parameter, char **value);
|
||||||
|
|
||||||
|
int shall_restore_state(void);
|
114
src/basic/util.c
114
src/basic/util.c
@ -963,120 +963,6 @@ bool id128_is_valid(const char *s) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int shall_restore_state(void) {
|
|
||||||
_cleanup_free_ char *value = NULL;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
r = get_proc_cmdline_key("systemd.restore_state=", &value);
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
if (r == 0)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return parse_boolean(value) != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int proc_cmdline(char **ret) {
|
|
||||||
assert(ret);
|
|
||||||
|
|
||||||
if (detect_container() > 0)
|
|
||||||
return get_process_cmdline(1, 0, false, ret);
|
|
||||||
else
|
|
||||||
return read_one_line_file("/proc/cmdline", ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
int parse_proc_cmdline(int (*parse_item)(const char *key, const char *value)) {
|
|
||||||
_cleanup_free_ char *line = NULL;
|
|
||||||
const char *p;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
assert(parse_item);
|
|
||||||
|
|
||||||
r = proc_cmdline(&line);
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
|
|
||||||
p = line;
|
|
||||||
for (;;) {
|
|
||||||
_cleanup_free_ char *word = NULL;
|
|
||||||
char *value = NULL;
|
|
||||||
|
|
||||||
r = extract_first_word(&p, &word, NULL, EXTRACT_QUOTES|EXTRACT_RELAX);
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
if (r == 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* Filter out arguments that are intended only for the
|
|
||||||
* initrd */
|
|
||||||
if (!in_initrd() && startswith(word, "rd."))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
value = strchr(word, '=');
|
|
||||||
if (value)
|
|
||||||
*(value++) = 0;
|
|
||||||
|
|
||||||
r = parse_item(word, value);
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int get_proc_cmdline_key(const char *key, char **value) {
|
|
||||||
_cleanup_free_ char *line = NULL, *ret = NULL;
|
|
||||||
bool found = false;
|
|
||||||
const char *p;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
assert(key);
|
|
||||||
|
|
||||||
r = proc_cmdline(&line);
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
|
|
||||||
p = line;
|
|
||||||
for (;;) {
|
|
||||||
_cleanup_free_ char *word = NULL;
|
|
||||||
const char *e;
|
|
||||||
|
|
||||||
r = extract_first_word(&p, &word, NULL, EXTRACT_QUOTES|EXTRACT_RELAX);
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
if (r == 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* Filter out arguments that are intended only for the
|
|
||||||
* initrd */
|
|
||||||
if (!in_initrd() && startswith(word, "rd."))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (value) {
|
|
||||||
e = startswith(word, key);
|
|
||||||
if (!e)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
r = free_and_strdup(&ret, e);
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
|
|
||||||
found = true;
|
|
||||||
} else {
|
|
||||||
if (streq(word, key))
|
|
||||||
found = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (value) {
|
|
||||||
*value = ret;
|
|
||||||
ret = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return found;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int container_get_leader(const char *machine, pid_t *pid) {
|
int container_get_leader(const char *machine, pid_t *pid) {
|
||||||
_cleanup_free_ char *s = NULL, *class = NULL;
|
_cleanup_free_ char *s = NULL, *class = NULL;
|
||||||
const char *p;
|
const char *p;
|
||||||
|
@ -288,8 +288,6 @@ static inline unsigned log2u_round_up(unsigned x) {
|
|||||||
|
|
||||||
bool id128_is_valid(const char *s) _pure_;
|
bool id128_is_valid(const char *s) _pure_;
|
||||||
|
|
||||||
int shall_restore_state(void);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Normal qsort requires base to be nonnull. Here were require
|
* Normal qsort requires base to be nonnull. Here were require
|
||||||
* that only if nmemb > 0.
|
* that only if nmemb > 0.
|
||||||
@ -302,10 +300,6 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, comparison_
|
|||||||
qsort(base, nmemb, size, compar);
|
qsort(base, nmemb, size, compar);
|
||||||
}
|
}
|
||||||
|
|
||||||
int proc_cmdline(char **ret);
|
|
||||||
int parse_proc_cmdline(int (*parse_word)(const char *key, const char *value));
|
|
||||||
int get_proc_cmdline_key(const char *parameter, char **value);
|
|
||||||
|
|
||||||
int container_get_leader(const char *machine, pid_t *pid);
|
int container_get_leader(const char *machine, pid_t *pid);
|
||||||
|
|
||||||
int namespace_open(pid_t pid, int *pidns_fd, int *mntns_fd, int *netns_fd, int *userns_fd, int *root_fd);
|
int namespace_open(pid_t pid, int *pidns_fd, int *mntns_fd, int *netns_fd, int *userns_fd, int *root_fd);
|
||||||
|
@ -69,6 +69,7 @@
|
|||||||
#include "mount-setup.h"
|
#include "mount-setup.h"
|
||||||
#include "pager.h"
|
#include "pager.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "process-util.h"
|
#include "process-util.h"
|
||||||
#include "rlimit-util.h"
|
#include "rlimit-util.h"
|
||||||
#include "selinux-setup.h"
|
#include "selinux-setup.h"
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "mkdir.h"
|
#include "mkdir.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
|
@ -19,12 +19,13 @@
|
|||||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#include "util.h"
|
#include "mkdir.h"
|
||||||
|
#include "parse-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
#include "mkdir.h"
|
#include "util.h"
|
||||||
#include "string-util.h"
|
|
||||||
#include "parse-util.h"
|
|
||||||
|
|
||||||
static const char *arg_dest = "/tmp";
|
static const char *arg_dest = "/tmp";
|
||||||
static char **arg_mask = NULL;
|
static char **arg_mask = NULL;
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
#include "fs-util.h"
|
#include "fs-util.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "process-util.h"
|
#include "process-util.h"
|
||||||
#include "signal-util.h"
|
#include "signal-util.h"
|
||||||
#include "socket-util.h"
|
#include "socket-util.h"
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#include "mount-util.h"
|
#include "mount-util.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "special.h"
|
#include "special.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
#include "mount-util.h"
|
#include "mount-util.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "special.h"
|
#include "special.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "fstab-util.h"
|
#include "fstab-util.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "mkdir.h"
|
#include "mkdir.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "special.h"
|
#include "special.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
|
@ -58,6 +58,7 @@
|
|||||||
#include "missing.h"
|
#include "missing.h"
|
||||||
#include "mkdir.h"
|
#include "mkdir.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "process-util.h"
|
#include "process-util.h"
|
||||||
#include "rm-rf.h"
|
#include "rm-rf.h"
|
||||||
#include "selinux-util.h"
|
#include "selinux-util.h"
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include "fd-util.h"
|
#include "fd-util.h"
|
||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "strv.h"
|
#include "strv.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "signal-util.h"
|
#include "signal-util.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
|
|
||||||
static bool arg_skip = false;
|
static bool arg_skip = false;
|
||||||
static bool arg_force = false;
|
static bool arg_force = false;
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "io-util.h"
|
#include "io-util.h"
|
||||||
#include "mkdir.h"
|
#include "mkdir.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "string-table.h"
|
#include "string-table.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "udev-util.h"
|
#include "udev-util.h"
|
||||||
|
@ -47,6 +47,7 @@
|
|||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
#include "utf8.h"
|
#include "utf8.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
|
|
||||||
static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
|
static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
|
||||||
sd_event *e = userdata;
|
sd_event *e = userdata;
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
#include "mount-util.h"
|
#include "mount-util.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "selinux-util.h"
|
#include "selinux-util.h"
|
||||||
#include "smack-util.h"
|
#include "smack-util.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
#include "mkdir.h"
|
#include "mkdir.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "process-util.h"
|
#include "process-util.h"
|
||||||
#include "rm-rf.h"
|
#include "rm-rf.h"
|
||||||
#include "signal-util.h"
|
#include "signal-util.h"
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "network-internal.h"
|
#include "network-internal.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
#include "path-util.h"
|
#include "path-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "random-util.h"
|
#include "random-util.h"
|
||||||
#include "stat-util.h"
|
#include "stat-util.h"
|
||||||
#include "string-table.h"
|
#include "string-table.h"
|
||||||
|
@ -55,6 +55,7 @@
|
|||||||
#include "io-util.h"
|
#include "io-util.h"
|
||||||
#include "netlink-util.h"
|
#include "netlink-util.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
|
#include "proc-cmdline.h"
|
||||||
#include "process-util.h"
|
#include "process-util.h"
|
||||||
#include "selinux-util.h"
|
#include "selinux-util.h"
|
||||||
#include "signal-util.h"
|
#include "signal-util.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user