]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: extend verbs functions with extra per-verb data parameter
authorZbigniew Jędrzejewski-Szmek <zbyszek@amutable.com>
Fri, 6 Mar 2026 13:16:08 +0000 (14:16 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Wed, 18 Mar 2026 10:28:47 +0000 (10:28 +0000)
We often have a pattern where the same verb function is used for
multiple actions. This leads to an antipattern where we figure out what
action needs to be taken from argv[0] multiple times: often once in
parse_argv() to figure out what options are allowed, then once again
implicitly in dispatch_verb(), and then again in the action verb itself.
Let's allow passing a parameter into the verb to simplify this.

This matches a pattern we have in conf-parser.h, where we have both
void *userdata (more global) and void *data (per-config item). Here,
I opted for uintptr_t userdata. It seems that most of the time we'll
want to just pass an enum value. This works OK with no casts. I also
tried a void* and union. In both cases, much more boilerplate is needed:
either a cast or a macro to help avoid compiler warnings. uintptr_t
seems generic enough to cover foreseeable usecases with no fuss.

This is a noop refactoring. See next commit for an example.

216 files changed:
src/analyze/analyze-architectures.c
src/analyze/analyze-architectures.h
src/analyze/analyze-blame.c
src/analyze/analyze-blame.h
src/analyze/analyze-calendar.c
src/analyze/analyze-calendar.h
src/analyze/analyze-capability.c
src/analyze/analyze-capability.h
src/analyze/analyze-cat-config.c
src/analyze/analyze-cat-config.h
src/analyze/analyze-chid.c
src/analyze/analyze-chid.h
src/analyze/analyze-compare-versions.c
src/analyze/analyze-compare-versions.h
src/analyze/analyze-condition.c
src/analyze/analyze-condition.h
src/analyze/analyze-critical-chain.c
src/analyze/analyze-critical-chain.h
src/analyze/analyze-dlopen-metadata.c
src/analyze/analyze-dlopen-metadata.h
src/analyze/analyze-dot.c
src/analyze/analyze-dot.h
src/analyze/analyze-dump.c
src/analyze/analyze-dump.h
src/analyze/analyze-exit-status.c
src/analyze/analyze-exit-status.h
src/analyze/analyze-fdstore.c
src/analyze/analyze-fdstore.h
src/analyze/analyze-filesystems.c
src/analyze/analyze-filesystems.h
src/analyze/analyze-has-tpm2.c
src/analyze/analyze-has-tpm2.h
src/analyze/analyze-image-policy.c
src/analyze/analyze-image-policy.h
src/analyze/analyze-inspect-elf.c
src/analyze/analyze-inspect-elf.h
src/analyze/analyze-log-control.c
src/analyze/analyze-log-control.h
src/analyze/analyze-malloc.c
src/analyze/analyze-malloc.h
src/analyze/analyze-nvpcrs.c
src/analyze/analyze-nvpcrs.h
src/analyze/analyze-pcrs.c
src/analyze/analyze-pcrs.h
src/analyze/analyze-plot.c
src/analyze/analyze-plot.h
src/analyze/analyze-security.c
src/analyze/analyze-security.h
src/analyze/analyze-service-watchdogs.c
src/analyze/analyze-service-watchdogs.h
src/analyze/analyze-smbios11.c
src/analyze/analyze-smbios11.h
src/analyze/analyze-srk.c
src/analyze/analyze-srk.h
src/analyze/analyze-syscall-filter.c
src/analyze/analyze-syscall-filter.h
src/analyze/analyze-time.c
src/analyze/analyze-time.h
src/analyze/analyze-timespan.c
src/analyze/analyze-timespan.h
src/analyze/analyze-timestamp.c
src/analyze/analyze-timestamp.h
src/analyze/analyze-unit-files.c
src/analyze/analyze-unit-files.h
src/analyze/analyze-unit-gdb.c
src/analyze/analyze-unit-gdb.h
src/analyze/analyze-unit-paths.c
src/analyze/analyze-unit-paths.h
src/analyze/analyze-unit-shell.c
src/analyze/analyze-unit-shell.h
src/analyze/analyze-verify.c
src/analyze/analyze-verify.h
src/analyze/analyze.c
src/backlight/backlight.c
src/bless-boot/bless-boot.c
src/bootctl/bootctl-cleanup.c
src/bootctl/bootctl-cleanup.h
src/bootctl/bootctl-install.c
src/bootctl/bootctl-install.h
src/bootctl/bootctl-random-seed.c
src/bootctl/bootctl-random-seed.h
src/bootctl/bootctl-reboot-to-firmware.c
src/bootctl/bootctl-reboot-to-firmware.h
src/bootctl/bootctl-set-efivar.c
src/bootctl/bootctl-set-efivar.h
src/bootctl/bootctl-status.c
src/bootctl/bootctl-status.h
src/bootctl/bootctl-uki.c
src/bootctl/bootctl-uki.h
src/bootctl/bootctl-unlink.c
src/bootctl/bootctl-unlink.h
src/bootctl/bootctl.c
src/busctl/busctl.c
src/coredump/coredumpctl.c
src/creds/creds.c
src/cryptsetup/cryptsetup.c
src/factory-reset/factory-reset-tool.c
src/home/homectl.c
src/hostname/hostnamectl.c
src/hwdb/hwdb.c
src/id128/id128.c
src/import/export.c
src/import/import-fs.c
src/import/import.c
src/import/importctl.c
src/import/pull.c
src/integritysetup/integritysetup.c
src/kernel-install/kernel-install.c
src/keyutil/keyutil.c
src/locale/localectl.c
src/login/loginctl.c
src/machine/machinectl.c
src/measure/measure-tool.c
src/network/networkctl-address-label.c
src/network/networkctl-address-label.h
src/network/networkctl-config-file.c
src/network/networkctl-config-file.h
src/network/networkctl-list.c
src/network/networkctl-list.h
src/network/networkctl-lldp.c
src/network/networkctl-lldp.h
src/network/networkctl-misc.c
src/network/networkctl-misc.h
src/network/networkctl-status-link.c
src/network/networkctl-status-link.h
src/oom/oomctl.c
src/pcrlock/pcrlock.c
src/portable/portablectl.c
src/report/report.c
src/resolve/resolvectl.c
src/sbsign/sbsign.c
src/shared/verbs.c
src/shared/verbs.h
src/sysext/sysext.c
src/systemctl/systemctl-add-dependency.c
src/systemctl/systemctl-add-dependency.h
src/systemctl/systemctl-cancel-job.c
src/systemctl/systemctl-cancel-job.h
src/systemctl/systemctl-clean-or-freeze.c
src/systemctl/systemctl-clean-or-freeze.h
src/systemctl/systemctl-compat-halt.c
src/systemctl/systemctl-daemon-reload.c
src/systemctl/systemctl-daemon-reload.h
src/systemctl/systemctl-edit.c
src/systemctl/systemctl-edit.h
src/systemctl/systemctl-enable.c
src/systemctl/systemctl-enable.h
src/systemctl/systemctl-is-active.c
src/systemctl/systemctl-is-active.h
src/systemctl/systemctl-is-enabled.c
src/systemctl/systemctl-is-enabled.h
src/systemctl/systemctl-is-system-running.c
src/systemctl/systemctl-is-system-running.h
src/systemctl/systemctl-kill.c
src/systemctl/systemctl-kill.h
src/systemctl/systemctl-list-dependencies.c
src/systemctl/systemctl-list-dependencies.h
src/systemctl/systemctl-list-jobs.c
src/systemctl/systemctl-list-jobs.h
src/systemctl/systemctl-list-machines.c
src/systemctl/systemctl-list-machines.h
src/systemctl/systemctl-list-unit-files.c
src/systemctl/systemctl-list-unit-files.h
src/systemctl/systemctl-list-units.c
src/systemctl/systemctl-list-units.h
src/systemctl/systemctl-log-setting.c
src/systemctl/systemctl-log-setting.h
src/systemctl/systemctl-mount.c
src/systemctl/systemctl-mount.h
src/systemctl/systemctl-preset-all.c
src/systemctl/systemctl-preset-all.h
src/systemctl/systemctl-reset-failed.c
src/systemctl/systemctl-reset-failed.h
src/systemctl/systemctl-service-watchdogs.c
src/systemctl/systemctl-service-watchdogs.h
src/systemctl/systemctl-set-default.c
src/systemctl/systemctl-set-default.h
src/systemctl/systemctl-set-environment.c
src/systemctl/systemctl-set-environment.h
src/systemctl/systemctl-set-property.c
src/systemctl/systemctl-set-property.h
src/systemctl/systemctl-show.c
src/systemctl/systemctl-show.h
src/systemctl/systemctl-start-special.c
src/systemctl/systemctl-start-special.h
src/systemctl/systemctl-start-unit.c
src/systemctl/systemctl-start-unit.h
src/systemctl/systemctl-switch-root.c
src/systemctl/systemctl-switch-root.h
src/systemctl/systemctl-trivial-method.c
src/systemctl/systemctl-trivial-method.h
src/systemctl/systemctl-whoami.c
src/systemctl/systemctl-whoami.h
src/sysupdate/sysupdate.c
src/sysupdate/updatectl.c
src/test/test-verbs.c
src/timedate/timedatectl.c
src/udev/iocost/iocost.c
src/udev/udevadm-cat.c
src/udev/udevadm-control.c
src/udev/udevadm-hwdb.c
src/udev/udevadm-info.c
src/udev/udevadm-lock.c
src/udev/udevadm-monitor.c
src/udev/udevadm-settle.c
src/udev/udevadm-test-builtin.c
src/udev/udevadm-test.c
src/udev/udevadm-trigger.c
src/udev/udevadm-verify.c
src/udev/udevadm-wait.c
src/udev/udevadm.c
src/udev/udevadm.h
src/update-utmp/update-utmp.c
src/userdb/userdbctl.c
src/varlinkctl/varlinkctl.c
src/veritysetup/veritysetup.c

index de9b899f12f37286fa9b41f44da1d9a8fafa3abe..7df7f91c2c31f571efd21eb6353c199a4797929d 100644 (file)
@@ -42,7 +42,7 @@ static int add_arch(Table *t, Architecture a) {
         return 0;
 }
 
-int verb_architectures(int argc, char *argv[], void *userdata) {
+int verb_architectures(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *table = NULL;
         int r;
 
index 06b947378447547be5ec327677d96c970802303b..d8ba8b82aeecadc73520265526e615148f06c519 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_architectures(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_architectures(int argc, char *argv[], uintptr_t _data, void *userdata);
index 7476342caa51b6ff3e7ce8060f2bd7c4846745f6..8651f2586a4b9ebd9fe3d0e52676f4b208f1b921 100644 (file)
@@ -9,7 +9,7 @@
 #include "format-table.h"
 #include "runtime-scope.h"
 
-int verb_blame(int argc, char *argv[], void *userdata) {
+int verb_blame(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(unit_times_free_arrayp) UnitTimes *times = NULL;
         _cleanup_(table_unrefp) Table *table = NULL;
index d9aa985c1e611fd9dc3cd1ad24f464fb352be904..362f6c9d36242975c89f4b900eff566ca121008a 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_blame(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_blame(int argc, char *argv[], uintptr_t _data, void *userdata);
index b6e23e0a4449c59c062d1173098107264304ff29..ac0b2da7d82863a1d5423a23c858a7a33bbda3cf 100644 (file)
@@ -122,7 +122,7 @@ static int test_calendar_one(usec_t n, const char *p) {
         return table_print(table, NULL);
 }
 
-int verb_calendar(int argc, char *argv[], void *userdata) {
+int verb_calendar(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r = 0;
         usec_t n;
 
index 3d6eac200ddaceafe0e9b91dc585844d76f3faf1..673a6ed61b56f18cae5cc00b16e43dc89420d007 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_calendar(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_calendar(int argc, char *argv[], uintptr_t _data, void *userdata);
index 57bb67ace997f9bc7450b36cf0e5eccc6227d655..3ddbdb4cc14ccc400647c5dabe663551e0c66025 100644 (file)
@@ -19,7 +19,7 @@ static int table_add_capability(Table *table, int c) {
         return 0;
 }
 
-int verb_capabilities(int argc, char *argv[], void *userdata) {
+int verb_capabilities(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *table = NULL;
         unsigned last_cap;
         int r;
index 07ff0887fd948fa7580bbfab1f6c95fe47aba9f2..fa6f5537e125d1c3011b75490b9a2c5b1743fa76 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_capabilities(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_capabilities(int argc, char *argv[], uintptr_t _data, void *userdata);
index e8c118a4b2e630fbff5e8ae2061637a2ab85a897..549b1b4f3f3ff11008855920b22a4b8c2c0ffb8f 100644 (file)
@@ -9,7 +9,7 @@
 #include "pretty-print.h"
 #include "strv.h"
 
-int verb_cat_config(int argc, char *argv[], void *userdata) {
+int verb_cat_config(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         pager_open(arg_pager_flags);
index 64e87a3a6d4fe2514031603ac2ed514992f8c0f4..c90d7e82a44641c6a62d554f1e118452197f580a 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_cat_config(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_cat_config(int argc, char *argv[], uintptr_t _data, void *userdata);
index 612465095f8b2b50e1dd62c934e40322bfaff9c0..9fe68b2de45daa65ada2a5fe58f3e189b6531043 100644 (file)
@@ -338,7 +338,7 @@ static int edid_search(char16_t **ret_panel) {
         return -ENOTUNIQ;
 }
 
-int verb_chid(int argc, char *argv[], void *userdata) {
+int verb_chid(int argc, char *argv[], uintptr_t _data, void *userdata) {
 
         _cleanup_(table_unrefp) Table *table = NULL;
         int r;
index a3f40c601341cbd950c61054bb6f12a434046b7a..64e2bab0e16b25dd75f80904fda2eae44356b723 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_chid(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_chid(int argc, char *argv[], uintptr_t _data, void *userdata);
index 2cf9b4a47ce72e53fe9862e6eb1eaeaede2f6cf1..5c15fd044d65a547a4c224214011787777754053 100644 (file)
@@ -7,7 +7,7 @@
 #include "log.h"
 #include "string-util.h"
 
-int verb_compare_versions(int argc, char *argv[], void *userdata) {
+int verb_compare_versions(int argc, char *argv[], uintptr_t _data, void *userdata) {
         const char *v1 = ASSERT_PTR(argv[1]), *v2 = ASSERT_PTR(argv[argc-1]);
         int r;
 
index 91913039035bc58ff3e9bf9db8422a843c149177..f907ffff2093a0370f9b10e615022d0093eed789 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_compare_versions(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_compare_versions(int argc, char *argv[], uintptr_t _data, void *userdata);
index 17d3126b7ba9ef2eb85a85b07fd4b9f8aa92c343..a928f84ef4e9522dbf4b5b0597e8db9f4423c532 100644 (file)
@@ -136,7 +136,7 @@ static int verify_conditions(char **lines, RuntimeScope scope, const char *unit,
         return r > 0 && q > 0 ? 0 : -EIO;
 }
 
-int verb_condition(int argc, char *argv[], void *userdata) {
+int verb_condition(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         r = verify_conditions(strv_skip(argv, 1), arg_runtime_scope, arg_unit, arg_root);
index 28ef51a45337395d6c18cbf4f38424a8fb1e2314..c385cdfb78182dd1dfc07ce56e277078c433241b 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_condition(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_condition(int argc, char *argv[], uintptr_t _data, void *userdata);
index 887baf8d149a01239feda54f548254ee9dd6290f..ea6d83d417cb69f22693d3764eb3f41a0f508394 100644 (file)
@@ -201,7 +201,7 @@ static int list_dependencies(sd_bus *bus, const char *name) {
         return list_dependencies_one(bus, name, 0, &units, 0);
 }
 
-int verb_critical_chain(int argc, char *argv[], void *userdata) {
+int verb_critical_chain(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(unit_times_free_arrayp) UnitTimes *times = NULL;
         int n, r;
index 844249c911eeb0350031da77bbb8ed4a029058ae..c4e84b1e1113e71b89dca2453f25662cdf3ca6c1 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_critical_chain(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_critical_chain(int argc, char *argv[], uintptr_t _data, void *userdata);
index 2d440055fa23a18af898c58d9bdc8d992a5f14e6..76c161105f3240f14d99fc91045b925d89cdb259 100644 (file)
@@ -12,7 +12,7 @@
 #include "json-util.h"
 #include "strv.h"
 
-int verb_dlopen_metadata(int argc, char *argv[], void *userdata) {
+int verb_dlopen_metadata(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         _cleanup_free_ char *abspath = NULL;
index 3f7355d96bd42878eb63f88df2581e3e5692f4ea..8abb8bb9c41d839e7d093c849ade4320a76bbf34 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_dlopen_metadata(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_dlopen_metadata(int argc, char *argv[], uintptr_t _data, void *userdata);
index 0a250b7c80ca511b56dbfbfe97378749b2bf993e..6f1044aa60356580bd162e4b7240ce77535ca376 100644 (file)
@@ -146,7 +146,7 @@ static int expand_patterns(sd_bus *bus, char **patterns, char ***ret) {
         return 0;
 }
 
-int verb_dot(int argc, char *argv[], void *userdata) {
+int verb_dot(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
index 144b43d1ef74f1ce6842ebc1c4bcae3275eeed67..944e1d7a30ce9ec8b3388cc446be70541b319a72 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_dot(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_dot(int argc, char *argv[], uintptr_t _data, void *userdata);
index 624403f2a9cc089e7e7688c40b40780b73662168..7d246535ccb6e21871b7fc3d32db02d1bb36f00f 100644 (file)
@@ -112,7 +112,7 @@ static int mangle_patterns(char **args, char ***ret) {
         return 0;
 }
 
-int verb_dump(int argc, char *argv[], void *userdata) {
+int verb_dump(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_strv_free_ char **patterns = NULL;
         int r;
index 5d6107cb589ac12d67eb91c3da9ac9f4b275e759..30c697e2adb31bb30c2bd412c034bda3d5cbe6f8 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_dump(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_dump(int argc, char *argv[], uintptr_t _data, void *userdata);
index 8b506848546723ad37285fc980dde81c59ae3234..b291ff0ab7cfbd0e7dffed4e4a5161a616d1d1ea 100644 (file)
@@ -7,7 +7,7 @@
 #include "log.h"
 #include "strv.h"
 
-int verb_exit_status(int argc, char *argv[], void *userdata) {
+int verb_exit_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *table = NULL;
         int r;
 
index ce14cdbb96de62c9c9ca50518c58093c9cb80902..63e1601066d3b2bb41f7fa6b4af2c484987e9ace 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_exit_status(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_exit_status(int argc, char *argv[], uintptr_t _data, void *userdata);
index 98c3d621463de42069864a70d4259a15ce946af5..f9721119f2e222c4fbd7ceec2c1691d6916659d2 100644 (file)
@@ -101,7 +101,7 @@ static int dump_fdstore(sd_bus *bus, const char *arg) {
         return EXIT_SUCCESS;
 }
 
-int verb_fdstore(int argc, char *argv[], void *userdata) {
+int verb_fdstore(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r;
 
index d548ad2b4d1dd27cf406a5332c60e3a31cd75b8e..b48496a384b9d98cbb46bbcc8985173f50bd4f68 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_fdstore(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_fdstore(int argc, char *argv[], uintptr_t _data, void *userdata);
index a0a2b5afed4663118d8db0f9ac2fe9d68a142974..3fc3471d8849c38d4a21ae920e3e95b4c63f6555 100644 (file)
@@ -112,7 +112,7 @@ static void dump_filesystem_set(const FilesystemSet *set) {
         }
 }
 
-int verb_filesystems(int argc, char *argv[], void *userdata) {
+int verb_filesystems(int argc, char *argv[], uintptr_t _data, void *userdata) {
 #if ! HAVE_LIBBPF
         return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Not compiled with libbpf support, sorry.");
 #endif
index 09045716d0a1cef4a4c6e99fb29dd3d3632a386c..480e5ae7deaf57eab8cacd5272dc07255608ee56 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_filesystems(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_filesystems(int argc, char *argv[], uintptr_t _data, void *userdata);
index 2e7890cea148fbf7b48483cdb0ef4621bd421a85..c01e686ce8ce59164d1f8914b8e55534f51f4beb 100644 (file)
@@ -8,11 +8,11 @@
 #include "time-util.h"
 #include "tpm2-util.h"
 
-int verb_has_tpm2(int argc, char **argv, void *userdata) {
+int verb_has_tpm2(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return verb_has_tpm2_generic(arg_quiet);
 }
 
-int verb_identify_tpm2(int argc, char **argv, void *userdata) {
+int verb_identify_tpm2(int argc, char **argv, uintptr_t _data, void *userdata) {
 #if HAVE_TPM2
         int r;
 
index b7d750090b57b21dae0442ffeed986989495121c..bb5af66fbbae17497c90d3f8e8a40357e99c8300 100644 (file)
@@ -1,5 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_has_tpm2(int argc, char *argv[], void *userdata);
-int verb_identify_tpm2(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_has_tpm2(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_identify_tpm2(int argc, char *argv[], uintptr_t _data, void *userdata);
index 65f54505979f8a5d5aac97d2335b7a448adbf9ab..93777c91a1f561a3d2d88897cde3b12455376ed6 100644 (file)
@@ -83,7 +83,7 @@ static int table_add_designator_line(Table *table, PartitionDesignator d, Partit
         return 0;
 }
 
-int verb_image_policy(int argc, char *argv[], void *userdata) {
+int verb_image_policy(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         for (int i = 1; i < argc; i++) {
index 16c1e966e896be440b96b61d1564eeec7f99cf34..3e62e1279149a4f6ccf76d4337dca5250d725b52 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_image_policy(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_image_policy(int argc, char *argv[], uintptr_t _data, void *userdata);
index d84601dfabe09814cd21ca656d5ce5a058d262f8..41dabd051c8221c10ff7d85a0fcbe21f8de724aa 100644 (file)
@@ -127,7 +127,7 @@ static int analyze_elf(char **filenames, sd_json_format_flags_t json_flags) {
         return 0;
 }
 
-int verb_elf_inspection(int argc, char *argv[], void *userdata) {
+int verb_elf_inspection(int argc, char *argv[], uintptr_t _data, void *userdata) {
         pager_open(arg_pager_flags);
 
         return analyze_elf(strv_skip(argv, 1), arg_json_format_flags);
index a790eae6bb68e2e9f85970c87d44430f0cc8759d..890572ea00a011da688f2632839a01e8aefe994b 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_elf_inspection(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_elf_inspection(int argc, char *argv[], uintptr_t _data, void *userdata);
index f105d7d0326ab7bfb4051eeb52bfdc8c43945666..13a5860436855f539f444e0b7bb0fe5982678a8b 100644 (file)
@@ -8,7 +8,7 @@
 #include "runtime-scope.h"
 #include "verb-log-control.h"
 
-int verb_log_control(int argc, char *argv[], void *userdata) {
+int verb_log_control(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r;
 
index 350c22861a66082d2169e6b0689845b6103b3449..0ad41aeddc1707247d70580b487479fbc8dba461 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_log_control(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_log_control(int argc, char *argv[], uintptr_t _data, void *userdata);
index 35f533e790ae62c463074fc2f43ea4ba22a71bda..c892b37ce312add4e303ea0bb8baef9dc28e1d98 100644 (file)
@@ -34,7 +34,7 @@ static int dump_malloc_info(sd_bus *bus, char *service) {
         return bus_message_dump_fd(reply);
 }
 
-int verb_malloc(int argc, char *argv[], void *userdata) {
+int verb_malloc(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         char **services = STRV_MAKE("org.freedesktop.systemd1");
         int r;
index d3feabd757efb19f42986add8f24daf166d833d6..3e30467e77b598a0baaa8eb2189f144abb614159 100644 (file)
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
 #pragma once
 
-int verb_malloc(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_malloc(int argc, char *argv[], uintptr_t _data, void *userdata);
index ddb850fcef5a321a42dbd0716197aef71fb043cc..68e7acb33ac3e60bcbc4f9b2ff36879ae15e9069 100644 (file)
@@ -50,7 +50,7 @@ static int add_nvpcr_to_table(Tpm2Context **c, Table *t, const char *name) {
 }
 #endif
 
-int verb_nvpcrs(int argc, char *argv[], void *userdata) {
+int verb_nvpcrs(int argc, char *argv[], uintptr_t _data, void *userdata) {
 #if HAVE_TPM2
         _cleanup_(tpm2_context_unrefp) Tpm2Context *c = NULL;
         _cleanup_(table_unrefp) Table *table = NULL;
index 258005617ea1ec67b15cc8162e024461d1ce0915..7e287f2298a80280aea013d6635088efb5a0a0a5 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_nvpcrs(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_nvpcrs(int argc, char *argv[], uintptr_t _data, void *userdata);
index 8c1d7f3cfc65a7385d5af31960fe76bfd33f28ef..f98f4a8d50fe925acbc980968145d46c83b74d17 100644 (file)
@@ -96,7 +96,7 @@ static int add_pcr_to_table(Table *table, const char *alg, uint32_t pcr) {
         return 0;
 }
 
-int verb_pcrs(int argc, char *argv[], void *userdata) {
+int verb_pcrs(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *table = NULL;
         const char *alg = NULL;
         int r;
index 2a59511885aeeb9d09c7ff80f08505c77a9b93a7..7fa5a8379f2516e012d01f616c9c2aff0703edea 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_pcrs(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_pcrs(int argc, char *argv[], uintptr_t _data, void *userdata);
index 21a9aa9f1cf087eb9186552ec1a5c72a396a1ff7..8460757b8ac89264abebfa533c96f7daefd53f38 100644 (file)
@@ -470,7 +470,7 @@ static int produce_plot_as_text(UnitTimes *times, const BootTimes *boot) {
         return show_table(table, "Units");
 }
 
-int verb_plot(int argc, char *argv[], void *userdata) {
+int verb_plot(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(free_host_infop) HostInfo *host = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(unit_times_free_arrayp) UnitTimes *times = NULL;
index eb2e398b3109a160d29a758d99a109aed4da17c4..4854498ce981015d6ecd0d8230a9d07fc0ed400a 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_plot(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_plot(int argc, char *argv[], uintptr_t _data, void *userdata);
index 3e086a1775d6b1afb4cadb60eda3678f007e5375..0f763f75e9eba053a09daf0031b4b3c8b816a2b8 100644 (file)
@@ -2904,7 +2904,7 @@ static int analyze_security(sd_bus *bus,
         return ret;
 }
 
-int verb_security(int argc, char *argv[], void *userdata) {
+int verb_security(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *policy = NULL;
         int r;
index 82f4c7fdeea7f2715ba9b297f122a6b58b71624f..cd5fec307cd9bd1d0c096c5ab0413c843e26da46 100644 (file)
@@ -1,10 +1,12 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
+#include "shared-forward.h"
+
 typedef enum AnalyzeSecurityFlags {
         ANALYZE_SECURITY_SHORT             = 1 << 0,
         ANALYZE_SECURITY_ONLY_LOADED       = 1 << 1,
         ANALYZE_SECURITY_ONLY_LONG_RUNNING = 1 << 2,
 } AnalyzeSecurityFlags;
 
-int verb_security(int argc, char *argv[], void *userdata);
+int verb_security(int argc, char *argv[], uintptr_t _data, void *userdata);
index 4a2892273c96896baa32d2f43aa0c117f0f26c7c..4d27fef5330c3c7dd1cb633769bac87ad046b335 100644 (file)
@@ -11,7 +11,7 @@
 #include "runtime-scope.h"
 #include "string-util.h"
 
-int verb_service_watchdogs(int argc, char *argv[], void *userdata) {
+int verb_service_watchdogs(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int b, r;
index 2f59f5a3f437627108f29b3e34b77ef3252e08eb..e626a223c35f5fd852a5a0b8638f3b43fc607457 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_service_watchdogs(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_service_watchdogs(int argc, char *argv[], uintptr_t _data, void *userdata);
index 30c18fef273b78997b47616ae163309543b8dcf9..d76bc106d199ac8df0a4c8fbec2d20773c58b6e3 100644 (file)
@@ -10,7 +10,7 @@
 #include "log.h"
 #include "smbios11.h"
 
-int verb_smbios11(int argc, char *argv[], void *userdata) {
+int verb_smbios11(int argc, char *argv[], uintptr_t _data, void *userdata) {
         unsigned n = 0;
         int r;
 
index 4b1f334dc8fd7b06b62d7fb7c1e92dfed540c870..32ae157fa11360bda8ab5234e9a3f9fc548f5d95 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_smbios11(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_smbios11(int argc, char *argv[], uintptr_t _data, void *userdata);
index 2b81c864a0dacea596a656b5f11bc973db505b1a..dcf9459f2dee38f54190b0b4102d8e96e2440ace 100644 (file)
@@ -10,7 +10,7 @@
 #include "terminal-util.h"
 #include "tpm2-util.h"
 
-int verb_srk(int argc, char *argv[], void *userdata) {
+int verb_srk(int argc, char *argv[], uintptr_t _data, void *userdata) {
 #if HAVE_TPM2
         _cleanup_(tpm2_context_unrefp) Tpm2Context *c = NULL;
         _cleanup_(Esys_Freep) TPM2B_PUBLIC *public = NULL;
index 26028354f86abf853bd933f0843dfab7c299bfc8..73d3c865ad0e4a4fd3995de3a663e0bcd8e89e77 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_srk(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_srk(int argc, char *argv[], uintptr_t _data, void *userdata);
index 11024803fdf3de0659f34dda66c8d51bcea1ee66..cb2a2eab16acdcbc50713d1068b2ffd119aead5b 100644 (file)
@@ -106,7 +106,7 @@ static void dump_syscall_filter(const SyscallFilterSet *set) {
                 printf("    %s%s%s\n", syscall[0] == '@' ? ansi_underline() : "", syscall, ansi_normal());
 }
 
-int verb_syscall_filters(int argc, char *argv[], void *userdata) {
+int verb_syscall_filters(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         pager_open(arg_pager_flags);
@@ -195,7 +195,7 @@ int verb_syscall_filters(int argc, char *argv[], void *userdata) {
 }
 
 #else
-int verb_syscall_filters(int argc, char *argv[], void *userdata) {
+int verb_syscall_filters(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Not compiled with syscall filters, sorry.");
 }
 #endif
index 3a1af85a69456f3405fe10871c50cd59bc0ad61a..a648b3c603b3abad0fab884c6465e3d4b18cb65a 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_syscall_filters(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_syscall_filters(int argc, char *argv[], uintptr_t _data, void *userdata);
index da69eebeb4e9d8f961156020913471a5fb8cf5b1..a4faee977f6aa99a11fd04049d291eb329b73096 100644 (file)
@@ -9,7 +9,7 @@
 #include "bus-util.h"
 #include "runtime-scope.h"
 
-int verb_time(int argc, char *argv[], void *userdata) {
+int verb_time(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_free_ char *buf = NULL;
         int r;
index a8f8575c3b6f7b5ec8d3755b5b315a87a9be97a6..23591d8fd4ddf8cc59107c1218ccb203c6ce5860 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_time(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_time(int argc, char *argv[], uintptr_t _data, void *userdata);
index cb6e4f00fe1214703fa067fcf14e386e101365e8..fb077617d476e96f96f475d10824fcd3ef688343 100644 (file)
@@ -9,7 +9,7 @@
 #include "strv.h"
 #include "time-util.h"
 
-int verb_timespan(int argc, char *argv[], void *userdata) {
+int verb_timespan(int argc, char *argv[], uintptr_t _data, void *userdata) {
         STRV_FOREACH(input_timespan, strv_skip(argv, 1)) {
                 _cleanup_(table_unrefp) Table *table = NULL;
                 usec_t output_usecs;
index 46d22956008199cc07b8b7e4bde4c6be6676f0ad..b2f238b4130292529badbb000b4d3cfbc24be464 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_timespan(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_timespan(int argc, char *argv[], uintptr_t _data, void *userdata);
index 227113326834529a400de2b7f7512d563824d6d6..e7ba6e1bcc1b9e42ea913de68559006edc7bf0a8 100644 (file)
@@ -76,7 +76,7 @@ static int test_timestamp_one(const char *p) {
         return table_print(table, NULL);
 }
 
-int verb_timestamp(int argc, char *argv[], void *userdata) {
+int verb_timestamp(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r = 0;
 
         char **args = strv_skip(argv, 1);
index 43e4b57d2a330407471624d460d9d649ffb8c60d..e71ab7055414cfe1b1444d3158b4e17504ae8833 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_timestamp(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_timestamp(int argc, char *argv[], uintptr_t _data, void *userdata);
index 2d59d1808fdcbd3502b0c00af7202a7004a01546..a15815ddcc0000dfd45a50d14755ae0032773785 100644 (file)
@@ -21,7 +21,7 @@ static bool strv_fnmatch_strv_or_empty(char* const* patterns, char **strv, int f
         return false;
 }
 
-int verb_unit_files(int argc, char *argv[], void *userdata) {
+int verb_unit_files(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_hashmap_free_ Hashmap *unit_ids = NULL, *unit_names = NULL;
         _cleanup_(lookup_paths_done) LookupPaths lp = {};
         char **patterns = strv_skip(argv, 1);
index c193fd82746a6e9c9ebec37fc6b74a30aa504af0..4dc46e7d7b3239fef661be7718b0127b592bc955 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_unit_files(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_unit_files(int argc, char *argv[], uintptr_t _data, void *userdata);
index 1d989462cf15df484ef5eb07e1814b91e6acab3d..b208f0b9289fe7fa92119aedaece62409ca2860d 100644 (file)
@@ -19,7 +19,7 @@
 #include "unit-def.h"
 #include "unit-name.h"
 
-int verb_unit_gdb(int argc, char *argv[], void *userdata) {
+int verb_unit_gdb(int argc, char *argv[], uintptr_t _data, void *userdata) {
         static const struct sigaction sa = {
                 .sa_sigaction = sigterm_process_group_handler,
                 .sa_flags = SA_SIGINFO,
index a3df6b128f15c55ba64b73254b7c7d1e2eec9a47..4e62610c5864a16b5846067c1fe4fbe03a4b5b35 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_unit_gdb(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_unit_gdb(int argc, char *argv[], uintptr_t _data, void *userdata);
index 500b768299080bb4d62e9e4f001935c3d7be2432..3903166bf29f566d62e9aee8236776105113b050 100644 (file)
@@ -7,7 +7,7 @@
 #include "path-lookup.h"
 #include "strv.h"
 
-int verb_unit_paths(int argc, char *argv[], void *userdata) {
+int verb_unit_paths(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(lookup_paths_done) LookupPaths paths = {};
         int r;
 
index b8d46e87d00a7915a8db6410f66181a4a5598d70..609c17074f0c459228e881a73a56f3a91867dcd2 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_unit_paths(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_unit_paths(int argc, char *argv[], uintptr_t _data, void *userdata);
index 8990ffdf1de136784aa0b7ec6c90ccff5969e953..98dc474e6211c4c6d51af6ef698c925fabb719fd 100644 (file)
@@ -20,7 +20,7 @@
 #include "unit-def.h"
 #include "unit-name.h"
 
-int verb_unit_shell(int argc, char *argv[], void *userdata) {
+int verb_unit_shell(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
index 7c15e083a8e0f2519038aa18c42c314528fd5fe5..533cd9a9892f789fcd37af64f97d4b14ccbb3cfe 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_unit_shell(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_unit_shell(int argc, char *argv[], uintptr_t _data, void *userdata);
index b87fc45767d6d099058e1705251c60079437b612..3369f6c3b96a121a79562ab21e23e5ab5a33be42 100644 (file)
@@ -59,7 +59,7 @@ static int process_aliases(char *argv[], char *tempdir, char ***ret) {
         return 0;
 }
 
-int verb_verify(int argc, char *argv[], void *userdata) {
+int verb_verify(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_strv_free_ char **filenames = NULL;
         _cleanup_(rm_rf_physical_and_freep) char *tempdir = NULL;
         int r;
index 4892c9aa4f532b171493a5fa9b9034fdc52cd4ca..0108ccf3a1b123de0b558c73400859d5317bd29a 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_verify(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_verify(int argc, char *argv[], uintptr_t _data, void *userdata);
index af456314db4465f9ff8aae25e831707df37dadfe..4d078a483851e4c90caeb31092c4c99974213a38 100644 (file)
@@ -170,7 +170,7 @@ void time_parsing_hint(const char *p, bool calendar, bool timestamp, bool timesp
                            "Use 'systemd-analyze timespan \"%s\"' instead?", p);
 }
 
-static int verb_transient_settings(int argc, char *argv[], void *userdata) {
+static int verb_transient_settings(int argc, char *argv[], uintptr_t _data, void *userdata) {
         assert(argc >= 2);
 
         pager_open(arg_pager_flags);
@@ -193,7 +193,7 @@ static int verb_transient_settings(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL, *dot_link = NULL;
         int r;
 
@@ -326,6 +326,10 @@ static int help(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
+
 static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_VERSION = 0x100,
@@ -466,7 +470,7 @@ static int parse_argv(int argc, char *argv[]) {
                         break;
 
                 case 'h':
-                        return help(0, NULL, NULL);
+                        return help();
 
                 case ARG_VERSION:
                         return version();
@@ -773,7 +777,7 @@ static int run(int argc, char *argv[]) {
         _cleanup_(umount_and_freep) char *mounted_dir = NULL;
 
         static const Verb verbs[] = {
-                { "help",               VERB_ANY, VERB_ANY, 0,            help                         },
+                { "help",               VERB_ANY, VERB_ANY, 0,            verb_help                    },
                 { "time",               VERB_ANY, 1,        VERB_DEFAULT, verb_time                    },
                 { "blame",              VERB_ANY, 1,        0,            verb_blame                   },
                 { "critical-chain",     VERB_ANY, VERB_ANY, 0,            verb_critical_chain          },
index 027379809d10f16ecacfafeced29d7bc9cfab4d7..69bd42ebcc828172bc02bb764705a47fa170b269 100644 (file)
@@ -555,7 +555,7 @@ static int device_new_from_arg(const char *s, sd_device **ret) {
         return 1; /* Found. */
 }
 
-static int verb_load(int argc, char *argv[], void *userdata) {
+static int verb_load(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_device_unrefp) sd_device *device = NULL;
         unsigned max_brightness, brightness, percent;
         bool clamp;
@@ -605,7 +605,7 @@ static int verb_load(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_save(int argc, char *argv[], void *userdata) {
+static int verb_save(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_device_unrefp) sd_device *device = NULL;
         _cleanup_free_ char *path = NULL;
         unsigned max_brightness, brightness;
index 1df341cf59baf9d78e188ae6b6684acccf4f6e7a..72902e3d5017a7f7320d90c3890408cdb5ec3deb 100644 (file)
@@ -26,7 +26,7 @@ static char **arg_path = NULL;
 
 STATIC_DESTRUCTOR_REGISTER(arg_path, strv_freep);
 
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -54,6 +54,10 @@ static int help(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
+
 static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_PATH = 0x100,
@@ -76,8 +80,7 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
 
                 case 'h':
-                        help(0, NULL, NULL);
-                        return 0;
+                        return help();
 
                 case ARG_VERSION:
                         return version();
@@ -335,7 +338,7 @@ static int make_bad(const char *prefix, uint64_t done, const char *suffix, char
         return 0;
 }
 
-static int verb_status(int argc, char *argv[], void *userdata) {
+static int verb_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_free_ char *path = NULL, *prefix = NULL, *suffix = NULL, *good = NULL, *bad = NULL;
         uint64_t left, done;
         int r;
@@ -441,7 +444,7 @@ static int rename_in_dir_idempotent(int fd, const char *from, const char *to) {
          return 1;
 }
 
-static int verb_set(int argc, char *argv[], void *userdata) {
+static int verb_set(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_free_ char *path = NULL, *prefix = NULL, *suffix = NULL, *good = NULL, *bad = NULL;
         const char *target, *source1, *source2;
         uint64_t left, done;
@@ -547,7 +550,7 @@ exists:
 
 static int run(int argc, char *argv[]) {
         static const Verb verbs[] = {
-                { "help",          VERB_ANY, VERB_ANY, 0,            help        },
+                { "help",          VERB_ANY, VERB_ANY, 0,            verb_help   },
                 { "status",        VERB_ANY, 1,        VERB_DEFAULT, verb_status },
                 { "good",          VERB_ANY, 1,        0,            verb_set    },
                 { "bad",           VERB_ANY, 1,        0,            verb_set    },
index 59f67edb999bcd023d5fdf7d130172faf43b9433..66e000560584334a783cb94cdf2182ca1873c876 100644 (file)
@@ -87,7 +87,7 @@ static int cleanup_orphaned_files(
         return r;
 }
 
-int verb_cleanup(int argc, char *argv[], void *userdata) {
+int verb_cleanup(int argc, char *argv[], uintptr_t _data, void *userdata) {
         dev_t esp_devid = 0, xbootldr_devid = 0;
         int r;
 
index ffe930b90073d83e99b720e355f65d6db95b9fa6..22d087374eb0b906d1753144d67667e1b8c6e0f6 100644 (file)
@@ -3,4 +3,4 @@
 
 #include "shared-forward.h"
 
-int verb_cleanup(int argc, char *argv[], void *userdata);
+int verb_cleanup(int argc, char *argv[], uintptr_t _data, void *userdata);
index 4d56c6874e9ca4824723b1a355c4105aab5c9eb9..3724a1cfb940260ea264be5be7036f4937854f14 100644 (file)
@@ -1661,7 +1661,7 @@ static int run_install(InstallContext *c) {
         return install_variables(c, path);
 }
 
-int verb_install(int argc, char *argv[], void *userdata) {
+int verb_install(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         /* Invoked for both "update" and "install" */
@@ -1882,7 +1882,7 @@ static int remove_loader_variables(void) {
         return r;
 }
 
-int verb_remove(int argc, char *argv[], void *userdata) {
+int verb_remove(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_id128_t uuid = SD_ID128_NULL;
         int r;
 
@@ -1956,7 +1956,7 @@ int verb_remove(int argc, char *argv[], void *userdata) {
         return RET_GATHER(r, remove_loader_variables());
 }
 
-int verb_is_installed(int argc, char *argv[], void *userdata) {
+int verb_is_installed(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         _cleanup_(install_context_done) InstallContext c = INSTALL_CONTEXT_NULL;
index f2d7fab5c965e54bf3ad22a68cfda6a938ee8a0f..c9019520cc9e926a85c70d568f937c1723c9f121 100644 (file)
@@ -3,8 +3,8 @@
 
 #include "shared-forward.h"
 
-int verb_install(int argc, char *argv[], void *userdata);
-int verb_remove(int argc, char *argv[], void *userdata);
-int verb_is_installed(int argc, char *argv[], void *userdata);
+int verb_install(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_remove(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_is_installed(int argc, char *argv[], uintptr_t _data, void *userdata);
 
 int vl_method_install(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
index 6f5249aeeb4c4bf7cc5a546ef4d604888e57ca62..2ef491c54f84e6daef4cc33e034a10536a65396d 100644 (file)
@@ -201,7 +201,7 @@ int install_random_seed(const char *esp) {
         return set_system_token();
 }
 
-int verb_random_seed(int argc, char *argv[], void *userdata) {
+int verb_random_seed(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         r = find_esp_and_warn(arg_root, arg_esp_path, /* unprivileged_mode= */ false, &arg_esp_path);
index 91596d3c818e2769fc4989ce372ab9fadce6935c..722c511b748086b0481f42ed9fa9e2b25fe14816 100644 (file)
@@ -1,6 +1,8 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
+#include "shared-forward.h"
+
 int install_random_seed(const char *esp);
 
-int verb_random_seed(int argc, char *argv[], void *userdata);
+int verb_random_seed(int argc, char *argv[], uintptr_t _data, void *userdata);
index be20a4a13227a6f34585a3864dfa7b281a34bf7b..aa5f186af9d4a461ce0624f0ed27c8a945d6eaaf 100644 (file)
@@ -12,7 +12,7 @@
 #include "log.h"
 #include "parse-util.h"
 
-int verb_reboot_to_firmware(int argc, char *argv[], void *userdata) {
+int verb_reboot_to_firmware(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         r = verify_touch_variables_allowed(argv[0]);
index c8b55004480be8e6cf3507b3a6c8f630f37d2fc0..0262c861c4006c6ed00214ba15c685fbdf6be78a 100644 (file)
@@ -3,7 +3,7 @@
 
 #include "shared-forward.h"
 
-int verb_reboot_to_firmware(int argc, char *argv[], void *userdata);
+int verb_reboot_to_firmware(int argc, char *argv[], uintptr_t _data, void *userdata);
 
 int vl_method_set_reboot_to_firmware(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
 int vl_method_get_reboot_to_firmware(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
index bb853d65afe884aca132108ffb5d6df7aba61a28..5edcd29f313bedce52a0bccb5ddc58843dfe7ef3 100644 (file)
@@ -129,7 +129,7 @@ static int parse_loader_entry_target_arg(const char *arg1, char16_t **ret_target
         return 0;
 }
 
-int verb_set_efivar(int argc, char *argv[], void *userdata) {
+int verb_set_efivar(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         r = verify_touch_variables_allowed(argv[0]);
index 6441681081ae17b229e1a94d53c5e12b80022344..ee5e518b440a9a6c973a65d483906fa4ebceb664 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_set_efivar(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_set_efivar(int argc, char *argv[], uintptr_t _data, void *userdata);
index 0804070d24dfcc524c3015110a2290cbb69718c3..4184e3d4249aac12a35f339143f388c92c7e740f 100644 (file)
@@ -326,7 +326,7 @@ static void print_yes_no_line(bool first, bool good, const char *name) {
                name);
 }
 
-int verb_status(int argc, char *argv[], void *userdata) {
+int verb_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_id128_t esp_uuid = SD_ID128_NULL, xbootldr_uuid = SD_ID128_NULL;
         dev_t esp_devid = 0, xbootldr_devid = 0;
         int r, k;
@@ -621,7 +621,7 @@ int verb_status(int argc, char *argv[], void *userdata) {
         return r;
 }
 
-int verb_list(int argc, char *argv[], void *userdata) {
+int verb_list(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(boot_config_free) BootConfig config = BOOT_CONFIG_NULL;
         dev_t esp_devid = 0, xbootldr_devid = 0;
         int r;
index 36609fb075b646272fe41199c7a0b8e58c30ae89..941bcdd9aca79ede7db2065bae96360f7fcb95e6 100644 (file)
@@ -3,7 +3,7 @@
 
 #include "shared-forward.h"
 
-int verb_status(int argc, char *argv[], void *userdata);
-int verb_list(int argc, char *argv[], void *userdata);
+int verb_status(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_list(int argc, char *argv[], uintptr_t _data, void *userdata);
 
 int vl_method_list_boot_entries(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
index 2f71ccd36e1de1e38bb05fa055051e9f053b0595..1b52252210036b51eee4b5ee4d6a3ac60fc47840 100644 (file)
@@ -6,7 +6,7 @@
 #include "bootctl-uki.h"
 #include "kernel-image.h"
 
-int verb_kernel_identify(int argc, char *argv[], void *userdata) {
+int verb_kernel_identify(int argc, char *argv[], uintptr_t _data, void *userdata) {
         KernelImageType t;
         int r;
 
@@ -18,7 +18,7 @@ int verb_kernel_identify(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-int verb_kernel_inspect(int argc, char *argv[], void *userdata) {
+int verb_kernel_inspect(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_free_ char *cmdline = NULL, *uname = NULL, *pname = NULL;
         KernelImageType t;
         int r;
index 99c8ff5c8bf9f52232c0aa3c9dafdbdf6973a88a..febac7394d35457e2989b8b14b91c60a186aab71 100644 (file)
@@ -3,5 +3,5 @@
 
 #include "shared-forward.h"
 
-int verb_kernel_identify(int argc, char *argv[], void *userdata);
-int verb_kernel_inspect(int argc, char *argv[], void *userdata);
+int verb_kernel_identify(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_kernel_inspect(int argc, char *argv[], uintptr_t _data, void *userdata);
index 287b2b7904c9204e24a999ed89e371d14f93c7d2..428c751f062790cf318c1f6a8de031a93f2b3bfe 100644 (file)
@@ -199,7 +199,7 @@ static int unlink_entry(const BootConfig *config, const char *root, const char *
         return 0;
 }
 
-int verb_unlink(int argc, char *argv[], void *userdata) {
+int verb_unlink(int argc, char *argv[], uintptr_t _data, void *userdata) {
         dev_t esp_devid = 0, xbootldr_devid = 0;
         int r;
 
index 5737977ae5ecf4d042be60fe15c0babd3ba31629..5c33088859437f1ca28447a02ab1959b73c6c5e1 100644 (file)
@@ -3,6 +3,6 @@
 
 #include "shared-forward.h"
 
-int verb_unlink(int argc, char *argv[], void *userdata);
+int verb_unlink(int argc, char *argv[], uintptr_t _data, void *userdata);
 
 int boot_config_count_known_files(const BootConfig *config, const char* root, Hashmap **ret_known_files);
index 65a5da3358fafcdfbe5858d8ef11af9fbca9703a..68478612ed891e57aed93d7f1b1e20cfdbdf6176 100644 (file)
@@ -244,7 +244,7 @@ GracefulMode arg_graceful(void) {
         return _arg_graceful;
 }
 
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -355,6 +355,10 @@ static int help(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
+
 static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_ESP_PATH = 0x100,
@@ -432,8 +436,7 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
 
                 case 'h':
-                        help(0, NULL, NULL);
-                        return 0;
+                        return help();
 
                 case ARG_VERSION:
                         return version();
@@ -672,7 +675,7 @@ static int parse_argv(int argc, char *argv[]) {
 
 static int bootctl_main(int argc, char *argv[]) {
         static const Verb verbs[] = {
-                { "help",                VERB_ANY, VERB_ANY, 0,            help                     },
+                { "help",                VERB_ANY, VERB_ANY, 0,            verb_help                },
                 { "status",              VERB_ANY, 1,        VERB_DEFAULT, verb_status              },
                 { "install",             VERB_ANY, 1,        0,            verb_install             },
                 { "update",              VERB_ANY, 1,        0,            verb_install             },
index 2cebd311c0caa5b28deedc9d6a576f75aedb0dab..48635fad64c4c7fa963629964ca174cdc1467d9b 100644 (file)
@@ -175,7 +175,7 @@ static void notify_bus_error(const sd_bus_error *error) {
         (void) sd_notifyf(/* unset_environment= */ false, "BUSERROR=%s", error->name);
 }
 
-static int verb_list_bus_names(int argc, char **argv, void *userdata) {
+static int verb_list_bus_names(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_strv_free_ char **acquired = NULL, **activatable = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_hashmap_free_ Hashmap *names = NULL;
@@ -535,7 +535,7 @@ static int tree_one(sd_bus *bus, const char *service) {
         return r;
 }
 
-static int verb_tree(int argc, char **argv, void *userdata) {
+static int verb_tree(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r;
 
@@ -994,7 +994,7 @@ static int members_flags_to_string(const Member *m, char **ret) {
         return 0;
 }
 
-static int verb_introspect(int argc, char **argv, void *userdata) {
+static int verb_introspect(int argc, char *argv[], uintptr_t _data, void *userdata) {
         static const XMLIntrospectOps ops = {
                 .on_interface = on_interface,
                 .on_method = on_method,
@@ -1381,11 +1381,11 @@ static int monitor(int argc, char **argv, int (*dump)(sd_bus_message *m, FILE *f
         }
 }
 
-static int verb_monitor(int argc, char **argv, void *userdata) {
+static int verb_monitor(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return monitor(argc, argv, sd_json_format_enabled(arg_json_format_flags) ? message_json : message_dump);
 }
 
-static int verb_capture(int argc, char **argv, void *userdata) {
+static int verb_capture(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_free_ char *osname = NULL;
         static const char info[] =
                 "busctl (systemd) " PROJECT_VERSION_FULL " (Git " GIT_VERSION ")";
@@ -1412,7 +1412,7 @@ static int verb_capture(int argc, char **argv, void *userdata) {
         return r;
 }
 
-static int verb_status(int argc, char **argv, void *userdata) {
+static int verb_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_creds_unrefp) sd_bus_creds *creds = NULL;
         pid_t pid;
@@ -1782,7 +1782,7 @@ static int bus_message_dump(sd_bus_message *m, uint64_t flags) {
         return 0;
 }
 
-static int verb_call(int argc, char **argv, void *userdata) {
+static int verb_call(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *reply = NULL;
@@ -1849,7 +1849,7 @@ static int verb_call(int argc, char **argv, void *userdata) {
         return bus_message_dump(reply, /* flags= */ 0);
 }
 
-static int verb_emit_signal(int argc, char **argv, void *userdata) {
+static int verb_emit_signal(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_fdset_free_ FDSet *passed_fdset = NULL;
@@ -1894,7 +1894,7 @@ static int verb_emit_signal(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_get_property(int argc, char **argv, void *userdata) {
+static int verb_get_property(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r;
@@ -1952,7 +1952,7 @@ static int on_bus_signal(sd_bus_message *msg, void *userdata, sd_bus_error *ret_
         return 0;
 }
 
-static int verb_wait_signal(int argc, char **argv, void *userdata) {
+static int verb_wait_signal(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_event_unrefp) sd_event *e = NULL;
         _cleanup_(sd_event_source_unrefp) sd_event_source *timer = NULL;
@@ -2000,7 +2000,7 @@ static int verb_wait_signal(int argc, char **argv, void *userdata) {
         return sd_event_loop(e);
 }
 
-static int verb_set_property(int argc, char **argv, void *userdata) {
+static int verb_set_property(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
@@ -2131,7 +2131,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char **argv, void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index 2a07935a72f71f383d27c526ac3552863cf11e0d..0f655a4694d9bfc063f257c48a6ba4d7cd172ee8 100644 (file)
@@ -223,7 +223,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
@@ -272,7 +272,7 @@ static int parse_argv(int argc, char *argv[]) {
         while ((c = getopt_long(argc, argv, "hA:o:F:1D:rS:U:qn:", options, NULL)) >= 0)
                 switch (c) {
                 case 'h':
-                        return verb_help(0, NULL, NULL);
+                        return help();
 
                 case ARG_VERSION:
                         return version();
@@ -893,7 +893,7 @@ static int print_entry(
                 return print_info(stdout, j, n_found > 0);
 }
 
-static int verb_dump_list(int argc, char **argv, void *userdata) {
+static int verb_dump_list(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_journal_closep) sd_journal *j = NULL;
         _cleanup_(table_unrefp) Table *t = NULL;
         size_t n_found = 0;
@@ -1144,7 +1144,7 @@ error:
         return r;
 }
 
-static int verb_dump_core(int argc, char **argv, void *userdata) {
+static int verb_dump_core(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_journal_closep) sd_journal *j = NULL;
         _cleanup_fclose_ FILE *f = NULL;
         int r;
@@ -1180,7 +1180,7 @@ static int verb_dump_core(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_run_debug(int argc, char **argv, void *userdata) {
+static int verb_run_debug(int argc, char *argv[], uintptr_t _data, void *userdata) {
         static const struct sigaction sa = {
                 .sa_sigaction = sigterm_process_group_handler,
                 .sa_flags = SA_SIGINFO,
index bcdf3d30384b00f40a6c928ddaf0c01494dea678..5f60f781f6c45a9c2093bf1317d0db26a5d6d2f8 100644 (file)
@@ -305,7 +305,7 @@ static int add_credentials_to_table(Table *t, bool encrypted) {
         return 1; /* Creds dir set */
 }
 
-static int verb_list(int argc, char **argv, void *userdata) {
+static int verb_list(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *t = NULL;
         int r, q;
 
@@ -465,14 +465,14 @@ static int write_blob(FILE *f, const void *data, size_t size) {
         return 0;
 }
 
-static int verb_cat(int argc, char **argv, void *userdata) {
+static int verb_cat(int argc, char *argv[], uintptr_t _data, void *userdata) {
         usec_t timestamp;
         int r, ret = 0;
 
         timestamp = arg_timestamp != USEC_INFINITY ? arg_timestamp : now(CLOCK_REALTIME);
 
         STRV_FOREACH(cn, strv_skip(argv, 1)) {
-                _cleanup_(erase_and_freep) void *data = NULL;
+                _cleanup_(erase_and_freep) void *content = NULL;
                 size_t size = 0;
                 int encrypted;
 
@@ -500,7 +500,7 @@ static int verb_cat(int argc, char **argv, void *userdata) {
                                         UINT64_MAX, SIZE_MAX,
                                         flags,
                                         NULL,
-                                        (char**) &data, &size);
+                                        (char**) &content, &size);
                         if (r == -ENOENT) /* Not found */
                                 continue;
                         if (r >= 0) /* Found */
@@ -522,7 +522,7 @@ static int verb_cat(int argc, char **argv, void *userdata) {
                                                 *cn,
                                                 timestamp,
                                                 uid_is_valid(arg_uid) ? arg_uid : getuid(),
-                                                &IOVEC_MAKE(data, size),
+                                                &IOVEC_MAKE(content, size),
                                                 arg_credential_flags | CREDENTIAL_ANY_SCOPE,
                                                 &plaintext);
                         else
@@ -532,18 +532,18 @@ static int verb_cat(int argc, char **argv, void *userdata) {
                                                 arg_tpm2_device,
                                                 arg_tpm2_signature,
                                                 uid_is_valid(arg_uid) ? arg_uid : getuid(),
-                                                &IOVEC_MAKE(data, size),
+                                                &IOVEC_MAKE(content, size),
                                                 arg_credential_flags | CREDENTIAL_ANY_SCOPE,
                                                 &plaintext);
                         if (r < 0)
                                 return r;
 
-                        erase_and_free(data);
-                        data = TAKE_PTR(plaintext.iov_base);
+                        erase_and_free(content);
+                        content = TAKE_PTR(plaintext.iov_base);
                         size = plaintext.iov_len;
                 }
 
-                r = write_blob(stdout, data, size);
+                r = write_blob(stdout, content, size);
                 if (r < 0)
                         return r;
         }
@@ -551,7 +551,7 @@ static int verb_cat(int argc, char **argv, void *userdata) {
         return ret;
 }
 
-static int verb_encrypt(int argc, char **argv, void *userdata) {
+static int verb_encrypt(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(iovec_done_erase) struct iovec plaintext = {}, output = {};
         _cleanup_free_ char *base64_buf = NULL, *fname = NULL;
         const char *input_path, *output_path, *name;
@@ -659,7 +659,7 @@ static int verb_encrypt(int argc, char **argv, void *userdata) {
         return EXIT_SUCCESS;
 }
 
-static int verb_decrypt(int argc, char **argv, void *userdata) {
+static int verb_decrypt(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(iovec_done_erase) struct iovec input = {}, plaintext = {};
         _cleanup_free_ char *fname = NULL;
         _cleanup_fclose_ FILE *output_file = NULL;
@@ -741,7 +741,7 @@ static int verb_decrypt(int argc, char **argv, void *userdata) {
         return EXIT_SUCCESS;
 }
 
-static int verb_setup(int argc, char **argv, void *userdata) {
+static int verb_setup(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(iovec_done_erase) struct iovec host_key = {};
         int r;
 
@@ -754,14 +754,14 @@ static int verb_setup(int argc, char **argv, void *userdata) {
         return EXIT_SUCCESS;
 }
 
-static int verb_has_tpm2(int argc, char **argv, void *userdata) {
+static int verb_has_tpm2(int argc, char *argv[], uintptr_t _data, void *userdata) {
         if (!arg_quiet)
                 log_notice("The 'systemd-creds %1$s' command has been replaced by 'systemd-analyze %1$s'. Redirecting invocation.", argv[optind]);
 
         return verb_has_tpm2_generic(arg_quiet);
 }
 
-static int verb_help(int argc, char **argv, void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -825,6 +825,10 @@ static int verb_help(int argc, char **argv, void *userdata) {
         return 0;
 }
 
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
+
 static int parse_argv(int argc, char *argv[]) {
 
         enum {
@@ -889,7 +893,7 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
 
                 case 'h':
-                        return verb_help(0, NULL, NULL);
+                        return help();
 
                 case ARG_VERSION:
                         return version();
index dbd0b14d7bd1b2066029bd191800169d88b43b88..bda9a8cc84a970c2d2d4dd2f670d18e4974a0c18 100644 (file)
@@ -2586,7 +2586,7 @@ static int discover_key(const char *key_file, const char *volume, TokenType toke
         return r;
 }
 
-static int verb_attach(int argc, char *argv[], void *userdata) {
+static int verb_attach(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(crypt_freep) struct crypt_device *cd = NULL;
         _unused_ _cleanup_(remove_and_erasep) const char *destroy_key_file = NULL;
         crypt_status_info status;
@@ -2826,7 +2826,7 @@ static int verb_attach(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_detach(int argc, char *argv[], void *userdata) {
+static int verb_detach(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(crypt_freep) struct crypt_device *cd = NULL;
         const char *volume = ASSERT_PTR(argv[1]);
         int r;
index 2f0fe97ca6f015d95a3734238b8117ae71e5ca64..76aec0576480d3dc8c96c8fa8ebee09f89624906 100644 (file)
@@ -109,7 +109,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1;
 }
 
-static int verb_status(int argc, char *argv[], void *userdata) {
+static int verb_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         static const int exit_status_table[_FACTORY_RESET_MODE_MAX] = {
                 /* Report current mode also as via exit status, but only return a subset of states */
                 [FACTORY_RESET_UNSUPPORTED] = EXIT_SUCCESS,
@@ -130,7 +130,7 @@ static int verb_status(int argc, char *argv[], void *userdata) {
         return exit_status_table[f];
 }
 
-static int verb_request(int argc, char *argv[], void *userdata) {
+static int verb_request(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         FactoryResetMode f = factory_reset_mode();
@@ -197,7 +197,7 @@ static int verb_request(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_cancel(int argc, char *argv[], void *userdata) {
+static int verb_cancel(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         FactoryResetMode f = factory_reset_mode();
@@ -269,7 +269,7 @@ static int retrigger_block_devices(void) {
         return 0;
 }
 
-static int verb_complete(int argc, char *argv[], void *userdata) {
+static int verb_complete(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         FactoryResetMode f = factory_reset_mode();
index 21ac8b055be86684227b7e50c991e234e2806f4f..a8ebf85145a934cffac915a22df2b7cfa6812738 100644 (file)
@@ -178,7 +178,7 @@ static int acquire_bus(sd_bus **bus) {
         return 0;
 }
 
-static int verb_list_homes(int argc, char *argv[], void *userdata) {
+static int verb_list_homes(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -627,7 +627,7 @@ static int acquire_passed_secrets(const char *user_name, UserRecord **ret) {
         return 0;
 }
 
-static int verb_activate_home(int argc, char *argv[], void *userdata) {
+static int verb_activate_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r, ret = 0;
 
@@ -675,7 +675,7 @@ static int verb_activate_home(int argc, char *argv[], void *userdata) {
         return ret;
 }
 
-static int verb_deactivate_home(int argc, char *argv[], void *userdata) {
+static int verb_deactivate_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r, ret = 0;
 
@@ -775,7 +775,7 @@ static int inspect_home(sd_bus *bus, const char *name) {
         return 0;
 }
 
-static int verb_inspect_homes(int argc, char *argv[], void *userdata) {
+static int verb_inspect_homes(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r;
 
@@ -833,7 +833,7 @@ static int authenticate_home(sd_bus *bus, const char *name) {
         }
 }
 
-static int verb_authenticate_homes(int argc, char *argv[], void *userdata) {
+static int verb_authenticate_homes(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r;
 
@@ -1557,7 +1557,7 @@ static int create_home_common(sd_json_variant *input, bool show_enforce_password
         return 0;
 }
 
-static int verb_create_home(int argc, char *argv[], void *userdata) {
+static int verb_create_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         if (argc >= 2) {
@@ -1592,7 +1592,7 @@ static int verb_create_home(int argc, char *argv[], void *userdata) {
         return create_home_common(/* input= */ NULL, /* show_enforce_password_policy_hint= */ true);
 }
 
-static int verb_adopt_home(int argc, char *argv[], void *userdata) {
+static int verb_adopt_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r, ret = 0;
 
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -1674,7 +1674,7 @@ static int register_home_one(sd_bus *bus, FILE *f, const char *path) {
         return register_home_common(bus, v);
 }
 
-static int verb_register_home(int argc, char *argv[], void *userdata) {
+static int verb_register_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -1705,7 +1705,7 @@ static int verb_register_home(int argc, char *argv[], void *userdata) {
         return r;
 }
 
-static int verb_unregister_home(int argc, char *argv[], void *userdata) {
+static int verb_unregister_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -1735,7 +1735,7 @@ static int verb_unregister_home(int argc, char *argv[], void *userdata) {
         return ret;
 }
 
-static int verb_remove_home(int argc, char *argv[], void *userdata) {
+static int verb_remove_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r, ret = 0;
 
@@ -1900,7 +1900,7 @@ static int home_record_reset_human_interaction_permission(UserRecord *hr) {
         return 0;
 }
 
-static int verb_update_home(int argc, char *argv[], void *userdata) {
+static int verb_update_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(user_record_unrefp) UserRecord *hr = NULL, *secret = NULL;
         _cleanup_free_ char *buffer = NULL;
@@ -2077,7 +2077,7 @@ static int verb_update_home(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_passwd_home(int argc, char *argv[], void *userdata) {
+static int verb_passwd_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(user_record_unrefp) UserRecord *old_secret = NULL, *new_secret = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_free_ char *buffer = NULL;
@@ -2194,7 +2194,7 @@ static int parse_disk_size(const char *t, uint64_t *ret) {
         return 0;
 }
 
-static int verb_resize_home(int argc, char *argv[], void *userdata) {
+static int verb_resize_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(user_record_unrefp) UserRecord *secret = NULL;
         uint64_t ds = UINT64_MAX;
@@ -2256,7 +2256,7 @@ static int verb_resize_home(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_lock_home(int argc, char *argv[], void *userdata) {
+static int verb_lock_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r, ret = 0;
 
@@ -2287,7 +2287,7 @@ static int verb_lock_home(int argc, char *argv[], void *userdata) {
         return ret;
 }
 
-static int verb_unlock_home(int argc, char *argv[], void *userdata) {
+static int verb_unlock_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r, ret = 0;
 
@@ -2335,7 +2335,7 @@ static int verb_unlock_home(int argc, char *argv[], void *userdata) {
         return ret;
 }
 
-static int verb_with_home(int argc, char *argv[], void *userdata) {
+static int verb_with_home(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *reply = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -2458,7 +2458,7 @@ static int verb_with_home(int argc, char *argv[], void *userdata) {
         return ret;
 }
 
-static int verb_lock_all_homes(int argc, char *argv[], void *userdata) {
+static int verb_lock_all_homes(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -2479,7 +2479,7 @@ static int verb_lock_all_homes(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_deactivate_all_homes(int argc, char *argv[], void *userdata) {
+static int verb_deactivate_all_homes(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -2500,7 +2500,7 @@ static int verb_deactivate_all_homes(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_rebalance(int argc, char *argv[], void *userdata) {
+static int verb_rebalance(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -2983,7 +2983,7 @@ static int create_interactively(void) {
 
 static int add_signing_keys_from_credentials(void);
 
-static int verb_firstboot(int argc, char *argv[], void *userdata) {
+static int verb_firstboot(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         /* Let's honour the systemd.firstboot kernel command line option, just like the systemd-firstboot
@@ -4082,7 +4082,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
@@ -5249,7 +5249,7 @@ static int fallback_shell(int argc, char *argv[]) {
         return log_error_errno(errno, "Failed to execute shell '%s': %m", shell);
 }
 
-static int verb_list_signing_keys(int argc, char *argv[], void *userdata) {
+static int verb_list_signing_keys(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -5335,7 +5335,7 @@ static int verb_list_signing_keys(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_get_signing_key(int argc, char *argv[], void *userdata) {
+static int verb_get_signing_key(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -5391,7 +5391,7 @@ static int add_signing_key_one(sd_bus *bus, const char *fn, FILE *key) {
         return 0;
 }
 
-static int verb_add_signing_key(int argc, char *argv[], void *userdata) {
+static int verb_add_signing_key(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -5498,7 +5498,7 @@ static int remove_signing_key_one(sd_bus *bus, const char *fn) {
         return 0;
 }
 
-static int verb_remove_signing_key(int argc, char *argv[], void *userdata) {
+static int verb_remove_signing_key(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
index c9d83031b920450805e9c6e2c9d04bb7c809d226..d0ceceb15584698ce4661c7969c0076ed5904b95 100644 (file)
@@ -549,7 +549,7 @@ static int get_hostname_based_on_flag(sd_bus *bus) {
         return get_one_name(bus, attr, NULL);
 }
 
-static int verb_show_status(int argc, char **argv, void *userdata) {
+static int verb_show_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = userdata;
         int r;
 
@@ -601,7 +601,7 @@ static int set_simple_string(sd_bus *bus, const char *target, const char *method
         return set_simple_string_internal(bus, NULL, target, method, value);
 }
 
-static int verb_set_hostname(int argc, char **argv, void *userdata) {
+static int verb_set_hostname(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_free_ char *h = NULL;
         const char *hostname = argv[1];
         sd_bus *bus = userdata;
@@ -687,27 +687,27 @@ static int verb_set_hostname(int argc, char **argv, void *userdata) {
         return ret;
 }
 
-static int verb_get_or_set_hostname(int argc, char **argv, void *userdata) {
+static int verb_get_or_set_hostname(int argc, char *argv[], uintptr_t data, void *userdata) {
         return argc == 1 ? get_hostname_based_on_flag(userdata) :
-                           verb_set_hostname(argc, argv, userdata);
+                           verb_set_hostname(argc, argv, data, userdata);
 }
 
-static int verb_get_or_set_icon_name(int argc, char **argv, void *userdata) {
+static int verb_get_or_set_icon_name(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return argc == 1 ? get_one_name(userdata, "IconName", NULL) :
                            set_simple_string(userdata, "icon", "SetIconName", argv[1]);
 }
 
-static int verb_get_or_set_chassis(int argc, char **argv, void *userdata) {
+static int verb_get_or_set_chassis(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return argc == 1 ? get_one_name(userdata, "Chassis", NULL) :
                            set_simple_string(userdata, "chassis", "SetChassis", argv[1]);
 }
 
-static int verb_get_or_set_deployment(int argc, char **argv, void *userdata) {
+static int verb_get_or_set_deployment(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return argc == 1 ? get_one_name(userdata, "Deployment", NULL) :
                            set_simple_string(userdata, "deployment", "SetDeployment", argv[1]);
 }
 
-static int verb_get_or_set_location(int argc, char **argv, void *userdata) {
+static int verb_get_or_set_location(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return argc == 1 ? get_one_name(userdata, "Location", NULL) :
                            set_simple_string(userdata, "location", "SetLocation", argv[1]);
 }
@@ -752,7 +752,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char **argv, void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index 6391b04133c5edc5a88a3f0f50302d7499cd1eb4..3b407bb0701276f46939cf76dd1d1cc3ae14eab4 100644 (file)
@@ -15,11 +15,11 @@ static const char *arg_hwdb_bin_dir = NULL;
 static const char *arg_root = NULL;
 static bool arg_strict = false;
 
-static int verb_query(int argc, char *argv[], void *userdata) {
+static int verb_query(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return hwdb_query(argv[1], arg_root);
 }
 
-static int verb_update(int argc, char *argv[], void *userdata) {
+static int verb_update(int argc, char *argv[], uintptr_t _data, void *userdata) {
         if (hwdb_bypass())
                 return 0;
 
index cdb93ac68fab2caf81a1fdb7bcb0ee1cb757efeb..fecfeeabab6d1d1c88e32e3976dec2a6774d8e89 100644 (file)
@@ -24,11 +24,11 @@ static PagerFlags arg_pager_flags = 0;
 static bool arg_legend = true;
 static sd_json_format_flags_t arg_json_format_flags = SD_JSON_FORMAT_OFF;
 
-static int verb_new(int argc, char **argv, void *userdata) {
+static int verb_new(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return id128_print_new(arg_mode);
 }
 
-static int verb_machine_id(int argc, char **argv, void *userdata) {
+static int verb_machine_id(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_id128_t id;
         int r;
 
@@ -43,7 +43,7 @@ static int verb_machine_id(int argc, char **argv, void *userdata) {
         return id128_pretty_print(id, arg_mode);
 }
 
-static int verb_boot_id(int argc, char **argv, void *userdata) {
+static int verb_boot_id(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_id128_t id;
         int r;
 
@@ -58,7 +58,7 @@ static int verb_boot_id(int argc, char **argv, void *userdata) {
         return id128_pretty_print(id, arg_mode);
 }
 
-static int verb_invocation_id(int argc, char **argv, void *userdata) {
+static int verb_invocation_id(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_id128_t id;
         int r;
 
@@ -73,7 +73,7 @@ static int verb_invocation_id(int argc, char **argv, void *userdata) {
         return id128_pretty_print(id, arg_mode);
 }
 
-static int verb_var_uuid(int argc, char **argv, void *userdata) {
+static int verb_var_uuid(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_id128_t id;
         int r;
 
@@ -130,7 +130,7 @@ static int show_one(Table **table, const char *name, sd_id128_t uuid, bool first
                               arg_mode == ID128_PRINT_ID128 ? TABLE_ID128 : TABLE_UUID, uuid);
 }
 
-static int verb_show(int argc, char **argv, void *userdata) {
+static int verb_show(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *table = NULL;
         int r;
 
@@ -223,7 +223,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char **argv, void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index 5f51dbe5176af2497027084ebbe4d30b006bb21a..6612a1e70afed6495ba8fbd147aed07735238470 100644 (file)
@@ -58,7 +58,7 @@ static void on_tar_finished(TarExport *export, int error, void *userdata) {
         sd_event_exit(event, ABS(error));
 }
 
-static int verb_export_tar(int argc, char *argv[], void *userdata) {
+static int verb_export_tar(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(tar_export_unrefp) TarExport *export = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
         _cleanup_(image_unrefp) Image *image = NULL;
@@ -139,7 +139,7 @@ static void on_raw_finished(RawExport *export, int error, void *userdata) {
         sd_event_exit(event, ABS(error));
 }
 
-static int verb_export_raw(int argc, char *argv[], void *userdata) {
+static int verb_export_raw(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(raw_export_unrefp) RawExport *export = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
         _cleanup_(image_unrefp) Image *image = NULL;
@@ -225,7 +225,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index db25174434117a026dae7add55164ecd780af1f5..4b2394d4147bacbf73c693bff85021d3ee6ea71e 100644 (file)
@@ -107,7 +107,7 @@ static int progress_bytes(uint64_t nbytes, uint64_t bps, void *userdata) {
         return 0;
 }
 
-static int verb_import_fs(int argc, char *argv[], void *userdata) {
+static int verb_import_fs(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(rm_rf_subvolume_and_freep) char *temp_path = NULL;
         _cleanup_(progress_info_free) ProgressInfo progress = { .bps = UINT64_MAX };
         _cleanup_free_ char *l = NULL, *final_path = NULL;
@@ -295,7 +295,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index a7c902555937de0ce6fadbbdfccd19426df53d9f..3fe6adb8d2d888a3cdba2af92cc2f149f60e8176 100644 (file)
@@ -138,7 +138,7 @@ static void on_tar_finished(TarImport *import, int error, void *userdata) {
         sd_event_exit(event, ABS(error));
 }
 
-static int verb_import_tar(int argc, char *argv[], void *userdata) {
+static int verb_import_tar(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(tar_import_unrefp) TarImport *import = NULL;
         _cleanup_free_ char *ll = NULL, *normalized = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
@@ -207,7 +207,7 @@ static void on_raw_finished(RawImport *import, int error, void *userdata) {
         sd_event_exit(event, ABS(error));
 }
 
-static int verb_import_raw(int argc, char *argv[], void *userdata) {
+static int verb_import_raw(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(raw_import_unrefp) RawImport *import = NULL;
         _cleanup_free_ char *ll = NULL, *normalized = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
@@ -303,7 +303,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index 712c2a7b649593d66601a55788b2c3b6d500a30e..2993073cc5c1d83bd4288bf6f40271c8604780a2 100644 (file)
@@ -261,7 +261,7 @@ static int transfer_image_common(sd_bus *bus, sd_bus_message *m) {
         return -r;
 }
 
-static int verb_import_tar(int argc, char *argv[], void *userdata) {
+static int verb_import_tar(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_free_ char *ll = NULL, *fn = NULL;
         const char *local = NULL, *path = NULL;
@@ -340,7 +340,7 @@ static int verb_import_tar(int argc, char *argv[], void *userdata) {
         return transfer_image_common(bus, m);
 }
 
-static int verb_import_raw(int argc, char *argv[], void *userdata) {
+static int verb_import_raw(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_free_ char *ll = NULL, *fn = NULL;
         const char *local = NULL, *path = NULL;
@@ -419,7 +419,7 @@ static int verb_import_raw(int argc, char *argv[], void *userdata) {
         return transfer_image_common(bus, m);
 }
 
-static int verb_import_fs(int argc, char *argv[], void *userdata) {
+static int verb_import_fs(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         const char *local = NULL, *path = NULL;
         _cleanup_free_ char *fn = NULL;
@@ -506,7 +506,7 @@ static void determine_compression_from_filename(const char *p) {
                 arg_format = "zstd";
 }
 
-static int verb_export_tar(int argc, char *argv[], void *userdata) {
+static int verb_export_tar(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_close_ int fd = -EBADF;
         const char *local = NULL, *path = NULL;
@@ -565,7 +565,7 @@ static int verb_export_tar(int argc, char *argv[], void *userdata) {
         return transfer_image_common(bus, m);
 }
 
-static int verb_export_raw(int argc, char *argv[], void *userdata) {
+static int verb_export_raw(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_close_ int fd = -EBADF;
         const char *local = NULL, *path = NULL;
@@ -624,7 +624,7 @@ static int verb_export_raw(int argc, char *argv[], void *userdata) {
         return transfer_image_common(bus, m);
 }
 
-static int verb_pull_tar(int argc, char *argv[], void *userdata) {
+static int verb_pull_tar(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_free_ char *l = NULL, *ll = NULL;
         const char *local, *remote;
@@ -697,7 +697,7 @@ static int verb_pull_tar(int argc, char *argv[], void *userdata) {
         return transfer_image_common(bus, m);
 }
 
-static int verb_pull_raw(int argc, char *argv[], void *userdata) {
+static int verb_pull_raw(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_free_ char *l = NULL, *ll = NULL;
         const char *local, *remote;
@@ -770,7 +770,7 @@ static int verb_pull_raw(int argc, char *argv[], void *userdata) {
         return transfer_image_common(bus, m);
 }
 
-static int verb_pull_oci(int argc, char *argv[], void *userdata) {
+static int verb_pull_oci(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_free_ char *l = NULL;
         const char *local, *remote;
@@ -825,7 +825,7 @@ static int verb_pull_oci(int argc, char *argv[], void *userdata) {
         return transfer_image_common(bus, m);
 }
 
-static int verb_list_transfers(int argc, char *argv[], void *userdata) {
+static int verb_list_transfers(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(table_unrefp) Table *t = NULL;
@@ -929,7 +929,7 @@ static int verb_list_transfers(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_cancel_transfer(int argc, char *argv[], void *userdata) {
+static int verb_cancel_transfer(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -951,7 +951,7 @@ static int verb_cancel_transfer(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_list_images(int argc, char *argv[], void *userdata) {
+static int verb_list_images(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(table_unrefp) Table *t = NULL;
@@ -1112,7 +1112,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index e777d41ee6980464f191ee6c3d6c13be299bedf4..270f70396cab60d748cf4c4e0e39bd741dbfa00e 100644 (file)
@@ -117,7 +117,7 @@ static void on_tar_finished(TarPull *pull, int error, void *userdata) {
         sd_event_exit(event, ABS(error));
 }
 
-static int verb_pull_tar(int argc, char *argv[], void *userdata) {
+static int verb_pull_tar(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_free_ char *ll = NULL, *normalized = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
         _cleanup_(tar_pull_unrefp) TarPull *pull = NULL;
@@ -187,7 +187,7 @@ static void on_raw_finished(RawPull *pull, int error, void *userdata) {
         sd_event_exit(event, ABS(error));
 }
 
-static int verb_pull_raw(int argc, char *argv[], void *userdata) {
+static int verb_pull_raw(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_free_ char *ll = NULL, *normalized = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
         _cleanup_(raw_pull_unrefp) RawPull *pull = NULL;
@@ -256,7 +256,7 @@ static void on_oci_finished(OciPull *pull, int error, void *userdata) {
         sd_event_exit(event, ABS(error));
 }
 
-static int verb_pull_oci(int argc, char *argv[], void *userdata) {
+static int verb_pull_oci(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         const char *ref = argv[1];
@@ -356,7 +356,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index 5eed1b5665d5e48e8a73d1ca33274ef70d90f1e2..5ca3eee08726a238c757a53e8e917ddad9046c41 100644 (file)
@@ -89,7 +89,7 @@ static const char *integrity_algorithm_select(const void *key_file_buf) {
         return "crc32c";
 }
 
-static int verb_attach(int argc, char *argv[], void *userdata) {
+static int verb_attach(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(crypt_freep) struct crypt_device *cd = NULL;
         crypt_status_info status;
         _cleanup_(erase_and_freep) void *key_buf = NULL;
@@ -156,7 +156,7 @@ static int verb_attach(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_detach(int argc, char *argv[], void *userdata) {
+static int verb_detach(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(crypt_freep) struct crypt_device *cd = NULL;
         int r;
 
index 9046e82e921a80fe141f3157ec4f226645d9f786..f830bd2bef86e573f5baaa49c20508dd4debadea 100644 (file)
@@ -1178,7 +1178,7 @@ static int do_add(
         return context_execute(c);
 }
 
-static int verb_add(int argc, char *argv[], void *userdata) {
+static int verb_add(int argc, char *argv[], uintptr_t _data, void *userdata) {
         const char *version, *kernel;
         char **initrds;
         int r;
@@ -1207,7 +1207,7 @@ static int verb_add(int argc, char *argv[], void *userdata) {
         return do_add(&c, version, kernel, initrds);
 }
 
-static int verb_add_all(int argc, char *argv[], void *userdata) {
+static int verb_add_all(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_close_ int fd = -EBADF;
         size_t n = 0;
         int ret = 0, r;
@@ -1294,10 +1294,10 @@ static int run_as_installkernel(int argc, char *argv[]) {
         if (optind + 2 > argc)
                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "'installkernel' command requires at least two arguments.");
 
-        return verb_add(3, STRV_MAKE("add", argv[optind], argv[optind+1]), /* userdata= */ NULL);
+        return verb_add(3, STRV_MAKE("add", argv[optind], argv[optind+1]), /* data= */ 0, /* userdata= */ NULL);
 }
 
-static int verb_remove(int argc, char *argv[], void *userdata) {
+static int verb_remove(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         assert(argc >= 2);
@@ -1333,7 +1333,7 @@ static int verb_remove(int argc, char *argv[], void *userdata) {
         return context_execute(&c);
 }
 
-static int verb_inspect(int argc, char *argv[], void *userdata) {
+static int verb_inspect(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *t = NULL;
         _cleanup_free_ char *vmlinuz = NULL;
         const char *version, *kernel;
@@ -1446,7 +1446,7 @@ static int verb_inspect(int argc, char *argv[], void *userdata) {
         return table_print_with_pager(t, arg_json_format_flags, arg_pager_flags, /* show_header= */ false);
 }
 
-static int verb_list(int argc, char *argv[], void *userdata) {
+static int verb_list(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_close_ int fd = -EBADF;
         int r;
 
index f26b235d39a0d91032c7361f33dc2e01cd13a0e3..516527aa2b5ee1b2b2fb03a75abd0ae0cce29cf1 100644 (file)
@@ -36,7 +36,7 @@ STATIC_DESTRUCTOR_REGISTER(arg_signature, freep);
 STATIC_DESTRUCTOR_REGISTER(arg_content, freep);
 STATIC_DESTRUCTOR_REGISTER(arg_output, freep);
 
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -81,6 +81,10 @@ static int help(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
+
 static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_VERSION = 0x100,
@@ -117,8 +121,7 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
 
                 case 'h':
-                        help(0, NULL, NULL);
-                        return 0;
+                        return help();
 
                 case ARG_VERSION:
                         return version();
@@ -193,7 +196,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1;
 }
 
-static int verb_validate(int argc, char *argv[], void *userdata) {
+static int verb_validate(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(X509_freep) X509 *certificate = NULL;
         _cleanup_(openssl_ask_password_ui_freep) OpenSSLAskPasswordUI *ui = NULL;
         _cleanup_(EVP_PKEY_freep) EVP_PKEY *private_key = NULL;
@@ -248,7 +251,7 @@ static int verb_validate(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_extract_public(int argc, char *argv[], void *userdata) {
+static int verb_extract_public(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(EVP_PKEY_freep) EVP_PKEY *public_key = NULL;
         int r;
 
@@ -315,7 +318,7 @@ static int verb_extract_public(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_extract_certificate(int argc, char *argv[], void *userdata) {
+static int verb_extract_certificate(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(X509_freep) X509 *certificate = NULL;
         int r;
 
@@ -342,7 +345,7 @@ static int verb_extract_certificate(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_pkcs7(int argc, char *argv[], void *userdata) {
+static int verb_pkcs7(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(X509_freep) X509 *certificate = NULL;
         _cleanup_free_ char *pkcs1 = NULL;
         size_t pkcs1_len = 0;
@@ -427,7 +430,7 @@ static int verb_pkcs7(int argc, char *argv[], void *userdata) {
 
 static int run(int argc, char *argv[]) {
         static const Verb verbs[] = {
-                { "help",                VERB_ANY, VERB_ANY, 0, help                     },
+                { "help",                VERB_ANY, VERB_ANY, 0, verb_help                },
                 { "validate",            VERB_ANY, 1,        0, verb_validate            },
                 { "extract-public",      VERB_ANY, 1,        0, verb_extract_public      },
                 { "public",              VERB_ANY, 1,        0, verb_extract_public      }, /* Deprecated but kept for backwards compat. */
index 94c0e8424dd0777d3a5bf344f8b6924dcf48a8d1..65756d26f0d30c1d800f8574029d56b00ba6000f 100644 (file)
@@ -151,7 +151,7 @@ static int print_status_info(StatusInfo *i) {
         return 0;
 }
 
-static int verb_show_status(int argc, char **argv, void *userdata) {
+static int verb_show_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(status_info_clear) StatusInfo info = {};
         static const struct bus_properties_map map[]  = {
                 { "VConsoleKeymap",       "s",  NULL, offsetof(StatusInfo, vconsole_keymap) },
@@ -183,7 +183,7 @@ static int verb_show_status(int argc, char **argv, void *userdata) {
         return print_status_info(&info);
 }
 
-static int verb_set_locale(int argc, char **argv, void *userdata) {
+static int verb_set_locale(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -211,7 +211,7 @@ static int verb_set_locale(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_list_locales(int argc, char **argv, void *userdata) {
+static int verb_list_locales(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_strv_free_ char **l = NULL;
         int r;
 
@@ -225,7 +225,7 @@ static int verb_list_locales(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_set_vconsole_keymap(int argc, char **argv, void *userdata) {
+static int verb_set_vconsole_keymap(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         const char *map, *toggle_map;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -249,7 +249,7 @@ static int verb_set_vconsole_keymap(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_list_vconsole_keymaps(int argc, char **argv, void *userdata) {
+static int verb_list_vconsole_keymaps(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_strv_free_ char **l = NULL;
         int r;
 
@@ -264,7 +264,7 @@ static int verb_list_vconsole_keymaps(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_set_x11_keymap(int argc, char **argv, void *userdata) {
+static int verb_set_x11_keymap(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         const char *layout, *model, *variant, *options;
         sd_bus *bus = userdata;
@@ -299,7 +299,7 @@ static const char* xkb_directory(void) {
         return cached;
 }
 
-static int verb_list_x11_keymaps(int argc, char **argv, void *userdata) {
+static int verb_list_x11_keymaps(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_fclose_ FILE *f = NULL;
         _cleanup_strv_free_ char **list = NULL;
         enum {
@@ -446,7 +446,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char **argv, void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index cea702345ecbc1dfc4b0873c85b75609539ea528..a921a4a6771c9aaedba0c0867624de4ac1ad2b5a 100644 (file)
@@ -266,7 +266,7 @@ static int list_sessions_table_add_fallback(Table *table, sd_bus_message *reply,
         return 0;
 }
 
-static int verb_list_sessions(int argc, char *argv[], void *userdata) {
+static int verb_list_sessions(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
@@ -308,7 +308,7 @@ static int verb_list_sessions(int argc, char *argv[], void *userdata) {
         return list_table_print(table, "sessions");
 }
 
-static int verb_list_users(int argc, char *argv[], void *userdata) {
+static int verb_list_users(int argc, char *argv[], uintptr_t _data, void *userdata) {
 
         static const struct bus_properties_map property_map[] = {
                 { "Linger", "b", NULL, offsetof(UserStatusInfo, linger) },
@@ -384,7 +384,7 @@ static int verb_list_users(int argc, char *argv[], void *userdata) {
         return list_table_print(table, "users");
 }
 
-static int verb_list_seats(int argc, char *argv[], void *userdata) {
+static int verb_list_seats(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(table_unrefp) Table *table = NULL;
@@ -1038,7 +1038,7 @@ static int get_bus_path_by_id(
         return strdup_to(ret, path);
 }
 
-static int verb_show_session(int argc, char *argv[], void *userdata) {
+static int verb_show_session(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         bool properties;
         int r;
@@ -1084,7 +1084,7 @@ static int verb_show_session(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_show_user(int argc, char *argv[], void *userdata) {
+static int verb_show_user(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         bool properties;
         int r;
@@ -1135,7 +1135,7 @@ static int verb_show_user(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_show_seat(int argc, char *argv[], void *userdata) {
+static int verb_show_seat(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         bool properties;
         int r;
@@ -1181,7 +1181,7 @@ static int verb_show_seat(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_activate(int argc, char *argv[], void *userdata) {
+static int verb_activate(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1224,7 +1224,7 @@ static int verb_activate(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_kill_session(int argc, char *argv[], void *userdata) {
+static int verb_kill_session(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1250,7 +1250,7 @@ static int verb_kill_session(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_enable_linger(int argc, char *argv[], void *userdata) {
+static int verb_enable_linger(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         char* short_argv[3];
@@ -1298,7 +1298,7 @@ static int verb_enable_linger(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_terminate_user(int argc, char *argv[], void *userdata) {
+static int verb_terminate_user(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1328,7 +1328,7 @@ static int verb_terminate_user(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_kill_user(int argc, char *argv[], void *userdata) {
+static int verb_kill_user(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1366,7 +1366,7 @@ static int verb_kill_user(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_attach(int argc, char *argv[], void *userdata) {
+static int verb_attach(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1390,7 +1390,7 @@ static int verb_attach(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_flush_devices(int argc, char *argv[], void *userdata) {
+static int verb_flush_devices(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1406,7 +1406,7 @@ static int verb_flush_devices(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_lock_sessions(int argc, char *argv[], void *userdata) {
+static int verb_lock_sessions(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1427,7 +1427,7 @@ static int verb_lock_sessions(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_terminate_seat(int argc, char *argv[], void *userdata) {
+static int verb_terminate_seat(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1519,7 +1519,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index f71d3deee2ab4707150a1c165c08f90981d96d7d..d9ee2fe2bb64c8e045a2f136ff031bbe1c5be6d0 100644 (file)
@@ -277,7 +277,7 @@ static int show_table(Table *table, const char *word) {
         return 0;
 }
 
-static int verb_list_machines(int argc, char *argv[], void *userdata) {
+static int verb_list_machines(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(table_unrefp) Table *table = NULL;
@@ -354,7 +354,7 @@ static int verb_list_machines(int argc, char *argv[], void *userdata) {
         return show_table(table, "machines");
 }
 
-static int verb_list_images(int argc, char *argv[], void *userdata) {
+static int verb_list_images(int argc, char *argv[], uintptr_t _data, void *userdata) {
 
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
@@ -745,7 +745,7 @@ static int show_machine_properties(sd_bus *bus, const char *path, bool *new_line
         return r;
 }
 
-static int verb_show_machine(int argc, char *argv[], void *userdata) {
+static int verb_show_machine(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         bool properties, new_line = false;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -1036,7 +1036,7 @@ static int show_image_properties(sd_bus *bus, const char *path, bool *new_line)
         return r;
 }
 
-static int verb_show_image(int argc, char *argv[], void *userdata) {
+static int verb_show_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         bool properties, new_line = false;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -1080,7 +1080,7 @@ static int verb_show_image(int argc, char *argv[], void *userdata) {
         return r;
 }
 
-static int verb_kill_machine(int argc, char *argv[], void *userdata) {
+static int verb_kill_machine(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1105,7 +1105,7 @@ static int verb_kill_machine(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_reboot_machine(int argc, char *argv[], void *userdata) {
+static int verb_reboot_machine(int argc, char *argv[], uintptr_t data, void *userdata) {
         if (arg_runner == RUNNER_VMSPAWN)
                 return log_error_errno(
                                 SYNTHETIC_ERRNO(EOPNOTSUPP),
@@ -1115,17 +1115,17 @@ static int verb_reboot_machine(int argc, char *argv[], void *userdata) {
         arg_kill_whom = "leader";
         arg_signal = SIGINT; /* sysvinit + systemd */
 
-        return verb_kill_machine(argc, argv, userdata);
+        return verb_kill_machine(argc, argv, data, userdata);
 }
 
-static int verb_poweroff_machine(int argc, char *argv[], void *userdata) {
+static int verb_poweroff_machine(int argc, char *argv[], uintptr_t data, void *userdata) {
         arg_kill_whom = "leader";
         arg_signal = SIGRTMIN+4; /* only systemd */
 
-        return verb_kill_machine(argc, argv, userdata);
+        return verb_kill_machine(argc, argv, data, userdata);
 }
 
-static int verb_terminate_machine(int argc, char *argv[], void *userdata) {
+static int verb_terminate_machine(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1148,7 +1148,7 @@ static const char *select_copy_method(bool copy_from, bool force) {
                 return copy_from ? "CopyFromMachine" : "CopyToMachine";
 }
 
-static int verb_copy_files(int argc, char *argv[], void *userdata) {
+static int verb_copy_files(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_free_ char *abs_host_path = NULL;
@@ -1203,7 +1203,7 @@ static int verb_copy_files(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_bind_mount(int argc, char *argv[], void *userdata) {
+static int verb_bind_mount(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1336,7 +1336,7 @@ static int parse_machine_uid(const char *spec, const char **machine, char **uid)
         return 0;
 }
 
-static int verb_login_machine(int argc, char *argv[], void *userdata) {
+static int verb_login_machine(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_slot_unrefp) sd_bus_slot *slot = NULL;
@@ -1387,7 +1387,7 @@ static int verb_login_machine(int argc, char *argv[], void *userdata) {
         return process_forward(event, slot, master, PTY_FORWARD_IGNORE_VHANGUP, machine);
 }
 
-static int verb_shell_machine(int argc, char *argv[], void *userdata) {
+static int verb_shell_machine(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL, *m = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_slot_unrefp) sd_bus_slot *slot = NULL;
@@ -1515,7 +1515,7 @@ static int get_settings_path(const char *name, char **ret_path) {
         return -ENOENT;
 }
 
-static int verb_edit_settings(int argc, char *argv[], void *userdata) {
+static int verb_edit_settings(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(edit_file_context_done) EditFileContext context = {};
         int r;
 
@@ -1585,7 +1585,7 @@ static int verb_edit_settings(int argc, char *argv[], void *userdata) {
         return do_edit_files_and_install(&context);
 }
 
-static int verb_cat_settings(int argc, char *argv[], void *userdata) {
+static int verb_cat_settings(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r = 0;
 
         if (arg_transport != BUS_TRANSPORT_LOCAL)
@@ -1636,7 +1636,7 @@ static int verb_cat_settings(int argc, char *argv[], void *userdata) {
         return r;
 }
 
-static int verb_remove_image(int argc, char *argv[], void *userdata) {
+static int verb_remove_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
 
@@ -1663,7 +1663,7 @@ static int verb_remove_image(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_rename_image(int argc, char *argv[], void *userdata) {
+static int verb_rename_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -1683,7 +1683,7 @@ static int verb_rename_image(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_clone_image(int argc, char *argv[], void *userdata) {
+static int verb_clone_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -1707,7 +1707,7 @@ static int verb_clone_image(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_read_only_image(int argc, char *argv[], void *userdata) {
+static int verb_read_only_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int b = true, r;
@@ -1765,7 +1765,7 @@ static int make_service_name(const char *name, char **ret) {
         return 0;
 }
 
-static int verb_start_machine(int argc, char *argv[], void *userdata) {
+static int verb_start_machine(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(bus_wait_for_jobs_freep) BusWaitForJobs *w = NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -1821,7 +1821,7 @@ static int verb_start_machine(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_enable_machine(int argc, char *argv[], void *userdata) {
+static int verb_enable_machine(int argc, char *argv[], uintptr_t data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         const char *method;
@@ -1909,15 +1909,15 @@ static int verb_enable_machine(int argc, char *argv[], void *userdata) {
                         return log_oom();
 
                 if (enable)
-                        return verb_start_machine(strv_length(new_args), new_args, userdata);
+                        return verb_start_machine(strv_length(new_args), new_args, data, userdata);
 
-                return verb_poweroff_machine(strv_length(new_args), new_args, userdata);
+                return verb_poweroff_machine(strv_length(new_args), new_args, data, userdata);
         }
 
         return 0;
 }
 
-static int verb_set_limit(int argc, char *argv[], void *userdata) {
+static int verb_set_limit(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = userdata;
         uint64_t limit;
@@ -1947,7 +1947,7 @@ static int verb_set_limit(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_clean_images(int argc, char *argv[], void *userdata) {
+static int verb_clean_images(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         uint64_t usage, total = 0;
@@ -2137,7 +2137,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index 6392460cf40e857c95b468ac8eabdc1452a7203f..2f37d5838195a109ba234705f0355d47a79209f4 100644 (file)
@@ -63,7 +63,7 @@ static void free_sections(char*(*sections)[_UNIFIED_SECTION_MAX]) {
 
 STATIC_DESTRUCTOR_REGISTER(arg_sections, free_sections);
 
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -127,6 +127,10 @@ static int help(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
+
 static char *normalize_phase(const char *s) {
         _cleanup_strv_free_ char **l = NULL;
 
@@ -218,8 +222,7 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
 
                 case 'h':
-                        help(0, NULL, NULL);
-                        return 0;
+                        return help();
 
                 case ARG_VERSION:
                         return version();
@@ -706,7 +709,7 @@ static void pcr_states_restore(PcrState *pcr_states, size_t n) {
         }
 }
 
-static int verb_calculate(int argc, char *argv[], void *userdata) {
+static int verb_calculate(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *w = NULL;
         _cleanup_(pcr_state_free_all) PcrState *pcr_states = NULL;
         int r;
@@ -991,11 +994,11 @@ static int build_policy_digest(bool sign) {
         return 0;
 }
 
-static int verb_sign(int argc, char *argv[], void *userdata) {
+static int verb_sign(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return build_policy_digest(/* sign= */ true);
 }
 
-static int verb_policy_digest(int argc, char *argv[], void *userdata) {
+static int verb_policy_digest(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return build_policy_digest(/* sign= */ false);
 }
 
@@ -1064,7 +1067,7 @@ static int validate_stub(void) {
         return 0;
 }
 
-static int verb_status(int argc, char *argv[], void *userdata) {
+static int verb_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *v = NULL;
         int r;
 
@@ -1150,7 +1153,7 @@ static int verb_status(int argc, char *argv[], void *userdata) {
 
 static int measure_main(int argc, char *argv[]) {
         static const Verb verbs[] = {
-                { "help",          VERB_ANY, VERB_ANY, 0,            help               },
+                { "help",          VERB_ANY, VERB_ANY, 0,            verb_help          },
                 { "status",        VERB_ANY, 1,        VERB_DEFAULT, verb_status        },
                 { "calculate",     VERB_ANY, 1,        0,            verb_calculate     },
                 { "policy-digest", VERB_ANY, 1,        0,            verb_policy_digest },
index 048159bd2c26c407a75ec59036ee896b409ab999..f587d0cfbb542bb9d1f4374a03d80172f7aa13e4 100644 (file)
@@ -89,7 +89,7 @@ static int dump_address_labels(sd_netlink *rtnl) {
         return 0;
 }
 
-int verb_list_address_labels(int argc, char *argv[], void *userdata) {
+int verb_list_address_labels(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
         int r;
 
index a5584806fbf3ff3c8e51387690291809eeb5961a..0afbd2b2bc5ce6d2dcf4c57fa9a6f1f054094388 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_list_address_labels(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_list_address_labels(int argc, char *argv[], uintptr_t _data, void *userdata);
index 9f0236b5406a6ac1a81cf28b65002c0d272ddb6c..5674b630a4ba431924c81d5f026174370c070714 100644 (file)
@@ -470,7 +470,7 @@ static int reload_daemons(ReloadFlags flags) {
         return ret;
 }
 
-int verb_edit(int argc, char *argv[], void *userdata) {
+int verb_edit(int argc, char *argv[], uintptr_t _data, void *userdata) {
         char **args = ASSERT_PTR(strv_skip(argv, 1));
         _cleanup_(edit_file_context_done) EditFileContext context = {
                 .marker_start = DROPIN_MARKER_START,
@@ -630,7 +630,7 @@ static int cat_files_by_link_config(const char *link_config, sd_netlink **rtnl,
         return cat_files_by_link_one(ifname, type, rtnl, /* ignore_missing= */ false, first);
 }
 
-int verb_cat(int argc, char *argv[], void *userdata) {
+int verb_cat(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
         char **args = strv_skip(argv, 1);
         int r, ret = 0;
@@ -683,7 +683,7 @@ int verb_cat(int argc, char *argv[], void *userdata) {
         return ret;
 }
 
-int verb_mask(int argc, char *argv[], void *userdata) {
+int verb_mask(int argc, char *argv[], uintptr_t _data, void *userdata) {
         ReloadFlags flags = 0;
         int r;
 
@@ -747,7 +747,7 @@ int verb_mask(int argc, char *argv[], void *userdata) {
         return reload_daemons(flags);
 }
 
-int verb_unmask(int argc, char *argv[], void *userdata) {
+int verb_unmask(int argc, char *argv[], uintptr_t _data, void *userdata) {
         ReloadFlags flags = 0;
         int r;
 
index 38210a8093b323858d808c77ca7d3e833295e9c6..8d52d58ffcbe9fa1624718adb87a56fdec134787 100644 (file)
@@ -1,8 +1,10 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_edit(int argc, char *argv[], void *userdata);
-int verb_cat(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
 
-int verb_mask(int argc, char *argv[], void *userdata);
-int verb_unmask(int argc, char *argv[], void *userdata);
+int verb_edit(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_cat(int argc, char *argv[], uintptr_t _data, void *userdata);
+
+int verb_mask(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_unmask(int argc, char *argv[], uintptr_t _data, void *userdata);
index a0b7b9a21f2ff7f68be6459fa0621bc307c14ecf..1ef38a0b854525d3d3f5b1ca3e572cf7ea30fe18 100644 (file)
@@ -12,7 +12,7 @@
 #include "networkctl-list.h"
 #include "networkctl-util.h"
 
-int verb_list_links(int argc, char *argv[], void *userdata) {
+int verb_list_links(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
         _cleanup_(link_info_array_freep) LinkInfo *links = NULL;
         _cleanup_(table_unrefp) Table *table = NULL;
index cb418e1cbc7d19f136ebf87dc2f65b148a99a8b2..955797ea2f0b787c0da1cfa9478bb8d5a0801bb2 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_list_links(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_list_links(int argc, char *argv[], uintptr_t _data, void *userdata);
index 433a5fc922606fc6e1b033dc47e0ba7885e5aae3..ddce26e5c426854d150188565cd94e7b11d09e42 100644 (file)
@@ -219,7 +219,7 @@ static int dump_lldp_neighbors_json(sd_json_variant *reply, char * const *patter
         return sd_json_variant_dump(v, arg_json_format_flags, NULL, NULL);
 }
 
-int verb_link_lldp_status(int argc, char *argv[], void *userdata) {
+int verb_link_lldp_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_varlink_flush_close_unrefp) sd_varlink *vl = NULL;
         _cleanup_(table_unrefp) Table *table = NULL;
         sd_json_variant *reply;
index 63f89a616548607f391666fa7b151fe827db997b..b1536fc36d7b3e1c08e261596a94bed5666f00c6 100644 (file)
@@ -4,4 +4,4 @@
 #include "shared-forward.h"
 
 int dump_lldp_neighbors(sd_varlink *vl, Table *table, int ifindex);
-int verb_link_lldp_status(int argc, char *argv[], void *userdata);
+int verb_link_lldp_status(int argc, char *argv[], uintptr_t _data, void *userdata);
index 47323b1d9faa6ef8d05827bead70e9b71561e994..e130cdab4c67832f4648d4634855c04b6a64efeb 100644 (file)
@@ -46,7 +46,7 @@ static int parse_interfaces(sd_netlink **rtnl, char *argv[], OrderedSet **ret) {
         return 0;
 }
 
-int verb_link_up_down(int argc, char *argv[], void *userdata) {
+int verb_link_up_down(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r, ret = 0;
 
         bool up = streq_ptr(argv[0], "up");
@@ -75,7 +75,7 @@ int verb_link_up_down(int argc, char *argv[], void *userdata) {
         return ret;
 }
 
-int verb_link_delete(int argc, char *argv[], void *userdata) {
+int verb_link_delete(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r, ret = 0;
 
         _cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
@@ -104,7 +104,7 @@ int verb_link_delete(int argc, char *argv[], void *userdata) {
         return ret;
 }
 
-int verb_link_bus_simple_method(int argc, char *argv[], void *userdata) {
+int verb_link_bus_simple_method(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r, ret = 0;
 
         typedef struct LinkBusAction {
@@ -159,7 +159,7 @@ int verb_link_bus_simple_method(int argc, char *argv[], void *userdata) {
         return ret;
 }
 
-int verb_reload(int argc, char *argv[], void *userdata) {
+int verb_reload(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r;
@@ -177,7 +177,7 @@ int verb_reload(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-int verb_persistent_storage(int argc, char *argv[], void *userdata) {
+int verb_persistent_storage(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_varlink_flush_close_unrefp) sd_varlink *vl = NULL;
         bool ready;
         int r;
index df7a6a6fc052e39d2db65db4e11726939e8d61fd..092177275d7464cb739d586ee3ce3b5a4912b89c 100644 (file)
@@ -1,8 +1,10 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_link_up_down(int argc, char *argv[], void *userdata);
-int verb_link_delete(int argc, char *argv[], void *userdata);
-int verb_link_bus_simple_method(int argc, char *argv[], void *userdata);
-int verb_reload(int argc, char *argv[], void *userdata);
-int verb_persistent_storage(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_link_up_down(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_link_delete(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_link_bus_simple_method(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_reload(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_persistent_storage(int argc, char *argv[], uintptr_t _data, void *userdata);
index e2db2c7553909e20ec3514542c563aba3573439f..b73fceb91a2005a02dc451a2c278433567f4b46b 100644 (file)
@@ -939,7 +939,7 @@ static int link_status_one(
         return show_logs(info->ifindex, info->name);
 }
 
-int verb_link_status(int argc, char *argv[], void *userdata) {
+int verb_link_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
         _cleanup_(sd_hwdb_unrefp) sd_hwdb *hwdb = NULL;
index 70cbf4f1604d042a69ef0681bf9048acc9240217..fcc0fa07289dd490fdda477346200dc8ce4c41da 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_link_status(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_link_status(int argc, char *argv[], uintptr_t _data, void *userdata);
index 1cfde287e912096b281907235abcbce45dc9593d..ed394e42d8c48827164f53578a83403f9ecce003 100644 (file)
@@ -46,11 +46,11 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
-static int verb_dump_state(int argc, char *argv[], void *userdata) {
+static int verb_dump_state(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
index 2d3c0862615a4f48f63959b166cff2e3fb056013..ddae43dc54895c414de1d3a93cfbab10aef0bd41 100644 (file)
@@ -2494,7 +2494,7 @@ static int event_log_load_and_process(EventLog **ret) {
         return 0;
 }
 
-static int verb_show_log(int argc, char *argv[], void *userdata) {
+static int verb_show_log(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *log_table = NULL, *pcr_table = NULL;
         _cleanup_(event_log_freep) EventLog *el = NULL;
         bool want_json = sd_json_format_enabled(arg_json_format_flags);
@@ -2607,7 +2607,7 @@ static int event_log_record_to_cel(EventLogRecord *record, uint64_t *recnum, sd_
         return 0;
 }
 
-static int verb_show_cel(int argc, char *argv[], void *userdata) {
+static int verb_show_cel(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *array = NULL;
         _cleanup_(event_log_freep) EventLog *el = NULL;
         uint64_t recnum = 0;
@@ -2642,7 +2642,7 @@ static int verb_show_cel(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_list_components(int argc, char *argv[], void *userdata) {
+static int verb_list_components(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(event_log_freep) EventLog *el = NULL;
         _cleanup_(table_unrefp) Table *table = NULL;
         enum {
@@ -2962,7 +2962,7 @@ static int unlink_pcrlock(const char *default_pcrlock_path) {
         return 0;
 }
 
-static int verb_lock_raw(int argc, char *argv[], void *userdata) {
+static int verb_lock_raw(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *records = NULL;
         _cleanup_fclose_ FILE *f = NULL;
         int r;
@@ -2983,11 +2983,11 @@ static int verb_lock_raw(int argc, char *argv[], void *userdata) {
         return write_pcrlock(records, NULL);
 }
 
-static int verb_unlock_simple(int argc, char *argv[], void *userdata) {
+static int verb_unlock_simple(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return unlink_pcrlock(NULL);
 }
 
-static int verb_lock_secureboot_policy(int argc, char *argv[], void *userdata) {
+static int verb_lock_secureboot_policy(int argc, char *argv[], uintptr_t _data, void *userdata) {
         static const struct {
                 sd_id128_t id;
                 const char *name;
@@ -3060,7 +3060,7 @@ static int verb_lock_secureboot_policy(int argc, char *argv[], void *userdata) {
         return write_pcrlock(array, PCRLOCK_SECUREBOOT_POLICY_PATH);
 }
 
-static int verb_unlock_secureboot_policy(int argc, char *argv[], void *userdata) {
+static int verb_unlock_secureboot_policy(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return unlink_pcrlock(PCRLOCK_SECUREBOOT_POLICY_PATH);
 }
 
@@ -3181,7 +3181,7 @@ static int event_log_ensure_secureboot_consistency(EventLog *el) {
         return 0;
 }
 
-static int verb_lock_secureboot_authority(int argc, char *argv[], void *userdata) {
+static int verb_lock_secureboot_authority(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *array = NULL;
         _cleanup_(event_log_freep) EventLog *el = NULL;
         int r;
@@ -3260,11 +3260,11 @@ static int verb_lock_secureboot_authority(int argc, char *argv[], void *userdata
         return write_pcrlock(array, PCRLOCK_SECUREBOOT_AUTHORITY_PATH);
 }
 
-static int verb_unlock_secureboot_authority(int argc, char *argv[], void *userdata) {
+static int verb_unlock_secureboot_authority(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return unlink_pcrlock(PCRLOCK_SECUREBOOT_AUTHORITY_PATH);
 }
 
-static int verb_lock_gpt(int argc, char *argv[], void *userdata) {
+static int verb_lock_gpt(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *array = NULL, *record = NULL;
         _cleanup_(sd_device_unrefp) sd_device *d = NULL;
         uint8_t h[2 * 4096]; /* space for at least two 4K sectors. GPT header should definitely be in here */
@@ -3377,7 +3377,7 @@ static int verb_lock_gpt(int argc, char *argv[], void *userdata) {
         return write_pcrlock(array, PCRLOCK_GPT_PATH);
 }
 
-static int verb_unlock_gpt(int argc, char *argv[], void *userdata) {
+static int verb_unlock_gpt(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return unlink_pcrlock(PCRLOCK_GPT_PATH);
 }
 
@@ -3436,7 +3436,7 @@ static void enable_json_sse(void) {
         arg_json_format_flags |= SD_JSON_FORMAT_SSE;
 }
 
-static int verb_lock_firmware(int argc, char *argv[], void *userdata) {
+static int verb_lock_firmware(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *array_early = NULL, *array_late = NULL;
         _cleanup_(event_log_freep) EventLog *el = NULL;
         uint32_t always_mask, separator_mask, separator_seen_mask = 0, action_seen_mask = 0;
@@ -3555,7 +3555,7 @@ static int verb_lock_firmware(int argc, char *argv[], void *userdata) {
         return write_pcrlock(array_late, default_pcrlock_late_path);
 }
 
-static int verb_unlock_firmware(int argc, char *argv[], void *userdata) {
+static int verb_unlock_firmware(int argc, char *argv[], uintptr_t _data, void *userdata) {
         const char *default_pcrlock_early_path, *default_pcrlock_late_path;
         int r;
 
@@ -3581,7 +3581,7 @@ static int verb_unlock_firmware(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_lock_machine_id(int argc, char *argv[], void *userdata) {
+static int verb_lock_machine_id(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *record = NULL, *array = NULL;
         _cleanup_free_ char *word = NULL;
         int r;
@@ -3601,7 +3601,7 @@ static int verb_lock_machine_id(int argc, char *argv[], void *userdata) {
         return write_pcrlock(array, PCRLOCK_MACHINE_ID_PATH);
 }
 
-static int verb_unlock_machine_id(int argc, char *argv[], void *userdata) {
+static int verb_unlock_machine_id(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return unlink_pcrlock(PCRLOCK_MACHINE_ID_PATH);
 }
 
@@ -3632,7 +3632,7 @@ static int pcrlock_file_system_path(const char *normalized_path, char **ret) {
         return 0;
 }
 
-static int verb_lock_file_system(int argc, char *argv[], void *userdata) {
+static int verb_lock_file_system(int argc, char *argv[], uintptr_t _data, void *userdata) {
         const char* paths[3] = {};
         int r;
 
@@ -3685,7 +3685,7 @@ static int verb_lock_file_system(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_unlock_file_system(int argc, char *argv[], void *userdata) {
+static int verb_unlock_file_system(int argc, char *argv[], uintptr_t _data, void *userdata) {
         const char* paths[3] = {};
         int r;
 
@@ -3715,7 +3715,7 @@ static int verb_unlock_file_system(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_lock_pe(int argc, char *argv[], void *userdata) {
+static int verb_lock_pe(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *array = NULL;
         _cleanup_close_ int fd = -EBADF;
         int r;
@@ -3779,7 +3779,7 @@ static void section_hashes_array_done(SectionHashArray *array) {
                 free((*array)[i]);
 }
 
-static int verb_lock_uki(int argc, char *argv[], void *userdata) {
+static int verb_lock_uki(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *array = NULL, *pe_digests = NULL;
         _cleanup_(section_hashes_array_done) SectionHashArray section_hashes = {};
         size_t hash_sizes[TPM2_N_HASH_ALGORITHMS];
@@ -3874,7 +3874,7 @@ static int verb_lock_uki(int argc, char *argv[], void *userdata) {
         return write_pcrlock(array, NULL);
 }
 
-static int verb_lock_kernel_cmdline(int argc, char *argv[], void *userdata) {
+static int verb_lock_kernel_cmdline(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *record = NULL, *array = NULL;
         _cleanup_free_ char *cmdline = NULL;
         int r;
@@ -3911,11 +3911,11 @@ static int verb_lock_kernel_cmdline(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_unlock_kernel_cmdline(int argc, char *argv[], void *userdata) {
+static int verb_unlock_kernel_cmdline(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return unlink_pcrlock(PCRLOCK_KERNEL_CMDLINE_PATH);
 }
 
-static int verb_lock_kernel_initrd(int argc, char *argv[], void *userdata) {
+static int verb_lock_kernel_initrd(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *records = NULL;
         _cleanup_fclose_ FILE *f = NULL;
         uint32_t pcr_mask = UINT32_C(1) << TPM2_PCR_KERNEL_INITRD;
@@ -3938,7 +3938,7 @@ static int verb_lock_kernel_initrd(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_unlock_kernel_initrd(int argc, char *argv[], void *userdata) {
+static int verb_unlock_kernel_initrd(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return unlink_pcrlock(PCRLOCK_KERNEL_INITRD_PATH);
 }
 
@@ -4322,7 +4322,7 @@ static int tpm2_pcr_prediction_run(
         return 0;
 }
 
-static int verb_predict(int argc, char *argv[], void *userdata) {
+static int verb_predict(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(tpm2_pcr_prediction_done) Tpm2PCRPrediction context = {
                 arg_pcr_mask != 0 ? arg_pcr_mask : DEFAULT_PCR_MASK,
         };
@@ -4901,7 +4901,7 @@ static int make_policy(bool force, RecoveryPinMode recovery_pin_mode) {
         return 1; /* installed new policy */
 }
 
-static int verb_make_policy(int argc, char *argv[], void *userdata) {
+static int verb_make_policy(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         r = make_policy(arg_force, arg_recovery_pin);
@@ -5001,7 +5001,7 @@ static int remove_policy(void) {
         return ret;
 }
 
-static int verb_remove_policy(int argc, char *argv[], void *userdata) {
+static int verb_remove_policy(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return remove_policy();
 }
 
@@ -5035,7 +5035,7 @@ static int test_tpm2_support_pcrlock(Tpm2Support *ret) {
         return 0;
 }
 
-static int verb_is_supported(int argc, char *argv[], void *userdata) {
+static int verb_is_supported(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         Tpm2Support s;
@@ -5059,7 +5059,7 @@ static int verb_is_supported(int argc, char *argv[], void *userdata) {
         return ~s & (TPM2_SUPPORT_API|TPM2_SUPPORT_API_PCRLOCK);
 }
 
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -5131,6 +5131,10 @@ static int help(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
+
 static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_VERSION = 0x100,
@@ -5177,8 +5181,7 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
 
                 case 'h':
-                        help(0, NULL, NULL);
-                        return 0;
+                        return help();
 
                 case ARG_VERSION:
                         return version();
@@ -5354,7 +5357,7 @@ static int parse_argv(int argc, char *argv[]) {
 
 static int pcrlock_main(int argc, char *argv[]) {
         static const Verb verbs[] = {
-                { "help",                        VERB_ANY, VERB_ANY, 0,            help                             },
+                { "help",                        VERB_ANY, VERB_ANY, 0,            verb_help                        },
                 { "log",                         VERB_ANY, 1,        VERB_DEFAULT, verb_show_log                    },
                 { "cel",                         VERB_ANY, 1,        0,            verb_show_cel                    },
                 { "list-components",             VERB_ANY, 1,        0,            verb_list_components             },
index cf30361319e5a5bfa76c3883b6c2980513cee45f..ea5836fdabdd770fb396fd951eba1f4fe27eb067 100644 (file)
@@ -288,7 +288,7 @@ static int get_image_metadata(sd_bus *bus, const char *image, char **matches, sd
         return 0;
 }
 
-static int verb_inspect_image(int argc, char *argv[], void *userdata) {
+static int verb_inspect_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_strv_free_ char **matches = NULL;
@@ -958,15 +958,15 @@ static int attach_reattach_image(int argc, char *argv[], const char *method) {
         return 0;
 }
 
-static int verb_attach_image(int argc, char *argv[], void *userdata) {
+static int verb_attach_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return attach_reattach_image(argc, argv, strv_isempty(arg_extension_images) && !arg_force ? "AttachImage" : "AttachImageWithExtensions");
 }
 
-static int verb_reattach_image(int argc, char *argv[], void *userdata) {
+static int verb_reattach_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return attach_reattach_image(argc, argv, strv_isempty(arg_extension_images) && !arg_force ? "ReattachImage" : "ReattachImageWithExtensions");
 }
 
-static int verb_detach_image(int argc, char *argv[], void *userdata) {
+static int verb_detach_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -1020,7 +1020,7 @@ static int verb_detach_image(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_list_images(int argc, char *argv[], void *userdata) {
+static int verb_list_images(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -1094,7 +1094,7 @@ static int verb_list_images(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_remove_image(int argc, char *argv[], void *userdata) {
+static int verb_remove_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r, i;
 
@@ -1125,7 +1125,7 @@ static int verb_remove_image(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_read_only_image(int argc, char *argv[], void *userdata) {
+static int verb_read_only_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int b = true, r;
@@ -1149,7 +1149,7 @@ static int verb_read_only_image(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_set_limit(int argc, char *argv[], void *userdata) {
+static int verb_set_limit(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         uint64_t limit;
@@ -1182,7 +1182,7 @@ static int verb_set_limit(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_is_image_attached(int argc, char *argv[], void *userdata) {
+static int verb_is_image_attached(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
@@ -1319,7 +1319,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index 349d1fb15bd430abd74026b3da6c20f212e64a43..ab29cc601f0e6a785658dde30e607907f9b1ccbb 100644 (file)
@@ -576,7 +576,7 @@ static int readdir_sources(char **ret_directory, DirectoryEntries **ret) {
         return m > 0;
 }
 
-static int verb_metrics(int argc, char *argv[], void *userdata) {
+static int verb_metrics(int argc, char *argv[], uintptr_t _data, void *userdata) {
         Action action;
         int r;
 
@@ -662,7 +662,7 @@ static int verb_metrics(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_list_sources(int argc, char *argv[], void *userdata) {
+static int verb_list_sources(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         _cleanup_(table_unrefp) Table *table = table_new("source", "address");
@@ -717,7 +717,7 @@ static int verb_list_sources(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -754,6 +754,10 @@ static int verb_help(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
+
 static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_VERSION = 0x100,
@@ -783,7 +787,7 @@ static int parse_argv(int argc, char *argv[]) {
         while ((c = getopt_long(argc, argv, "hj", options, NULL)) >= 0)
                 switch (c) {
                 case 'h':
-                        return verb_help(/* argc= */ 0, /* argv= */ NULL, /* userdata= */ NULL);
+                        return help();
 
                 case ARG_VERSION:
                         return version();
index ac948c64da256624f42e325dd0412d02914a4648..e4705a6bccc7646bff62cbb77b62570f8d8d48f5 100644 (file)
@@ -787,7 +787,7 @@ invalid:
                                "Invalid DNS URI: %s", name);
 }
 
-static int verb_query(int argc, char **argv, void *userdata) {
+static int verb_query(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int ret = 0, r;
 
@@ -997,7 +997,7 @@ static int resolve_service(sd_bus *bus, const char *name, const char *type, cons
         return 0;
 }
 
-static int verb_service(int argc, char **argv, void *userdata) {
+static int verb_service(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r;
 
@@ -1079,7 +1079,7 @@ static int resolve_openpgp(sd_bus *bus, const char *address) {
 }
 #endif
 
-static int verb_openpgp(int argc, char **argv, void *userdata) {
+static int verb_openpgp(int argc, char *argv[], uintptr_t _data, void *userdata) {
 #if HAVE_OPENSSL
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r, ret = 0;
@@ -1136,7 +1136,7 @@ static bool service_family_is_valid(const char *s) {
         return STR_IN_SET(s, "tcp", "udp", "sctp");
 }
 
-static int verb_tlsa(int argc, char **argv, void *userdata) {
+static int verb_tlsa(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         const char *family = "tcp";
         char **args;
@@ -1163,7 +1163,7 @@ static int verb_tlsa(int argc, char **argv, void *userdata) {
         return ret;
 }
 
-static int verb_show_statistics(int argc, char **argv, void *userdata) {
+static int verb_show_statistics(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *table = NULL;
         sd_json_variant *reply = NULL;
         _cleanup_(sd_varlink_unrefp) sd_varlink *vl = NULL;
@@ -1328,7 +1328,7 @@ static int verb_show_statistics(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_reset_statistics(int argc, char **argv, void *userdata) {
+static int verb_reset_statistics(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_json_variant *reply = NULL;
         _cleanup_(sd_varlink_unrefp) sd_varlink *vl = NULL;
         int r;
@@ -1353,7 +1353,7 @@ static int verb_reset_statistics(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_flush_caches(int argc, char **argv, void *userdata) {
+static int verb_flush_caches(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r;
@@ -1369,7 +1369,7 @@ static int verb_flush_caches(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_reset_server_features(int argc, char **argv, void *userdata) {
+static int verb_reset_server_features(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r;
@@ -1985,7 +1985,7 @@ static int status_ifindex(int ifindex, StatusMode mode) {
         return status_full(mode, STRV_MAKE(ifname));
 }
 
-static int verb_status(int argc, char **argv, void *userdata) {
+static int verb_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return status_full(STATUS_ALL, strv_skip(argv, 1));
 }
 
@@ -2062,7 +2062,7 @@ static int call_dns(sd_bus *bus, char **dns, const BusLocator *locator, sd_bus_e
         return r;
 }
 
-static int verb_dns(int argc, char **argv, void *userdata) {
+static int verb_dns(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r;
@@ -2147,7 +2147,7 @@ static int call_domain(sd_bus *bus, char **domain, const BusLocator *locator, sd
         return sd_bus_call(bus, req, 0, error, NULL);
 }
 
-static int verb_domain(int argc, char **argv, void *userdata) {
+static int verb_domain(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r;
@@ -2186,7 +2186,7 @@ static int verb_domain(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_default_route(int argc, char **argv, void *userdata) {
+static int verb_default_route(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r, b;
@@ -2230,7 +2230,7 @@ static int verb_default_route(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_llmnr(int argc, char **argv, void *userdata) {
+static int verb_llmnr(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_free_ char *global_llmnr_support_str = NULL;
@@ -2288,7 +2288,7 @@ static int verb_llmnr(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_mdns(int argc, char **argv, void *userdata) {
+static int verb_mdns(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_free_ char *global_mdns_support_str = NULL;
@@ -2352,7 +2352,7 @@ static int verb_mdns(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_dns_over_tls(int argc, char **argv, void *userdata) {
+static int verb_dns_over_tls(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r;
@@ -2398,7 +2398,7 @@ static int verb_dns_over_tls(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_dnssec(int argc, char **argv, void *userdata) {
+static int verb_dnssec(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r;
@@ -2459,7 +2459,7 @@ static int call_nta(sd_bus *bus, char **nta, const BusLocator *locator,  sd_bus_
         return sd_bus_call(bus, req, 0, error, NULL);
 }
 
-static int verb_nta(int argc, char **argv, void *userdata) {
+static int verb_nta(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         char **args;
@@ -2517,7 +2517,7 @@ static int verb_nta(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_revert_link(int argc, char **argv, void *userdata) {
+static int verb_revert_link(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r;
@@ -2554,7 +2554,7 @@ static int verb_revert_link(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_log_level(int argc, char *argv[], void *userdata) {
+static int verb_log_level(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
         int r;
 
@@ -2750,7 +2750,7 @@ static int monitor_reply(
         return 0;
 }
 
-static int verb_monitor(int argc, char *argv[], void *userdata) {
+static int verb_monitor(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
         _cleanup_(sd_varlink_unrefp) sd_varlink *vl = NULL;
         int r, c;
@@ -2924,7 +2924,7 @@ static int dump_cache_scope(sd_json_variant *scope) {
         return 0;
 }
 
-static int verb_show_cache(int argc, char *argv[], void *userdata) {
+static int verb_show_cache(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_json_variant *reply = NULL, *d = NULL;
         _cleanup_(sd_varlink_unrefp) sd_varlink *vl = NULL;
         int r;
@@ -3104,7 +3104,7 @@ static int dump_server_state(sd_json_variant *server) {
         return 0;
 }
 
-static int verb_show_server_state(int argc, char *argv[], void *userdata) {
+static int verb_show_server_state(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_json_variant *reply = NULL, *d = NULL;
         _cleanup_(sd_varlink_unrefp) sd_varlink *vl = NULL;
         int r;
@@ -3311,7 +3311,7 @@ static int native_help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char **argv, void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return native_help();
 }
 
index d13dc5e326a17bee37cd4f56c971f83ec337baa9..ee1c0f77ab906a2b5380c077f76771d0d980d573 100644 (file)
@@ -45,7 +45,7 @@ STATIC_DESTRUCTOR_REGISTER(arg_private_key_source, freep);
 STATIC_DESTRUCTOR_REGISTER(arg_signed_data, freep);
 STATIC_DESTRUCTOR_REGISTER(arg_signed_data_signature, freep);
 
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -83,6 +83,10 @@ static int help(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
+
 static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_VERSION = 0x100,
@@ -119,8 +123,7 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
 
                 case 'h':
-                        help(0, NULL, NULL);
-                        return 0;
+                        return help();
 
                 case ARG_VERSION:
                         return version();
@@ -438,7 +441,7 @@ static int pkcs7_add_digest_attribute(PKCS7 *p7, BIO *data, PKCS7_SIGNER_INFO *s
         return 0;
 }
 
-static int verb_sign(int argc, char *argv[], void *userdata) {
+static int verb_sign(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(openssl_ask_password_ui_freep) OpenSSLAskPasswordUI *ui = NULL;
         _cleanup_(EVP_PKEY_freep) EVP_PKEY *private_key = NULL;
         _cleanup_(X509_freep) X509 *certificate = NULL;
@@ -739,8 +742,8 @@ static int verb_sign(int argc, char *argv[], void *userdata) {
 
 static int run(int argc, char *argv[]) {
         static const Verb verbs[] = {
-                { "help",         VERB_ANY, VERB_ANY, 0,    help              },
-                { "sign",         2,        2,        0,    verb_sign         },
+                { "help",         VERB_ANY, VERB_ANY, 0,    verb_help },
+                { "sign",         2,        2,        0,    verb_sign },
                 {}
         };
         int r;
index b7b78619fdedeb9ae3348e32a966a02256561d75..c6d35913b4fc9b35c7b92cb506f8922d4e41c2ab 100644 (file)
@@ -134,7 +134,7 @@ int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata) {
         }
 
         if (!name)
-                return verb->dispatch(1, STRV_MAKE(verb->verb), userdata);
+                return verb->dispatch(1, STRV_MAKE(verb->verb), verb->data, userdata);
 
-        return verb->dispatch(left, argv, userdata);
+        return verb->dispatch(left, argv, verb->data, userdata);
 }
index 0fb6621af600d2eb45a36cf552fb35bc9b1d005f..e330156318e96f332a84f355b09bc55ac8077bd4 100644 (file)
@@ -14,7 +14,8 @@ typedef struct {
         const char *verb;
         unsigned min_args, max_args;
         VerbFlags flags;
-        int (* const dispatch)(int argc, char *argv[], void *userdata);
+        int (* const dispatch)(int argc, char *argv[], uintptr_t data, void *userdata);
+        uintptr_t data;
 } Verb;
 
 bool running_in_chroot_or_offline(void);
index 3661457d26f737a625b6124dcadb7d488fefac6f..32de5a454c8cb03847623e2dc3faa207638071ec 100644 (file)
@@ -597,7 +597,7 @@ static int unmerge(
         return 0;
 }
 
-static int verb_unmerge(int argc, char **argv, void *userdata) {
+static int verb_unmerge(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         r = have_effective_cap(CAP_SYS_ADMIN);
@@ -690,7 +690,7 @@ static int vl_method_unmerge(sd_varlink *link, sd_json_variant *parameters, sd_v
         return sd_varlink_reply(link, NULL);
 }
 
-static int verb_status(int argc, char **argv, void *userdata) {
+static int verb_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *t = NULL;
         int r, ret = 0;
 
@@ -2474,7 +2474,7 @@ static int look_for_merged_hierarchies(
         return 0;
 }
 
-static int verb_merge(int argc, char **argv, void *userdata) {
+static int verb_merge(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_hashmap_free_ Hashmap *images = NULL;
         const char *which;
         int r;
@@ -2637,7 +2637,7 @@ static int refresh(
         return r;
 }
 
-static int verb_refresh(int argc, char **argv, void *userdata) {
+static int verb_refresh(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         r = have_effective_cap(CAP_SYS_ADMIN);
@@ -2703,7 +2703,7 @@ static int vl_method_refresh(sd_varlink *link, sd_json_variant *parameters, sd_v
         return sd_varlink_reply(link, NULL);
 }
 
-static int verb_list(int argc, char **argv, void *userdata) {
+static int verb_list(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_hashmap_free_ Hashmap *images = NULL;
         _cleanup_(table_unrefp) Table *t = NULL;
         Image *img;
@@ -2794,7 +2794,7 @@ static int vl_method_list(sd_varlink *link, sd_json_variant *parameters, sd_varl
         return 0;
 }
 
-static int verb_help(int argc, char **argv, void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -2839,8 +2839,11 @@ static int verb_help(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int parse_argv(int argc, char *argv[]) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
 
+static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_VERSION = 0x100,
                 ARG_NO_PAGER,
@@ -2881,7 +2884,7 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
 
                 case 'h':
-                        return verb_help(argc, argv, NULL);
+                        return help();
 
                 case ARG_VERSION:
                         return version();
index bc1a1f00f69e5497b3a7fb0c405f016f63438f2e..2972c4c63b83977381e9070e3d12751c15789aa4 100644 (file)
@@ -17,7 +17,7 @@
 #include "systemctl-util.h"
 #include "unit-name.h"
 
-int verb_add_dependency(int argc, char *argv[], void *userdata) {
+int verb_add_dependency(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_strv_free_ char **names = NULL;
         _cleanup_free_ char *target = NULL;
         const char *verb = argv[0];
index 11e5c82cc99a63eb47d6e81a301738dca58701a1..799301170ba6a2a020adfd9f857d046934102a3e 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_add_dependency(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_add_dependency(int argc, char *argv[], uintptr_t _data, void *userdata);
index 63459820f9698ee5d986f5d9b327f6397a0642cf..ed829fb1382ad1bbbf3d34ed65b4d6e5c5d35e42 100644 (file)
 #include "systemctl-trivial-method.h"
 #include "systemctl-util.h"
 
-int verb_cancel(int argc, char *argv[], void *userdata) {
+int verb_cancel(int argc, char *argv[], uintptr_t data, void *userdata) {
         sd_bus *bus;
         int r;
 
         if (argc <= 1) /* Shortcut to trivial_method() if no argument is given */
-                return verb_trivial_method(argc, argv, userdata);
+                return verb_trivial_method(argc, argv, data, userdata);
 
         r = acquire_bus(BUS_MANAGER, &bus);
         if (r < 0)
index 397e5155f3eb2de794334a6d2dc53f1f768573c1..0c27cb19e5b83e10f1e5232a1ca31b276c6dc55e 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_cancel(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_cancel(int argc, char *argv[], uintptr_t _data, void *userdata);
index 4870074e8c0149018448df19c85b4de8a29e7ae4..dfaff2adbcf3501d18fc3a4e904209465b1f8c9b 100644 (file)
@@ -13,7 +13,7 @@
 #include "systemctl-clean-or-freeze.h"
 #include "systemctl-util.h"
 
-int verb_clean_or_freeze(int argc, char *argv[], void *userdata) {
+int verb_clean_or_freeze(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(bus_wait_for_units_freep) BusWaitForUnits *w = NULL;
         _cleanup_strv_free_ char **names = NULL;
         int r, ret = EXIT_SUCCESS;
index 5f2bca4a4e56aed68496e793ae411c44f161b699..aadf15c2975aec58233f289b5fb1295866a5d5b7 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_clean_or_freeze(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_clean_or_freeze(int argc, char *argv[], uintptr_t _data, void *userdata);
index 614216fd085591d68dfe8c254cc702efe5025198..cebdfb2413f1606c63607f5a8d14db1e1ce8804b 100644 (file)
@@ -170,7 +170,7 @@ int halt_main(void) {
                 arg_no_block = true;
 
                 if (!arg_dry_run)
-                        return verb_start(0, NULL, NULL);
+                        return verb_start(0, NULL, /* data= */ 0, NULL);
         }
 
         r = must_be_root();
index 48606dd77f0cb49097efbd4f526b6dae1804ac20..fd513e69d47b4d6c47da0b9b35dc2bbab8bbb3fc 100644 (file)
@@ -62,7 +62,7 @@ int daemon_reload(enum action action, bool graceful) {
         return 1;
 }
 
-int verb_daemon_reload(int argc, char *argv[], void *userdata) {
+int verb_daemon_reload(int argc, char *argv[], uintptr_t _data, void *userdata) {
         enum action a;
         int r;
 
index 0265a313f2a336b80c6222dc110cde03b45b17b8..3a9785a9aaf37ce2ffc4f9b144489b45775810f2 100644 (file)
@@ -5,4 +5,4 @@
 
 int daemon_reload(enum action action, bool graceful);
 
-int verb_daemon_reload(int argc, char *argv[], void *userdata);
+int verb_daemon_reload(int argc, char *argv[], uintptr_t _data, void *userdata);
index a28180922a02ddbb1446412261ee6607c558246e..ea0ca2f2f657ec33cd41a10587ea45aa61c7298e 100644 (file)
@@ -20,7 +20,7 @@
 #include "terminal-util.h"
 #include "unit-name.h"
 
-int verb_cat(int argc, char *argv[], void *userdata) {
+int verb_cat(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_hashmap_free_ Hashmap *cached_id_map = NULL, *cached_name_map = NULL;
         _cleanup_(lookup_paths_done) LookupPaths lp = {};
         _cleanup_strv_free_ char **names = NULL;
@@ -324,7 +324,7 @@ static int find_paths_to_edit(
         return 0;
 }
 
-int verb_edit(int argc, char *argv[], void *userdata) {
+int verb_edit(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(edit_file_context_done) EditFileContext context = {
                 .marker_start = DROPIN_MARKER_START,
                 .marker_end = DROPIN_MARKER_END,
index 10dac5cb2a19d8cd97ec56c1d47f0e27de4c7eff..d847b8c42cde0ff0193d359cd4218fe9d72c220d 100644 (file)
@@ -1,5 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_cat(int argc, char *argv[], void *userdata);
-int verb_edit(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_cat(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_edit(int argc, char *argv[], uintptr_t _data, void *userdata);
index f6277b7287135d1778f11f8d4d98a45e0d1bb2cd..68c349a195c67115907240bda276772f8399097e 100644 (file)
@@ -80,7 +80,7 @@ static int normalize_names(char **names) {
         return 0;
 }
 
-int verb_enable(int argc, char *argv[], void *userdata) {
+int verb_enable(int argc, char *argv[], uintptr_t data, void *userdata) {
         const char *verb = ASSERT_PTR(argv[0]);
         _cleanup_strv_free_ char **names = NULL;
         int carries_install_info = -1;
@@ -402,7 +402,7 @@ int verb_enable(int argc, char *argv[], void *userdata) {
                                 return log_oom();
                 }
 
-                return verb_start(strv_length(new_args), new_args, userdata);
+                return verb_start(strv_length(new_args), new_args, data, userdata);
         }
 
         return 0;
index f04bbcd62a2b2f5d0e0469dd500f2f38a1af40ae..ec1d911a7eb63fb9a146d1ba0258dcdb7ffee2cf 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_enable(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_enable(int argc, char *argv[], uintptr_t _data, void *userdata);
index 19c24eaf7e577535eaba66d2c0ff6daf3359423a..6f853b5b59c39f16a125757bc79fa7152ce5524e 100644 (file)
@@ -57,7 +57,7 @@ static int check_unit_generic(int code, const UnitActiveState good_states[], siz
         return ok ? EXIT_SUCCESS : not_found ? EXIT_PROGRAM_OR_SERVICES_STATUS_UNKNOWN : code;
 }
 
-int verb_is_active(int argc, char *argv[], void *userdata) {
+int verb_is_active(int argc, char *argv[], uintptr_t _data, void *userdata) {
 
         static const UnitActiveState states[] = {
                 UNIT_ACTIVE,
@@ -69,7 +69,7 @@ int verb_is_active(int argc, char *argv[], void *userdata) {
         return check_unit_generic(EXIT_PROGRAM_NOT_RUNNING, states, ELEMENTSOF(states), strv_skip(argv, 1));
 }
 
-int verb_is_failed(int argc, char *argv[], void *userdata) {
+int verb_is_failed(int argc, char *argv[], uintptr_t _data, void *userdata) {
 
         static const UnitActiveState states[] = {
                 UNIT_FAILED,
index 950f29ac55b62c9ac5927322d0d98791136810e4..771739f85647839c330e21d35992077098cf6f82 100644 (file)
@@ -1,5 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_is_active(int argc, char *argv[], void *userdata);
-int verb_is_failed(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_is_active(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_is_failed(int argc, char *argv[], uintptr_t _data, void *userdata);
index 77b8cac5f01ebdb37378c6787ac15c803ac45f2d..e42faf2724c7c7b84a4f35efc7a71d075b4d6f60 100644 (file)
@@ -65,7 +65,7 @@ static int show_installation_targets(sd_bus *bus, const char *name) {
         return 0;
 }
 
-int verb_is_enabled(int argc, char *argv[], void *userdata) {
+int verb_is_enabled(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_strv_free_ char **names = NULL;
         bool not_found = true, enabled = false;
         int r;
index 96dff95d6f33bd0485f4e865cc86e7cbf83fe78b..1ce1343327d1cbef0bdedcf881ca06db2678b4d0 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_is_enabled(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_is_enabled(int argc, char *argv[], uintptr_t _data, void *userdata);
index 943d4aa6d7a77d1d8a54fa82afdebd6b8deaffba..2270f5ad56fc69d86fd5ac9bffc27e6dcbe8a2df 100644 (file)
@@ -25,7 +25,7 @@ static int match_startup_finished(sd_bus_message *m, void *userdata, sd_bus_erro
         return 0;
 }
 
-int verb_is_system_running(int argc, char *argv[], void *userdata) {
+int verb_is_system_running(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_slot_unrefp) sd_bus_slot *slot_startup_finished = NULL;
         _cleanup_(sd_event_unrefp) sd_event* event = NULL;
index de86211a912daeb3ae0a5315d98a797425f04546..ebe80aed9d702017a71a3798f3f3487bc3985852 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_is_system_running(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_is_system_running(int argc, char *argv[], uintptr_t _data, void *userdata);
index 1452deb5b7c907992aba0ab270da32257cf3a800..575ef1e4193e2f602d7566468f956ceee2ccc618 100644 (file)
@@ -13,7 +13,7 @@
 #include "systemctl-kill.h"
 #include "systemctl-util.h"
 
-int verb_kill(int argc, char *argv[], void *userdata) {
+int verb_kill(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(bus_wait_for_units_freep) BusWaitForUnits *w = NULL;
         _cleanup_strv_free_ char **names = NULL;
         const char *kill_whom;
index 88b2eae4b29b95a5380b1a48c089280a4b3b67e9..54e8bbe262995c0663a53557f32df3635393a595 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_kill(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_kill(int argc, char *argv[], uintptr_t _data, void *userdata);
index 65f12ea473977f56a3c7bec2ed548c59a6016706..8e5736ef3531f5ceae392e5407121fb9d30f1463 100644 (file)
@@ -167,7 +167,7 @@ static int list_dependencies_one(
         return 0;
 }
 
-int verb_list_dependencies(int argc, char *argv[], void *userdata) {
+int verb_list_dependencies(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_strv_free_ char **units = NULL, **done = NULL;
         char **patterns;
         sd_bus *bus;
index 1e68a5f9f05df8fe1557100b91bfbf5176935e90..53b68085acd63da3e45a4fa3a6ecee2a667bfad4 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_list_dependencies(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_list_dependencies(int argc, char *argv[], uintptr_t _data, void *userdata);
index 9049873bbe32976828ad989a8a8faf14ac7992ce..5804d32518c6eca6b3a92e0ef400af607b969f55 100644 (file)
@@ -133,7 +133,7 @@ static bool output_show_job(struct job_info *job, char **patterns) {
         return strv_fnmatch_or_empty(patterns, job->name, FNM_NOESCAPE);
 }
 
-int verb_list_jobs(int argc, char *argv[], void *userdata) {
+int verb_list_jobs(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_free_ struct job_info *jobs = NULL;
index b10ec79b3ec988de0bdf477a454d09aeac40980b..f8fe9b6302c77e5df19005dd18979f0575d26aa4 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_list_jobs(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_list_jobs(int argc, char *argv[], uintptr_t _data, void *userdata);
index ea83f43a737fa086950b884c30aae76d4686b2c0..a5d0376c27238b2707e5438338c21b637cf713ac 100644 (file)
@@ -231,7 +231,7 @@ static int output_machines_list(struct machine_info *machine_infos, unsigned n)
         return 0;
 }
 
-int verb_list_machines(int argc, char *argv[], void *userdata) {
+int verb_list_machines(int argc, char *argv[], uintptr_t _data, void *userdata) {
         struct machine_info *machine_infos = NULL;
         sd_bus *bus;
         int r, rc;
index f1dd8353e1e5141bfddc2aed4f224ef157136066..fd0331604b5a0b1271a8e8526dea9dc9920e31c6 100644 (file)
@@ -4,7 +4,7 @@
 #include "bus-map-properties.h"
 #include "shared-forward.h"
 
-int verb_list_machines(int argc, char *argv[], void *userdata);
+int verb_list_machines(int argc, char *argv[], uintptr_t _data, void *userdata);
 
 struct machine_info {
         bool is_host;
index 548b2573fc4ec664dc12a4ce7d4d59a0caa06ff7..e0074974eeb802930afe3093c8408d18c4c8c7e5 100644 (file)
@@ -173,7 +173,7 @@ static int output_unit_file_list(const UnitFileList *units, unsigned c) {
         return 0;
 }
 
-int verb_list_unit_files(int argc, char *argv[], void *userdata) {
+int verb_list_unit_files(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_hashmap_free_ Hashmap *h = NULL;
         _cleanup_free_ UnitFileList *units = NULL;
index 4819fbd82001509fe221405e5aad0373782c86dc..150d392f00ef46141a1e91f1914e7b4f7f27eb13 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_list_unit_files(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_list_unit_files(int argc, char *argv[], uintptr_t _data, void *userdata);
index 7e16b4377b4e1a48013c512f08909966054527be..9a8cd89295b5c498d40e843ae70f8fb395867c07 100644 (file)
@@ -258,7 +258,7 @@ static int output_units_list(const UnitInfo *unit_infos, size_t c) {
         return 0;
 }
 
-int verb_list_units(int argc, char *argv[], void *userdata) {
+int verb_list_units(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_free_ UnitInfo *unit_infos = NULL;
         _cleanup_set_free_ Set *replies = NULL;
         sd_bus *bus;
@@ -490,7 +490,7 @@ static int output_sockets_list(const SocketInfo *sockets, size_t n_sockets) {
         return 0;
 }
 
-int verb_list_sockets(int argc, char *argv[], void *userdata) {
+int verb_list_sockets(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_set_free_ Set *replies = NULL;
         _cleanup_strv_free_ char **sockets_with_suffix = NULL;
         _cleanup_free_ UnitInfo *unit_infos = NULL;
@@ -771,7 +771,7 @@ static int add_timer_info(
         return 0;
 }
 
-int verb_list_timers(int argc, char *argv[], void *userdata) {
+int verb_list_timers(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_set_free_ Set *replies = NULL;
         _cleanup_strv_free_ char **timers_with_suffix = NULL;
         _cleanup_free_ UnitInfo *unit_infos = NULL;
@@ -970,7 +970,7 @@ static int output_automounts_list(const AutomountInfo *infos, size_t n_infos) {
         return 0;
 }
 
-int verb_list_automounts(int argc, char *argv[], void *userdata) {
+int verb_list_automounts(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_set_free_ Set *replies = NULL;
         _cleanup_strv_free_ char **names = NULL;
         _cleanup_free_ UnitInfo *unit_infos = NULL;
@@ -1178,7 +1178,7 @@ static int output_paths_list(const PathInfo *paths, size_t n_paths) {
         return 0;
 }
 
-int verb_list_paths(int argc, char *argv[], void *userdata) {
+int verb_list_paths(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_set_free_ Set *replies = NULL;
         _cleanup_strv_free_ char **units = NULL;
         _cleanup_free_ UnitInfo *unit_infos = NULL;
index 74bf9cda166a08d2a34de41c836b07b1b7e6401a..e3c4f24ececb12a1adedd3fdc487649b4bf36405 100644 (file)
@@ -3,10 +3,10 @@
 
 #include "time-util.h"
 
-int verb_list_units(int argc, char *argv[], void *userdata);
-int verb_list_sockets(int argc, char *argv[], void *userdata);
-int verb_list_timers(int argc, char *argv[], void *userdata);
-int verb_list_automounts(int argc, char *argv[], void *userdata);
-int verb_list_paths(int argc, char *argv[], void *userdata);
+int verb_list_units(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_list_sockets(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_list_timers(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_list_automounts(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_list_paths(int argc, char *argv[], uintptr_t _data, void *userdata);
 
 usec_t calc_next_elapse(const dual_timestamp *nw, const dual_timestamp *next);
index 1ea3d7abefad4666ddb527804580105c4e9ce9d9..845ed748c23cb2e14f096a7f2164325d6702e986 100644 (file)
@@ -26,7 +26,7 @@ static void give_log_control1_hint(const char *name) {
                    "      See the %s for details.", link ?: "org.freedesktop.LogControl1(5) man page");
 }
 
-int verb_log_setting(int argc, char *argv[], void *userdata) {
+int verb_log_setting(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus;
         int r;
 
@@ -71,7 +71,7 @@ static int service_name_to_dbus(sd_bus *bus, const char *name, char **ret_dbus_n
         return 0;
 }
 
-int verb_service_log_setting(int argc, char *argv[], void *userdata) {
+int verb_service_log_setting(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus;
         _cleanup_free_ char *unit = NULL, *dbus_name = NULL;
         int r;
index 910d6c8af5c8191d82417ca8e52ef133423c092a..bf8bfc3229c12a1028e356c36821a96249f92dae 100644 (file)
@@ -1,5 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_log_setting(int argc, char *argv[], void *userdata);
-int verb_service_log_setting(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_log_setting(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_service_log_setting(int argc, char *argv[], uintptr_t _data, void *userdata);
index bc4aa92260f833094da97f9600dbcb578b219084..23720d53fac4df8a5cb0e08177f997cec6d82611 100644 (file)
@@ -14,7 +14,7 @@
 #include "systemctl-util.h"
 #include "unit-name.h"
 
-int verb_bind(int argc, char *argv[], void *userdata) {
+int verb_bind(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_free_ char *n = NULL;
         sd_bus *bus;
@@ -48,7 +48,7 @@ int verb_bind(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-int verb_mount_image(int argc, char *argv[], void *userdata) {
+int verb_mount_image(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         const char *unit = argv[1], *src = argv[2], *dest = argv[3];
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
index b2d075001693b0f149bf8e55c580fda11a5bdead..a4a9760b3447aaf497dc0125950a9b0e461fb2c4 100644 (file)
@@ -1,5 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_bind(int argc, char *argv[], void *userdata);
-int verb_mount_image(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_bind(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_mount_image(int argc, char *argv[], uintptr_t _data, void *userdata);
index f621d55895614406f141144d212ab856beb6e636..2687a841d11d279181fa72ff5e3f74c2aef07932 100644 (file)
@@ -13,7 +13,7 @@
 #include "systemctl-util.h"
 #include "verbs.h"
 
-int verb_preset_all(int argc, char *argv[], void *userdata) {
+int verb_preset_all(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         if (should_bypass("SYSTEMD_PRESET"))
index 4631e7ea311fc89a3afe8be27632de1282bbbb9a..178ca31291fc37790704c939b646fb56e0dd05e6 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_preset_all(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_preset_all(int argc, char *argv[], uintptr_t _data, void *userdata);
index 18ca190517844e862a2321e0bb1f157a92f55644..8e14174f5ed6bb6decafc2e31a47d30e0a131650 100644 (file)
 #include "systemctl-trivial-method.h"
 #include "systemctl-util.h"
 
-int verb_reset_failed(int argc, char *argv[], void *userdata) {
+int verb_reset_failed(int argc, char *argv[], uintptr_t data, void *userdata) {
         _cleanup_strv_free_ char **names = NULL;
         sd_bus *bus;
         int r, q;
 
         if (argc <= 1) /* Shortcut to trivial_method() if no argument is given */
-                return verb_trivial_method(argc, argv, userdata);
+                return verb_trivial_method(argc, argv, data, userdata);
 
         r = acquire_bus(BUS_MANAGER, &bus);
         if (r < 0)
index 5da0659d6ec404442ca36303736038acea174b37..6ad714cf4a7eb538085aebfbe8230d6712108ee0 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_reset_failed(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_reset_failed(int argc, char *argv[], uintptr_t _data, void *userdata);
index 632345b405654f266d6d5d00b2a9a7c050ae40ba..7d563dacf5a985a73ae85bf22aba98831ae1ece2 100644 (file)
@@ -10,7 +10,7 @@
 #include "systemctl-service-watchdogs.h"
 #include "systemctl-util.h"
 
-int verb_service_watchdogs(int argc, char *argv[], void *userdata) {
+int verb_service_watchdogs(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int b, r;
index 2f59f5a3f437627108f29b3e34b77ef3252e08eb..e626a223c35f5fd852a5a0b8638f3b43fc607457 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_service_watchdogs(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_service_watchdogs(int argc, char *argv[], uintptr_t _data, void *userdata);
index c4faa31b4c17b70f20696736439b65ed62f3a51e..ac4e39203780d43c8db5fb2d641325122327d725 100644 (file)
@@ -88,7 +88,7 @@ static int determine_default(char **ret_name) {
         }
 }
 
-int verb_get_default(int argc, char *argv[], void *userdata) {
+int verb_get_default(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_free_ char *name = NULL;
         int r;
 
@@ -103,7 +103,7 @@ int verb_get_default(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-int verb_set_default(int argc, char *argv[], void *userdata) {
+int verb_set_default(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_free_ char *unit = NULL;
         int r;
 
index 7873e126780a3afe4d57ddfb83fb31b7651ba645..7df9e78c4f0202fa16caccd42a6e773c1d535e67 100644 (file)
@@ -1,5 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_get_default(int argc, char *argv[], void *userdata);
-int verb_set_default(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_get_default(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_set_default(int argc, char *argv[], uintptr_t _data, void *userdata);
index 7e04f5a8673376edc3e1f21529b48d2ab76227e8..008608fb8c22c6815b58ac9d48b58c562f4c0e3b 100644 (file)
@@ -70,7 +70,7 @@ static int print_variable(const char *s) {
         return 0;
 }
 
-int verb_show_environment(int argc, char *argv[], void *userdata) {
+int verb_show_environment(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         const char *text;
@@ -122,7 +122,7 @@ static void invalid_callback(const char *p, void *userdata) {
         log_debug("Ignoring invalid environment assignment \"%s\".", strnull(t));
 }
 
-int verb_set_environment(int argc, char *argv[], void *userdata) {
+int verb_set_environment(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         const char *method;
@@ -157,7 +157,7 @@ int verb_set_environment(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-int verb_import_environment(int argc, char *argv[], void *userdata) {
+int verb_import_environment(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         sd_bus *bus;
index 404258aa43cb36890b4b256dfbf38440ed3622bf..659afd53c5148fbc63142353a6525650dfab10d1 100644 (file)
@@ -1,6 +1,8 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_show_environment(int argc, char *argv[], void *userdata);
-int verb_set_environment(int argc, char *argv[], void *userdata);
-int verb_import_environment(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_show_environment(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_set_environment(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_import_environment(int argc, char *argv[], uintptr_t _data, void *userdata);
index e84e3d580f0f6ddc4535514b4ac0efcd8d09ff61..da8bfe3162936e36f60819a68f8f3e8ee2b953a4 100644 (file)
@@ -51,7 +51,7 @@ static int set_property_one(sd_bus *bus, const char *name, char **properties) {
         return 0;
 }
 
-int verb_set_property(int argc, char *argv[], void *userdata) {
+int verb_set_property(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus;
         _cleanup_strv_free_ char **names = NULL;
         int r;
index 0892291d59cd8590e4875dc9119b5af6e5d8e8de..e1dc8dc049c91d289f4bc0d0cfd744a6c6f1a072 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_set_property(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_set_property(int argc, char *argv[], uintptr_t _data, void *userdata);
index c35db87c45a88ff2b14d9d72a6f08c27eea3b5c1..0872f82c2a3f26bc6bce46a54ade0c504346cb73 100644 (file)
@@ -2482,7 +2482,7 @@ static int show_system_status(sd_bus *bus) {
         return 0;
 }
 
-int verb_show(int argc, char *argv[], void *userdata) {
+int verb_show(int argc, char *argv[], uintptr_t _data, void *userdata) {
         bool new_line = false, ellipsized = false;
         SystemctlShowMode show_mode;
         int r, ret = 0;
index 5aeed51e5b4a02cca140de132c74f44eee471816..4ca15bca74528dd0f7c20f5a2de354a996dc47f4 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_show(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_show(int argc, char *argv[], uintptr_t _data, void *userdata);
index 71927846deebc5db92b46af1c954832bef4a0156..d947f1f9e4101feffa049d59e4d1f6d5cadad4be 100644 (file)
@@ -127,7 +127,7 @@ static int set_exit_code(uint8_t code) {
         return 0;
 }
 
-int verb_start_special(int argc, char *argv[], void *userdata) {
+int verb_start_special(int argc, char *argv[], uintptr_t data, void *userdata) {
         bool termination_action; /* An action that terminates the system, can be performed also by signal. */
         enum action a;
         int r;
@@ -198,7 +198,7 @@ int verb_start_special(int argc, char *argv[], void *userdata) {
 
         if (arg_force >= 1 &&
             (termination_action || IN_SET(a, ACTION_KEXEC, ACTION_EXIT)))
-                r = verb_trivial_method(argc, argv, userdata);
+                r = verb_trivial_method(argc, argv, data, userdata);
         else {
                 /* First try logind, to allow authentication with polkit */
                 switch (a) {
@@ -255,7 +255,7 @@ int verb_start_special(int argc, char *argv[], void *userdata) {
                         ;
                 }
 
-                r = verb_start(argc, argv, userdata);
+                r = verb_start(argc, argv, data, userdata);
         }
 
         if (termination_action && arg_force < 2 &&
@@ -265,7 +265,7 @@ int verb_start_special(int argc, char *argv[], void *userdata) {
         return r;
 }
 
-int verb_start_system_special(int argc, char *argv[], void *userdata) {
+int verb_start_system_special(int argc, char *argv[], uintptr_t data, void *userdata) {
         /* Like start_special above, but raises an error when running in user mode */
 
         if (arg_runtime_scope != RUNTIME_SCOPE_SYSTEM)
@@ -273,5 +273,5 @@ int verb_start_system_special(int argc, char *argv[], void *userdata) {
                                        "Bad action for %s mode.",
                                        runtime_scope_cmdline_option_to_string(arg_runtime_scope));
 
-        return verb_start_special(argc, argv, userdata);
+        return verb_start_special(argc, argv, data, userdata);
 }
index 9396321d7064ef4d4d5060b029e8029e6fe207b5..93df5f89b7d943a1046cc38bb0cc4f625e090be7 100644 (file)
@@ -1,5 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_start_special(int argc, char *argv[], void *userdata);
-int verb_start_system_special(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_start_special(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_start_system_special(int argc, char *argv[], uintptr_t _data, void *userdata);
index b3494838368044a205c8649b0057d6d7fb5f19bd..0c8582bdff7104ef5f19929837cca2fcc7e5392c 100644 (file)
@@ -289,7 +289,7 @@ static const char** make_extra_args(const char *extra_args[static 4]) {
         return extra_args;
 }
 
-int verb_start(int argc, char *argv[], void *userdata) {
+int verb_start(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(bus_wait_for_units_freep) BusWaitForUnits *wu = NULL;
         _cleanup_(bus_wait_for_jobs_freep) BusWaitForJobs *w = NULL;
         const char *method, *job_type, *mode, *one_name, *suffix = NULL;
index 28650167731ef27a4ac4b4383e1a5d98a23dec8d..02434a2db6c7604086fe159296c1ade483f2a7b1 100644 (file)
@@ -3,7 +3,7 @@
 
 #include "systemctl.h"
 
-int verb_start(int argc, char *argv[], void *userdata);
+int verb_start(int argc, char *argv[], uintptr_t _data, void *userdata);
 
 struct action_metadata {
         const char *target;
index 62aebe886e611f24db90f014d93cd499eef31a1f..27fccf7f4174838c800642e4b386c01e990b7f62 100644 (file)
@@ -38,7 +38,7 @@ static int same_file_in_root(
         return stat_inode_same(&sta, &stb);
 }
 
-int verb_switch_root(int argc, char *argv[], void *userdata) {
+int verb_switch_root(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_free_ char *cmdline_init = NULL;
         const char *root, *init;
index e9ba12baf799f26a5694c484a6fc65d5319f6aef..46d336430641bc6879352bdb525eb98c6dbdf244 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_switch_root(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_switch_root(int argc, char *argv[], uintptr_t _data, void *userdata);
index 3fa1272c665c2dd2b0555ccfaa85a2d7e443b3ed..1e94357f4acf219f0698d9065495bbf19a29f428 100644 (file)
@@ -12,7 +12,7 @@
 
 /* A generic implementation for cases we just need to invoke a simple method call on the Manager object. */
 
-int verb_trivial_method(int argc, char *argv[], void *userdata) {
+int verb_trivial_method(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         const char *method;
         sd_bus *bus;
index d36b4803d43381b31cff8784671fa84d6e132f00..ed901c14a841b96c08746ed1ae5cec88f57e2f7d 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_trivial_method(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_trivial_method(int argc, char *argv[], uintptr_t _data, void *userdata);
index bf38eb2236b14fd5d448e95b73e547e677e29fed..77ccef8d134ea36e20dc9e0744a1c622413e557d 100644 (file)
@@ -11,7 +11,7 @@
 #include "systemctl-util.h"
 #include "systemctl-whoami.h"
 
-int verb_whoami(int argc, char *argv[], void *userdata) {
+int verb_whoami(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus;
         int r, ret = 0;
 
index abdd13b34fc1eb358de4f48d71030113cca130ca..9bdefdb14a3106a80551a9ac040850eee33e2ce6 100644 (file)
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-int verb_whoami(int argc, char *argv[], void *userdata);
+#include "shared-forward.h"
+
+int verb_whoami(int argc, char *argv[], uintptr_t _data, void *userdata);
index 69848c3fcb7ebdd4d59cfa436453ad643a1d2cc4..57b2125f92c9ed0091673286c8ec33efce655b32 100644 (file)
@@ -1277,7 +1277,7 @@ static int process_image(
         return 0;
 }
 
-static int verb_list(int argc, char **argv, void *userdata) {
+static int verb_list(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(loop_device_unrefp) LoopDevice *loop_device = NULL;
         _cleanup_(umount_and_rmdir_and_freep) char *mounted_dir = NULL;
         _cleanup_(context_freep) Context* context = NULL;
@@ -1345,7 +1345,7 @@ static int verb_list(int argc, char **argv, void *userdata) {
         }
 }
 
-static int verb_features(int argc, char **argv, void *userdata) {
+static int verb_features(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(loop_device_unrefp) LoopDevice *loop_device = NULL;
         _cleanup_(umount_and_rmdir_and_freep) char *mounted_dir = NULL;
         _cleanup_(context_freep) Context* context = NULL;
@@ -1479,7 +1479,7 @@ static int verb_features(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_check_new(int argc, char **argv, void *userdata) {
+static int verb_check_new(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(loop_device_unrefp) LoopDevice *loop_device = NULL;
         _cleanup_(umount_and_rmdir_and_freep) char *mounted_dir = NULL;
         _cleanup_(context_freep) Context* context = NULL;
@@ -1520,7 +1520,7 @@ static int verb_check_new(int argc, char **argv, void *userdata) {
         return EXIT_SUCCESS;
 }
 
-static int verb_vacuum(int argc, char **argv, void *userdata) {
+static int verb_vacuum(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(loop_device_unrefp) LoopDevice *loop_device = NULL;
         _cleanup_(umount_and_rmdir_and_freep) char *mounted_dir = NULL;
         _cleanup_(context_freep) Context* context = NULL;
@@ -1615,7 +1615,7 @@ static int verb_update_impl(int argc, char **argv, UpdateActionFlags action_flag
         return 0;
 }
 
-static int verb_update(int argc, char **argv, void *userdata) {
+static int verb_update(int argc, char *argv[], uintptr_t _data, void *userdata) {
         UpdateActionFlags flags = UPDATE_ACTION_INSTALL;
 
         if (!arg_offline)
@@ -1624,11 +1624,11 @@ static int verb_update(int argc, char **argv, void *userdata) {
         return verb_update_impl(argc, argv, flags);
 }
 
-static int verb_acquire(int argc, char **argv, void *userdata) {
+static int verb_acquire(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return verb_update_impl(argc, argv, UPDATE_ACTION_ACQUIRE);
 }
 
-static int verb_pending_or_reboot(int argc, char **argv, void *userdata) {
+static int verb_pending_or_reboot(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(context_freep) Context* context = NULL;
         _cleanup_free_ char *booted_version = NULL;
         int r;
@@ -1702,7 +1702,7 @@ static int component_name_valid(const char *c) {
         return filename_is_valid(j);
 }
 
-static int verb_components(int argc, char **argv, void *userdata) {
+static int verb_components(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(loop_device_unrefp) LoopDevice *loop_device = NULL;
         _cleanup_(umount_and_rmdir_and_freep) char *mounted_dir = NULL;
         _cleanup_set_free_ Set *names = NULL;
@@ -1792,7 +1792,7 @@ static int verb_components(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_help(int argc, char **argv, void *userdata) {
+static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
 
@@ -1844,8 +1844,11 @@ static int verb_help(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int parse_argv(int argc, char *argv[]) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
+        return help();
+}
 
+static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_VERSION = 0x100,
                 ARG_NO_PAGER,
@@ -1892,7 +1895,7 @@ static int parse_argv(int argc, char *argv[]) {
                 switch (c) {
 
                 case 'h':
-                        return verb_help(0, NULL, NULL);
+                        return help();
 
                 case ARG_VERSION:
                         return version();
index 60523181bcdb136f370fe75211d3f799566e2567..86561cf1c734daedb92cca01fc76d21dbad5df3d 100644 (file)
@@ -641,7 +641,7 @@ static int describe(sd_bus *bus, const char *target_path, const char *version) {
         return table_print_with_pager(table, SD_JSON_FORMAT_OFF, arg_pager_flags, arg_legend);
 }
 
-static int verb_list(int argc, char **argv, void *userdata) {
+static int verb_list(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         _cleanup_free_ char *target_path = NULL, *version = NULL;
         int r;
@@ -752,7 +752,7 @@ static int check_finished(sd_bus_message *reply, void *userdata, sd_bus_error *r
         return 0;
 }
 
-static int verb_check(int argc, char **argv, void *userdata) {
+static int verb_check(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         _cleanup_(table_unrefp) Table *table = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
@@ -1283,7 +1283,7 @@ static int do_update(sd_bus *bus, char **targets) {
         return did_anything ? 1 : 0;
 }
 
-static int verb_update(int argc, char **argv, void *userdata) {
+static int verb_update(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         _cleanup_strv_free_ char **targets = NULL;
         bool did_anything = false;
@@ -1336,7 +1336,7 @@ static int do_vacuum(sd_bus *bus, const char *target, const char *path) {
         return count + disabled > 0 ? 1 : 0;
 }
 
-static int verb_vacuum(int argc, char **argv, void *userdata) {
+static int verb_vacuum(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         _cleanup_strv_free_ char **targets = NULL, **target_paths = NULL;
         size_t n;
@@ -1480,7 +1480,7 @@ static int list_features(sd_bus *bus) {
         return table_print_with_pager(table, SD_JSON_FORMAT_OFF, arg_pager_flags, arg_legend);
 }
 
-static int verb_features(int argc, char **argv, void *userdata) {
+static int verb_features(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         _cleanup_(table_unrefp) Table *table = NULL;
         _cleanup_(feature_done) Feature f = {};
@@ -1529,7 +1529,7 @@ static int verb_features(int argc, char **argv, void *userdata) {
         return table_print_with_pager(table, SD_JSON_FORMAT_OFF, arg_pager_flags, false);
 }
 
-static int verb_enable(int argc, char **argv, void *userdata) {
+static int verb_enable(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         bool did_anything = false, enable;
         char **features;
index a28fc9b55b274012aa7d04721e700d899881c98f..79c5c27dd94f32003c966010638159c00cff7330 100644 (file)
@@ -6,7 +6,7 @@
 #include "tests.h"
 #include "verbs.h"
 
-static int noop_dispatcher(int argc, char *argv[], void *userdata) {
+static int noop_dispatcher(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return 0;
 }
 
index 36852b18332245b3d2ecc3cfcf2c01d87768477f..cec4363affbbbcebc9d6228e0a4a4b95b2c95fd5 100644 (file)
@@ -180,7 +180,7 @@ static int print_status_info(const StatusInfo *i) {
         return 0;
 }
 
-static int verb_show_status(int argc, char **argv, void *userdata) {
+static int verb_show_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         StatusInfo info = {};
         static const struct bus_properties_map map[]  = {
                 { "Timezone",        "s", NULL, offsetof(StatusInfo, timezone)    },
@@ -212,7 +212,7 @@ static int verb_show_status(int argc, char **argv, void *userdata) {
         return print_status_info(&info);
 }
 
-static int verb_show_properties(int argc, char **argv, void *userdata) {
+static int verb_show_properties(int argc, char *argv[], uintptr_t _data, void *userdata) {
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
 
@@ -229,7 +229,7 @@ static int verb_show_properties(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_set_time(int argc, char **argv, void *userdata) {
+static int verb_set_time(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = userdata;
         usec_t t;
@@ -254,7 +254,7 @@ static int verb_set_time(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_set_timezone(int argc, char **argv, void *userdata) {
+static int verb_set_timezone(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = userdata;
         int r;
@@ -268,7 +268,7 @@ static int verb_set_timezone(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_set_local_rtc(int argc, char **argv, void *userdata) {
+static int verb_set_local_rtc(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = userdata;
         int r, b;
@@ -299,7 +299,7 @@ static int verb_set_local_rtc(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_set_ntp(int argc, char **argv, void *userdata) {
+static int verb_set_ntp(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = userdata;
@@ -327,7 +327,7 @@ static int verb_set_ntp(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_list_timezones(int argc, char **argv, void *userdata) {
+static int verb_list_timezones(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = userdata;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
@@ -688,7 +688,7 @@ static int on_properties_changed(sd_bus_message *m, void *userdata, sd_bus_error
         return show_timesync_status_once(sd_bus_message_get_bus(m));
 }
 
-static int verb_show_timesync_status(int argc, char **argv, void *userdata) {
+static int verb_show_timesync_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -792,7 +792,7 @@ static int print_timesync_property(const char *name, const char *expected_value,
         return 0;
 }
 
-static int verb_show_timesync(int argc, char **argv, void *userdata) {
+static int verb_show_timesync(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int r;
@@ -841,7 +841,7 @@ static int parse_ifindex_bus(sd_bus *bus, const char *str) {
         return i;
 }
 
-static int verb_ntp_servers(int argc, char **argv, void *userdata) {
+static int verb_ntp_servers(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *req = NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
@@ -872,7 +872,7 @@ static int verb_ntp_servers(int argc, char **argv, void *userdata) {
         return 0;
 }
 
-static int verb_revert(int argc, char **argv, void *userdata) {
+static int verb_revert(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         sd_bus *bus = ASSERT_PTR(userdata);
         int ifindex, r;
@@ -936,7 +936,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char **argv, void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index a1c9e0c9ede6447c23cb08042702b6b3e18b84cb..3d473d469d5a8e3c8baeaed760b451ffb58d30ad 100644 (file)
@@ -280,11 +280,11 @@ static int query_solutions_for_path(const char *path) {
         return 0;
 }
 
-static int verb_query(int argc, char *argv[], void *userdata) {
+static int verb_query(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return query_solutions_for_path(ASSERT_PTR(argv[1]));
 }
 
-static int verb_apply(int argc, char *argv[], void *userdata) {
+static int verb_apply(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return apply_solution_for_path(
                         ASSERT_PTR(argv[1]),
                         argc > 2 ? ASSERT_PTR(argv[2]) : NULL);
index c1c39aedf36d794debb31dd1ab7783d40c2364e9..d6c488ff3fab4b5dec88b6d6cd87e901703445d5 100644 (file)
@@ -92,7 +92,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1;
 }
 
-int verb_cat_main(int argc, char *argv[], void *userdata) {
+int verb_cat_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         r = parse_argv(argc, argv);
index a401acfde9101a706fd6d1a5a6c83f17f8f3f56e..964f721731ceb21a48b05df9821849757a165c96 100644 (file)
@@ -331,7 +331,7 @@ static int send_control_commands(void) {
         return 0;
 }
 
-int verb_control_main(int argc, char *argv[], void *userdata) {
+int verb_control_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         if (running_in_chroot() > 0) {
index 44c04590afa3ece061d0b7c4549f16100f48fdc3..5810efefd8ce229f64250759ddbbbca2063a99ff 100644 (file)
@@ -78,7 +78,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1;
 }
 
-int verb_hwdb_main(int argc, char *argv[], void *userdata) {
+int verb_hwdb_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         r = parse_argv(argc, argv);
index 558d80e3af2e53f6167eadf43341cb88535dfc07..62d7dce4217de8ea38c65e4f49ab1c622d901211 100644 (file)
@@ -1275,7 +1275,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1;
 }
 
-int verb_info_main(int argc, char *argv[], void *userdata) {
+int verb_info_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         r = parse_argv(argc, argv);
index df78dd9a844cd3cd122e0e982eafa1c73c43103a..483b64973d40160c12c35c5cd58802b0e0dc2f43 100644 (file)
@@ -228,7 +228,7 @@ static int lock_device(
         return TAKE_FD(fd);
 }
 
-int verb_lock_main(int argc, char *argv[], void *userdata) {
+int verb_lock_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_fdset_free_ FDSet *fds = NULL;
         _cleanup_free_ dev_t *devnos = NULL;
         size_t n_devnos = 0;
index c8a2c3ca22f729c3b257b63ddfce7ccf092186d1..b7ec2ba1ef281f7f2822580d15db6ca1fd3aeccd 100644 (file)
@@ -187,7 +187,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1;
 }
 
-int verb_monitor_main(int argc, char *argv[], void *userdata) {
+int verb_monitor_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_device_monitor_unrefp) sd_device_monitor *kernel_monitor = NULL, *udev_monitor = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
         int r;
index 74ac4acbefcf7099d6c9b6387d4686de5b886e77..b71759dc818e6a1fae9afade485dde23c2966ecb 100644 (file)
@@ -184,7 +184,7 @@ static int on_inotify(sd_event_source *s, const struct inotify_event *event, voi
         return 0;
 }
 
-int verb_settle_main(int argc, char *argv[], void *userdata) {
+int verb_settle_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
         int r;
 
index 24ea039120b60422a4ada65f4d53b6f036cd2079..f17df9a7d51a27e1f9790d390cba51159c9ef9d1 100644 (file)
@@ -63,7 +63,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1;
 }
 
-int verb_builtin_main(int argc, char *argv[], void *userdata) {
+int verb_builtin_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(udev_event_unrefp) UdevEvent *event = NULL;
         _cleanup_(sd_device_unrefp) sd_device *dev = NULL;
         UdevBuiltinCommand cmd;
index 98b63aa11c4528d4f37163cf0512b0201a1fa1e4..f3ac39717e946ca8bd94cd74a27f736673d8cfbb 100644 (file)
@@ -129,7 +129,7 @@ static void maybe_insert_empty_line(void) {
         fputs("\n", stderr);
 }
 
-int verb_test_main(int argc, char *argv[], void *userdata) {
+int verb_test_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(udev_rules_freep) UdevRules *rules = NULL;
         _cleanup_(udev_event_unrefp) UdevEvent *event = NULL;
         _cleanup_(sd_device_unrefp) sd_device *dev = NULL;
index b97ecfa0997ebff08c5f74b59580913c27987c2d..afa6a842620848338830b7f0970003226d28267b 100644 (file)
@@ -534,7 +534,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1;
 }
 
-int verb_trigger_main(int argc, char *argv[], void *userdata) {
+int verb_trigger_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
         _cleanup_(sd_device_monitor_unrefp) sd_device_monitor *m = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
index 5d4119399ed20f0a5b58dd6ab9ac0bf19ea291ee..03fed60d7e63afb77d99de07df02f405beca7fba 100644 (file)
@@ -156,7 +156,7 @@ static int verify_rules(UdevRules *rules, ConfFile * const *files, size_t n_file
         return ret;
 }
 
-int verb_verify_main(int argc, char *argv[], void *userdata) {
+int verb_verify_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(udev_rules_freep) UdevRules *rules = NULL;
         int r;
 
index bfc000e217dabc4a39d4cc78525b2caff35fdf97..0e285fc36b247dce2d6c9b32ed994e95f653407b 100644 (file)
@@ -376,7 +376,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1; /* work to do */
 }
 
-int verb_wait_main(int argc, char *argv[], void *userdata) {
+int verb_wait_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_device_monitor_unrefp) sd_device_monitor *udev_monitor = NULL, *kernel_monitor = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
         int r;
index 8ffe068b9d87e947dc23f38c43bb968896c748a3..70ff213cb99992d0a494206f4b859f7ae20fabf2 100644 (file)
@@ -91,11 +91,11 @@ int print_version(void) {
         return 0;
 }
 
-static int verb_version_main(int argc, char *argv[], void *userdata) {
+static int verb_version_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return print_version();
 }
 
-static int verb_help_main(int argc, char *argv[], void *userdata) {
+static int verb_help_main(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index b41d091a3479e561cc06c90e3c0b6e4c826a3297..285a474fba27700315340654e2245a458708a2a7 100644 (file)
@@ -3,17 +3,17 @@
 
 #include "shared-forward.h"
 
-int verb_cat_main(int argc, char *argv[], void *userdata);
-int verb_info_main(int argc, char *argv[], void *userdata);
-int verb_trigger_main(int argc, char *argv[], void *userdata);
-int verb_settle_main(int argc, char *argv[], void *userdata);
-int verb_control_main(int argc, char *argv[], void *userdata);
-int verb_monitor_main(int argc, char *argv[], void *userdata);
-int verb_hwdb_main(int argc, char *argv[], void *userdata);
-int verb_test_main(int argc, char *argv[], void *userdata);
-int verb_builtin_main(int argc, char *argv[], void *userdata);
-int verb_verify_main(int argc, char *argv[], void *userdata);
-int verb_wait_main(int argc, char *argv[], void *userdata);
-int verb_lock_main(int argc, char *argv[], void *userdata);
+int verb_cat_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_info_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_trigger_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_settle_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_control_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_monitor_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_hwdb_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_test_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_builtin_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_verify_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_wait_main(int argc, char *argv[], uintptr_t _data, void *userdata);
+int verb_lock_main(int argc, char *argv[], uintptr_t _data, void *userdata);
 
 int print_version(void);
index e16520e9849f82a3d64a1f17516919912a605db5..875ae9a09bcadba352df2210d84f89e0b4104e0d 100644 (file)
@@ -51,7 +51,7 @@ static int get_startup_monotonic_time(Context *c, usec_t *ret) {
         return 0;
 }
 
-static int verb_on_reboot(int argc, char *argv[], void *userdata) {
+static int verb_on_reboot(int argc, char *argv[], uintptr_t _data, void *userdata) {
         Context *c = ASSERT_PTR(userdata);
         usec_t t = 0, boottime;
         int r, q = 0;
@@ -80,7 +80,7 @@ static int verb_on_reboot(int argc, char *argv[], void *userdata) {
         return q;
 }
 
-static int verb_on_shutdown(int argc, char *argv[], void *userdata) {
+static int verb_on_shutdown(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r, q = 0;
 
         /* We started shut-down, so let's write the utmp record and send the audit msg. */
index c1e19ee0aa33ee9a8b03650e9efa366f7877f68e..b0d7a06941e141199204201a36946c5ac59cf4fa 100644 (file)
@@ -407,7 +407,7 @@ static int table_add_uid_map(
         return n_added;
 }
 
-static int verb_display_user(int argc, char *argv[], void *userdata) {
+static int verb_display_user(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *table = NULL;
         bool draw_separator = false;
         int ret = 0, r;
@@ -750,7 +750,7 @@ static int add_unavailable_gid(Table *table, uid_t start, uid_t end) {
         return 2;
 }
 
-static int verb_display_group(int argc, char *argv[], void *userdata) {
+static int verb_display_group(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *table = NULL;
         bool draw_separator = false;
         int ret = 0, r;
@@ -951,7 +951,7 @@ static int show_membership(const char *user, const char *group, Table *table) {
         return 0;
 }
 
-static int verb_display_memberships(int argc, char *argv[], void *userdata) {
+static int verb_display_memberships(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *table = NULL;
         int ret = 0, r;
 
@@ -1047,7 +1047,7 @@ static int verb_display_memberships(int argc, char *argv[], void *userdata) {
         return ret;
 }
 
-static int verb_display_services(int argc, char *argv[], void *userdata) {
+static int verb_display_services(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(table_unrefp) Table *t = NULL;
         _cleanup_closedir_ DIR *d = NULL;
         int r;
@@ -1114,7 +1114,7 @@ static int verb_display_services(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_ssh_authorized_keys(int argc, char *argv[], void *userdata) {
+static int verb_ssh_authorized_keys(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(user_record_unrefp) UserRecord *ur = NULL;
         char **chain_invocation;
         int r;
@@ -1497,7 +1497,7 @@ static int load_credential_one(
         return 0;
 }
 
-static int verb_load_credentials(int argc, char *argv[], void *userdata) {
+static int verb_load_credentials(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         _cleanup_close_ int credential_dir_fd = open_credentials_dir();
@@ -1590,7 +1590,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
index 233423935f763aad4608edd2a74ffae5331e5a8e..5048f433b17533a9c64b4494b453107dc15651bd 100644 (file)
@@ -123,7 +123,7 @@ static int help(void) {
         return 0;
 }
 
-static int verb_help(int argc, char **argv, void *userdata) {
+static int verb_help(int argc, char *argv[], uintptr_t _data, void *userdata) {
         return help();
 }
 
@@ -366,7 +366,7 @@ static void get_info_data_done(GetInfoData *d) {
         d->interfaces = strv_free(d->interfaces);
 }
 
-static int verb_info(int argc, char *argv[], void *userdata) {
+static int verb_info(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_varlink_unrefp) sd_varlink *vl = NULL;
         const char *url;
         int r;
@@ -463,7 +463,7 @@ typedef struct GetInterfaceDescriptionData {
         const char *description;
 } GetInterfaceDescriptionData;
 
-static int verb_introspect(int argc, char *argv[], void *userdata) {
+static int verb_introspect(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_varlink_unrefp) sd_varlink *vl = NULL;
         _cleanup_strv_free_ char **auto_interfaces = NULL;
         char **interfaces;
@@ -634,7 +634,7 @@ static int reply_callback(
         return r;
 }
 
-static int verb_call(int argc, char *argv[], void *userdata) {
+static int verb_call(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *jp = NULL;
         _cleanup_(sd_varlink_unrefp) sd_varlink *vl = NULL;
         const char *url, *method, *parameter, *source;
@@ -946,7 +946,7 @@ static int verb_call(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_validate_idl(int argc, char *argv[], void *userdata) {
+static int verb_validate_idl(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(sd_varlink_interface_freep) sd_varlink_interface *vi = NULL;
         _cleanup_free_ char *text = NULL;
         const char *fname;
@@ -995,7 +995,7 @@ static int verb_validate_idl(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_list_registry(int argc, char *argv[], void *userdata) {
+static int verb_list_registry(int argc, char *argv[], uintptr_t _data, void *userdata) {
         int r;
 
         assert(argc <= 1);
index e2135562c1f126dfb70a85df5b7ecac6d000a72e..b2f6d3b8af726036da435499efc4b39a29831b7d 100644 (file)
@@ -316,7 +316,7 @@ static int parse_options(const char *options) {
         return r;
 }
 
-static int verb_attach(int argc, char *argv[], void *userdata) {
+static int verb_attach(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(crypt_freep) struct crypt_device *cd = NULL;
         _cleanup_free_ void *rh = NULL;
         struct crypt_params_verity p = {};
@@ -450,7 +450,7 @@ static int verb_attach(int argc, char *argv[], void *userdata) {
         return 0;
 }
 
-static int verb_detach(int argc, char *argv[], void *userdata) {
+static int verb_detach(int argc, char *argv[], uintptr_t _data, void *userdata) {
         _cleanup_(crypt_freep) struct crypt_device *cd = NULL;
         int r;