[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/4] linux-user: Tell handler_arg_* which context th
From: |
Thomas Schwinge |
Subject: |
[Qemu-devel] [PATCH 3/4] linux-user: Tell handler_arg_* which context they're invoked from. |
Date: |
Wed, 29 May 2013 15:50:33 +0200 |
Signed-off-by: Thomas Schwinge <address@hidden>
---
linux-user/main.c | 47 ++++++++++++++++++++++++++---------------------
1 file changed, 26 insertions(+), 21 deletions(-)
diff --git linux-user/main.c linux-user/main.c
index a0ea161..b7d49f4 100644
--- linux-user/main.c
+++ linux-user/main.c
@@ -3180,12 +3180,17 @@ void init_task_state(TaskState *ts)
ts->sigqueue_table[i].next = NULL;
}
-static void handle_arg_help(const char *arg)
+typedef enum {
+ ARG_ORIGIN_ENV,
+ ARG_ORIGIN_CMDLINE
+} arg_origin;
+
+static void handle_arg_help(arg_origin whence, const char *arg)
{
usage();
}
-static void handle_arg_log(const char *arg)
+static void handle_arg_log(arg_origin whence, const char *arg)
{
int mask;
@@ -3197,31 +3202,31 @@ static void handle_arg_log(const char *arg)
qemu_set_log(mask);
}
-static void handle_arg_log_filename(const char *arg)
+static void handle_arg_log_filename(arg_origin whence, const char *arg)
{
qemu_set_log_filename(arg);
}
-static void handle_arg_set_env(const char *arg)
+static void handle_arg_set_env(arg_origin whence, const char *arg)
{
if (envlist_parse_set(envlist, arg) != 0) {
usage();
}
}
-static void handle_arg_unset_env(const char *arg)
+static void handle_arg_unset_env(arg_origin whence, const char *arg)
{
if (envlist_parse_unset(envlist, arg) != 0) {
usage();
}
}
-static void handle_arg_argv0(const char *arg)
+static void handle_arg_argv0(arg_origin whence, const char *arg)
{
argv0 = strdup(arg);
}
-static void handle_arg_stack_size(const char *arg)
+static void handle_arg_stack_size(arg_origin whence, const char *arg)
{
char *p;
guest_stack_size = strtoul(arg, &p, 0);
@@ -3236,12 +3241,12 @@ static void handle_arg_stack_size(const char *arg)
}
}
-static void handle_arg_ld_prefix(const char *arg)
+static void handle_arg_ld_prefix(arg_origin whence, const char *arg)
{
interp_prefix = strdup(arg);
}
-static void handle_arg_pagesize(const char *arg)
+static void handle_arg_pagesize(arg_origin whence, const char *arg)
{
qemu_host_page_size = atoi(arg);
if (qemu_host_page_size == 0 ||
@@ -3251,17 +3256,17 @@ static void handle_arg_pagesize(const char *arg)
}
}
-static void handle_arg_gdb(const char *arg)
+static void handle_arg_gdb(arg_origin whence, const char *arg)
{
gdbstub_port = atoi(arg);
}
-static void handle_arg_uname(const char *arg)
+static void handle_arg_uname(arg_origin whence, const char *arg)
{
qemu_uname_release = strdup(arg);
}
-static void handle_arg_cpu(const char *arg)
+static void handle_arg_cpu(arg_origin whence, const char *arg)
{
cpu_model = strdup(arg);
if (cpu_model == NULL || is_help_option(cpu_model)) {
@@ -3274,13 +3279,13 @@ static void handle_arg_cpu(const char *arg)
}
#if defined(CONFIG_USE_GUEST_BASE)
-static void handle_arg_guest_base(const char *arg)
+static void handle_arg_guest_base(arg_origin whence, const char *arg)
{
guest_base = strtol(arg, NULL, 0);
have_guest_base = 1;
}
-static void handle_arg_reserved_va(const char *arg)
+static void handle_arg_reserved_va(arg_origin whence, const char *arg)
{
char *p;
int shift = 0;
@@ -3317,17 +3322,17 @@ static void handle_arg_reserved_va(const char *arg)
}
#endif
-static void handle_arg_singlestep(const char *arg)
+static void handle_arg_singlestep(arg_origin whence, const char *arg)
{
singlestep = 1;
}
-static void handle_arg_strace(const char *arg)
+static void handle_arg_strace(arg_origin whence, const char *arg)
{
do_strace = 1;
}
-static void handle_arg_version(const char *arg)
+static void handle_arg_version(arg_origin whence, const char *arg)
{
printf("qemu-" TARGET_ARCH " version " QEMU_VERSION QEMU_PKGVERSION
", Copyright (c) 2003-2008 Fabrice Bellard\n");
@@ -3338,7 +3343,7 @@ struct qemu_argument {
const char *argv;
const char *env;
bool has_arg;
- void (*handle_opt)(const char *arg);
+ void (*handle_opt)(arg_origin whence, const char *arg);
const char *example;
const char *help;
};
@@ -3467,7 +3472,7 @@ static int parse_args(int argc, char **argv)
r = getenv(arginfo->env);
if (r != NULL) {
- arginfo->handle_opt(r);
+ arginfo->handle_opt(ARG_ORIGIN_ENV, r);
}
}
@@ -3492,10 +3497,10 @@ static int parse_args(int argc, char **argv)
if (optind >= argc) {
usage();
}
- arginfo->handle_opt(argv[optind]);
+ arginfo->handle_opt(ARG_ORIGIN_CMDLINE, argv[optind]);
optind++;
} else {
- arginfo->handle_opt(NULL);
+ arginfo->handle_opt(ARG_ORIGIN_CMDLINE, NULL);
}
break;
}
--
1.7.10.4