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;
/* 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);
#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;
/* 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);
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;
/* 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);
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;
/* 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);
#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);
/* 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);
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;
/* 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);
#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;
/* 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);
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);
/* 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);
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;
/* 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);
#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;
/* 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);
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;
/* 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);
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;
/* 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);
#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;
/* 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);
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;
/* 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);
}
}
-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
/* 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);
#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;
/* 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);
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++) {
/* 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);
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);
/* 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);
#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;
/* 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);
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;
/* 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);
}
#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;
/* 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);
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;
/* 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);
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;
/* 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);
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;
/* 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);
#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;
/* 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);
#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;
/* 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);
#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;
/* 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);
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);
}
#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
/* 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);
#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;
/* 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);
#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;
/* 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);
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);
/* 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);
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);
/* 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);
#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,
/* 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);
#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;
/* 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);
#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;
/* 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);
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;
/* 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);
"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);
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;
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,
break;
case 'h':
- return help(0, NULL, NULL);
+ return help();
case ARG_VERSION:
return version();
_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 },
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;
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;
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;
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,
switch (c) {
case 'h':
- help(0, NULL, NULL);
- return 0;
+ return help();
case ARG_VERSION:
return version();
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;
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;
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 },
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;
#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);
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" */
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;
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;
#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);
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);
/* 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);
#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]);
#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);
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]);
/* 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);
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;
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;
#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);
#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;
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;
#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);
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;
#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);
return _arg_graceful;
}
-static int help(int argc, char *argv[], void *userdata) {
+static int help(void) {
_cleanup_free_ char *link = NULL;
int r;
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,
switch (c) {
case 'h':
- help(0, NULL, NULL);
- return 0;
+ return help();
case ARG_VERSION:
return version();
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 },
(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;
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;
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,
}
}
-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 ")";
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;
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;
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;
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;
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;
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;
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();
}
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();
}
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();
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;
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;
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,
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;
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;
UINT64_MAX, SIZE_MAX,
flags,
NULL,
- (char**) &data, &size);
+ (char**) &content, &size);
if (r == -ENOENT) /* Not found */
continue;
if (r >= 0) /* Found */
*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
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;
}
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;
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;
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;
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;
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 {
switch (c) {
case 'h':
- return verb_help(0, NULL, NULL);
+ return help();
case ARG_VERSION:
return version();
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;
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;
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,
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();
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();
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();
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;
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;
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;
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;
}
}
-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;
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) {
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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
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();
}
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;
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;
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;
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;
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;
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;
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]);
}
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 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;
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;
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;
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;
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;
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;
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();
}
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;
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;
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();
}
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;
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();
}
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;
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;
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();
}
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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();
}
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;
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;
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];
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();
}
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;
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;
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;
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;
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);
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;
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;
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;
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,
switch (c) {
case 'h':
- help(0, NULL, NULL);
- return 0;
+ return help();
case ARG_VERSION:
return version();
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;
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;
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;
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;
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. */
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) },
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);
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;
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);
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;
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;
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 {
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();
}
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;
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) },
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;
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;
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;
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;
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;
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;
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];
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;
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;
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;
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;
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;
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;
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();
}
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;
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;
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);
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);
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;
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),
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;
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;
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;
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;
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;
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;
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)
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;
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;
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);
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;
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);
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;
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;
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;
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_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;
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;
switch (c) {
case 'h':
- help(0, NULL, NULL);
- return 0;
+ return help();
case ARG_VERSION:
return version();
}
}
-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;
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);
}
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;
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 },
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;
/* 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);
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,
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;
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;
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;
/* 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);
#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;
/* 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);
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;
#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);
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");
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;
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 {
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;
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;
/* 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);
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;
/* 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);
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;
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);
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;
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 {
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;
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;
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);
}
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;
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 */
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);
}
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;
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;
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;
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);
}
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;
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;
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;
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];
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;
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;
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);
}
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,
};
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);
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();
}
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;
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;
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,
switch (c) {
case 'h':
- help(0, NULL, NULL);
- return 0;
+ return help();
case ARG_VERSION:
return version();
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 },
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;
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;
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;
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;
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;
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;
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;
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();
}
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;
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");
return 0;
}
-static int verb_help(int argc, char *argv[], void *userdata) {
+static int help(void) {
_cleanup_free_ char *link = NULL;
int r;
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,
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();
"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;
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;
}
#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;
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;
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;
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;
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;
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;
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));
}
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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();
}
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;
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,
switch (c) {
case 'h':
- help(0, NULL, NULL);
- return 0;
+ return help();
case ARG_VERSION:
return version();
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;
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;
}
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);
}
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);
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);
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;
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;
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);
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;
return 0;
}
-static int verb_help(int argc, char **argv, void *userdata) {
+static int help(void) {
_cleanup_free_ char *link = NULL;
int r;
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,
switch (c) {
case 'h':
- return verb_help(argc, argv, NULL);
+ return help();
case ARG_VERSION:
return version();
#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];
/* 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);
#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)
/* 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);
#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;
/* 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);
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();
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;
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);
#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;
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,
/* 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);
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;
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;
/* 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);
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,
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,
/* 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);
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;
/* 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);
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;
/* 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);
#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;
/* 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);
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;
/* 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);
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;
/* 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);
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;
#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;
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;
/* 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);
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;
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;
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;
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;
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;
#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);
" 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;
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;
/* 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);
#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;
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;
/* 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);
#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"))
/* 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);
#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)
/* 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);
#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;
/* 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);
}
}
-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;
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;
/* 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);
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;
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;
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;
/* 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);
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;
/* 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);
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;
/* 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);
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;
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) {
;
}
- r = verb_start(argc, argv, userdata);
+ r = verb_start(argc, argv, data, userdata);
}
if (termination_action && arg_force < 2 &&
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)
"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);
}
/* 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);
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;
#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;
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;
/* 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);
/* 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;
/* 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);
#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;
/* 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);
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;
}
}
-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;
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;
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;
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)
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;
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;
return 0;
}
-static int verb_help(int argc, char **argv, void *userdata) {
+static int help(void) {
_cleanup_free_ char *link = NULL;
int r;
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,
switch (c) {
case 'h':
- return verb_help(0, NULL, NULL);
+ return help();
case ARG_VERSION:
return 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;
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;
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;
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;
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 = {};
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;
#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;
}
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) },
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;
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;
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;
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;
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;
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;
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;
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;
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);
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;
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();
}
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);
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);
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) {
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);
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);
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;
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;
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;
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;
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;
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;
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;
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;
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();
}
#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);
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;
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. */
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;
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;
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;
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;
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;
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();
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();
}
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();
}
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;
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;
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;
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;
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);
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 = {};
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;