]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: allow state to be passed through to parse_proc_cmdline_item
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 22 Oct 2016 18:24:52 +0000 (14:24 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 22 Oct 2016 18:24:52 +0000 (14:24 -0400)
No functional change.

14 files changed:
src/basic/log.c
src/basic/proc-cmdline.c
src/basic/proc-cmdline.h
src/core/main.c
src/cryptsetup/cryptsetup-generator.c
src/debug-generator/debug-generator.c
src/fsck/fsck.c
src/fstab-generator/fstab-generator.c
src/gpt-auto-generator/gpt-auto-generator.c
src/hibernate-resume/hibernate-resume-generator.c
src/modules-load/modules-load.c
src/quotacheck/quotacheck.c
src/test/test-proc-cmdline.c
src/udev/udevd.c

index bd6c96c4f893cf3b58e25a118197343b1064de62..40f342ca7226522c7fa1b3f0aa578e9e1334cc8f 100644 (file)
@@ -967,7 +967,7 @@ int log_set_max_level_from_string(const char *e) {
         return 0;
 }
 
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
 
         /*
          * The systemd.log_xyz= settings are parsed by all tools, and
@@ -1012,7 +1012,7 @@ void log_parse_environment(void) {
                 /* Only try to read the command line in daemons.
                    We assume that anything that has a controlling
                    tty is user stuff. */
-                (void) parse_proc_cmdline(parse_proc_cmdline_item);
+                (void) parse_proc_cmdline(parse_proc_cmdline_item, NULL);
 
         e = secure_getenv("SYSTEMD_LOG_TARGET");
         if (e && log_set_target_from_string(e) < 0)
index 0430beadaa6382ce7311ffe2e8ecbf1a5d10c08e..951db34d1a22b687fc6e696e29c5a3ec85d6fc9f 100644 (file)
@@ -42,7 +42,7 @@ int proc_cmdline(char **ret) {
                 return read_one_line_file("/proc/cmdline", ret);
 }
 
-int parse_proc_cmdline(int (*parse_item)(const char *key, const char *value)) {
+int parse_proc_cmdline(int (*parse_item)(const char *key, const char *value, void *data), void *data) {
         _cleanup_free_ char *line = NULL;
         const char *p;
         int r;
@@ -73,7 +73,7 @@ int parse_proc_cmdline(int (*parse_item)(const char *key, const char *value)) {
                 if (value)
                         *(value++) = 0;
 
-                r = parse_item(word, value);
+                r = parse_item(word, value, data);
                 if (r < 0)
                         return r;
         }
index 452642a2f5f4c9bf6ded4e0b9422594ff2236410..a8832d84190273511c4287dfe2f7eae18d782eb6 100644 (file)
@@ -20,7 +20,7 @@
 ***/
 
 int proc_cmdline(char **ret);
-int parse_proc_cmdline(int (*parse_word)(const char *key, const char *value));
+int parse_proc_cmdline(int (*parse_word)(const char *key, const char *value, void *data), void *data);
 int get_proc_cmdline_key(const char *parameter, char **value);
 
 int shall_restore_state(void);
index cf3c640a738b4c53ab3ceaeb9daa80dc04d4272e..bf9bba28d6fa830a961195e15fc5b60b799a6778 100644 (file)
@@ -307,7 +307,7 @@ static int set_machine_id(const char *m) {
         return 0;
 }
 
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
 
         int r;
 
@@ -1570,7 +1570,7 @@ int main(int argc, char *argv[]) {
         }
 
         if (arg_system) {
-                r = parse_proc_cmdline(parse_proc_cmdline_item);
+                r = parse_proc_cmdline(parse_proc_cmdline_item, NULL);
                 if (r < 0)
                         log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
         }
index de0a3b6f9c19f1ca1cf372ef0b1e2af8af0fccf8..7193d930700307dbd8cedf570b300affe82395df 100644 (file)
@@ -277,7 +277,7 @@ static crypto_device *get_crypto_device(const char *uuid) {
         return d;
 }
 
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
         int r;
         crypto_device *d;
         _cleanup_free_ char *uuid = NULL, *uuid_value = NULL;
@@ -478,7 +478,7 @@ int main(int argc, char *argv[]) {
         if (!arg_disks)
                 goto cleanup;
 
-        r = parse_proc_cmdline(parse_proc_cmdline_item);
+        r = parse_proc_cmdline(parse_proc_cmdline_item, NULL);
         if (r < 0) {
                 log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
                 r = EXIT_FAILURE;
index 7e80af78e79212a29e7d9fe20e853c5cae0b74e5..0b0de1b4617dc34ea97a179a14dff230e071fbd4 100644 (file)
@@ -33,7 +33,7 @@ static char **arg_mask = NULL;
 static char **arg_wants = NULL;
 static bool arg_debug_shell = false;
 
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
         int r;
 
         assert(key);
@@ -178,7 +178,7 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
-        r = parse_proc_cmdline(parse_proc_cmdline_item);
+        r = parse_proc_cmdline(parse_proc_cmdline_item, NULL);
         if (r < 0)
                 log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
 
index d32e1d923e0882ae96d573e8668cc78dd322ecd2..957e0ccef805e5d5fe4325e584f0e60ac96f8075 100644 (file)
@@ -94,7 +94,7 @@ static void start_target(const char *target, const char *mode) {
                 log_error("Failed to start unit: %s", bus_error_message(&error, r));
 }
 
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
         int r;
 
         assert(key);
@@ -293,7 +293,7 @@ int main(int argc, char *argv[]) {
 
         umask(0022);
 
-        r = parse_proc_cmdline(parse_proc_cmdline_item);
+        r = parse_proc_cmdline(parse_proc_cmdline_item, NULL);
         if (r < 0)
                 log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
 
index 33af553d0d5c8231b8e3ce4758f0bcb9a3e87ba2..b608eff630a7cb93b9f654159191b4281d996915 100644 (file)
@@ -590,7 +590,7 @@ static int add_sysroot_usr_mount(void) {
                          "/proc/cmdline");
 }
 
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
         int r;
 
         /* root=, usr=, usrfstype= and roofstype= may occur more than once, the last
@@ -674,7 +674,7 @@ int main(int argc, char *argv[]) {
 
         umask(0022);
 
-        r = parse_proc_cmdline(parse_proc_cmdline_item);
+        r = parse_proc_cmdline(parse_proc_cmdline_item, NULL);
         if (r < 0)
                 log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
 
index 6cc1aad70553ed2ca2861383b27a5f98702c63cc..a25b3413ae0dd7f7d0460a91711d4df216bcdd1c 100644 (file)
@@ -907,7 +907,7 @@ fallback:
         return 1;
 }
 
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
         int r;
 
         assert(key);
@@ -1018,7 +1018,7 @@ int main(int argc, char *argv[]) {
                 return EXIT_SUCCESS;
         }
 
-        r = parse_proc_cmdline(parse_proc_cmdline_item);
+        r = parse_proc_cmdline(parse_proc_cmdline_item, NULL);
         if (r < 0)
                 log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
 
index d7ee80d58f6ea40f9eb5a0288e500124adc4deb3..8be461aafaaaa91a1a30949141cdcd448ce7e501 100644 (file)
@@ -33,7 +33,7 @@
 static const char *arg_dest = "/tmp";
 static char *arg_resume_dev = NULL;
 
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
 
         if (streq(key, "resume") && value) {
                 free(arg_resume_dev);
@@ -88,7 +88,7 @@ int main(int argc, char *argv[]) {
         if (!in_initrd())
                 return EXIT_SUCCESS;
 
-        r = parse_proc_cmdline(parse_proc_cmdline_item);
+        r = parse_proc_cmdline(parse_proc_cmdline_item, NULL);
         if (r < 0)
                 log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
 
index f75015d8c3dda65f7a7def71ef61cf59dc780a4d..bd07bad446a726c7a230b9dbe58747ba321edab9 100644 (file)
@@ -59,7 +59,7 @@ static int add_modules(const char *p) {
         return 0;
 }
 
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
         int r;
 
         if (STR_IN_SET(key, "modules-load", "rd.modules-load") && value) {
@@ -226,7 +226,7 @@ int main(int argc, char *argv[]) {
 
         umask(0022);
 
-        r = parse_proc_cmdline(parse_proc_cmdline_item);
+        r = parse_proc_cmdline(parse_proc_cmdline_item, NULL);
         if (r < 0)
                 log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
 
index 6d8c05f046e7954bc7ed54972e558c4b5ab88ccb..a87b0866cd3a1f32153e2871ed4b5af8ca539245 100644 (file)
@@ -32,7 +32,7 @@
 static bool arg_skip = false;
 static bool arg_force = false;
 
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
 
         if (streq(key, "quotacheck.mode") && value) {
 
@@ -88,7 +88,7 @@ int main(int argc, char *argv[]) {
 
         umask(0022);
 
-        r = parse_proc_cmdline(parse_proc_cmdline_item);
+        r = parse_proc_cmdline(parse_proc_cmdline_item, NULL);
         if (r < 0)
                 log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
 
index 80ad5ed98b1591de19be7e08a5aadb23bcc07ca8..e4207935c4ad65bb961f7b299dfdae5e661f436a 100644 (file)
 #include "string-util.h"
 #include "util.h"
 
-static int parse_item(const char *key, const char *value) {
+static int obj;
+
+static int parse_item(const char *key, const char *value, void *data) {
         assert_se(key);
+        assert_se(data == &obj);
 
         log_info("kernel cmdline option <%s> = <%s>", key, strna(value));
         return 0;
 }
 
 static void test_parse_proc_cmdline(void) {
-        assert_se(parse_proc_cmdline(parse_item) >= 0);
+        assert_se(parse_proc_cmdline(parse_item, &obj) >= 0);
 }
 
 static void test_runlevel_to_target(void) {
index 535d317c276ace2173d9716e1ed64e6f9f1c5cef..601ab69f1b8574ec09bd485535c5d7146bbe878d 100644 (file)
@@ -1362,7 +1362,7 @@ static int listen_fds(int *rctrl, int *rnetlink) {
  *   udev.exec-delay=<number of seconds>       delay execution of every executed program
  *   udev.event-timeout=<number of seconds>    seconds to wait before terminating an event
  */
-static int parse_proc_cmdline_item(const char *key, const char *value) {
+static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
         const char *full_key = key;
         int r;
 
@@ -1665,7 +1665,7 @@ int main(int argc, char *argv[]) {
         if (r <= 0)
                 goto exit;
 
-        r = parse_proc_cmdline(parse_proc_cmdline_item);
+        r = parse_proc_cmdline(parse_proc_cmdline_item, NULL);
         if (r < 0)
                 log_warning_errno(r, "failed to parse kernel command line, ignoring: %m");