9ae3a8
From 5902165e0f08a265b0bb422f13e161bd4de37eb3 Mon Sep 17 00:00:00 2001
9ae3a8
From: Max Reitz <mreitz@redhat.com>
9ae3a8
Date: Tue, 7 Jan 2014 21:57:06 +0100
9ae3a8
Subject: [PATCH 01/14] option: Add assigned flag to QEMUOptionParameter
9ae3a8
9ae3a8
RH-Author: Max Reitz <mreitz@redhat.com>
9ae3a8
Message-id: <1389131839-12920-2-git-send-email-mreitz@redhat.com>
9ae3a8
Patchwork-id: 56537
9ae3a8
O-Subject: [RHEL-7.0 qemu-kvm PATCH v2 01/14] option: Add assigned flag to QEMUOptionParameter
9ae3a8
Bugzilla: 1033490
9ae3a8
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
9ae3a8
RH-Acked-by: Fam Zheng <famz@redhat.com>
9ae3a8
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
9ae3a8
9ae3a8
BZ: 1033490
9ae3a8
9ae3a8
Adds an "assigned" flag to QEMUOptionParameter which is cleared at the
9ae3a8
beginning of parse_option_parameters and set on (successful)
9ae3a8
set_option_parameter and set_option_parameter_int.
9ae3a8
9ae3a8
Signed-off-by: Max Reitz <mreitz@redhat.com>
9ae3a8
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
9ae3a8
(cherry picked from commit d4ca092a423f1f853a99357bab01a168bb57d625)
9ae3a8
9ae3a8
Signed-off-by: Max Reitz <mreitz@redhat.com>
9ae3a8
---
9ae3a8
 include/qemu/option.h | 1 +
9ae3a8
 util/qemu-option.c    | 9 +++++++++
9ae3a8
 2 files changed, 10 insertions(+)
9ae3a8
9ae3a8
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
9ae3a8
---
9ae3a8
 include/qemu/option.h |    1 +
9ae3a8
 util/qemu-option.c    |    9 +++++++++
9ae3a8
 2 files changed, 10 insertions(+), 0 deletions(-)
9ae3a8
9ae3a8
diff --git a/include/qemu/option.h b/include/qemu/option.h
9ae3a8
index 96f70b6..5c0c6dd 100644
9ae3a8
--- a/include/qemu/option.h
9ae3a8
+++ b/include/qemu/option.h
9ae3a8
@@ -46,6 +46,7 @@ typedef struct QEMUOptionParameter {
9ae3a8
         char* s;
9ae3a8
     } value;
9ae3a8
     const char *help;
9ae3a8
+    bool assigned;
9ae3a8
 } QEMUOptionParameter;
9ae3a8
 
9ae3a8
 
9ae3a8
diff --git a/util/qemu-option.c b/util/qemu-option.c
9ae3a8
index 1cefbfe..2445406 100644
9ae3a8
--- a/util/qemu-option.c
9ae3a8
+++ b/util/qemu-option.c
9ae3a8
@@ -275,6 +275,8 @@ int set_option_parameter(QEMUOptionParameter *list, const char *name,
9ae3a8
         return -1;
9ae3a8
     }
9ae3a8
 
9ae3a8
+    list->assigned = true;
9ae3a8
+
9ae3a8
     return 0;
9ae3a8
 }
9ae3a8
 
9ae3a8
@@ -306,6 +308,8 @@ int set_option_parameter_int(QEMUOptionParameter *list, const char *name,
9ae3a8
         return -1;
9ae3a8
     }
9ae3a8
 
9ae3a8
+    list->assigned = true;
9ae3a8
+
9ae3a8
     return 0;
9ae3a8
 }
9ae3a8
 
9ae3a8
@@ -397,6 +401,7 @@ QEMUOptionParameter *parse_option_parameters(const char *param,
9ae3a8
     char value[256];
9ae3a8
     char *param_delim, *value_delim;
9ae3a8
     char next_delim;
9ae3a8
+    int i;
9ae3a8
 
9ae3a8
     if (list == NULL) {
9ae3a8
         return NULL;
9ae3a8
@@ -406,6 +411,10 @@ QEMUOptionParameter *parse_option_parameters(const char *param,
9ae3a8
         dest = allocated = append_option_parameters(NULL, list);
9ae3a8
     }
9ae3a8
 
9ae3a8
+    for (i = 0; dest[i].name; i++) {
9ae3a8
+        dest[i].assigned = false;
9ae3a8
+    }
9ae3a8
+
9ae3a8
     while (*param) {
9ae3a8
 
9ae3a8
         // Find parameter name and value in the string
9ae3a8
-- 
9ae3a8
1.7.1
9ae3a8