diff mbox series

qemu-config: extract same logic in *_add_opts() to fill_config_groups()

Message ID 20220902142028.1469716-1-lei4.wang@intel.com (mailing list archive)
State New, archived
Headers show
Series qemu-config: extract same logic in *_add_opts() to fill_config_groups() | expand

Commit Message

Lei Wang Sept. 2, 2022, 2:20 p.m. UTC
QEMU use qemu_add_opts() and qemu_add_drive_opts() to add config options
when initialization. Extract the same logic in both functions to a
seperate function fill_config_groups() to reduce code redundency.

Signed-off-by: Wang, Lei <lei4.wang@intel.com>
---
 util/qemu-config.c | 39 ++++++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 19 deletions(-)

Comments

Markus Armbruster Sept. 2, 2022, 7:57 a.m. UTC | #1
Cc: Gerd & Kevin, because they were involved with the code that gets
refactored here, and no good deed shall go unpunished.

"Wang, Lei" <lei4.wang@intel.com> writes:

> QEMU use qemu_add_opts() and qemu_add_drive_opts() to add config options
> when initialization. Extract the same logic in both functions to a
> seperate function fill_config_groups() to reduce code redundency.
>
> Signed-off-by: Wang, Lei <lei4.wang@intel.com>
> ---
>  util/qemu-config.c | 39 ++++++++++++++++++++-------------------
>  1 file changed, 20 insertions(+), 19 deletions(-)
>
> diff --git a/util/qemu-config.c b/util/qemu-config.c
> index 433488aa56..3a1c85223a 100644
> --- a/util/qemu-config.c
> +++ b/util/qemu-config.c
> @@ -282,36 +282,37 @@ QemuOptsList *qemu_find_opts_err(const char *group, Error **errp)
>      return find_list(vm_config_groups, group, errp);
>  }
>  
> -void qemu_add_drive_opts(QemuOptsList *list)
> +static int fill_config_groups(QemuOptsList *groups[], int entries,
> +                              QemuOptsList *list)
>  {
> -    int entries, i;
> +    int i;
>  
> -    entries = ARRAY_SIZE(drive_config_groups);
>      entries--; /* keep list NULL terminated */
>      for (i = 0; i < entries; i++) {
> -        if (drive_config_groups[i] == NULL) {
> -            drive_config_groups[i] = list;
> -            return;
> +        if (groups[i] == NULL) {
> +            groups[i] = list;
> +            return 0;
>          }
>      }
> -    fprintf(stderr, "ran out of space in drive_config_groups");
> -    abort();
> +    return -1;
>  }
>  
> -void qemu_add_opts(QemuOptsList *list)
> +void qemu_add_drive_opts(QemuOptsList *list)
>  {
> -    int entries, i;
> +    if (fill_config_groups(drive_config_groups, ARRAY_SIZE(drive_config_groups),
> +                           list) < 0) {
> +        fprintf(stderr, "ran out of space in drive_config_groups");
> +        abort();
> +    }
> +}
>  
> -    entries = ARRAY_SIZE(vm_config_groups);
> -    entries--; /* keep list NULL terminated */
> -    for (i = 0; i < entries; i++) {
> -        if (vm_config_groups[i] == NULL) {
> -            vm_config_groups[i] = list;
> -            return;
> -        }
> +void qemu_add_opts(QemuOptsList *list)
> +{
> +    if (fill_config_groups(vm_config_groups, ARRAY_SIZE(vm_config_groups),
> +                           list) < 0) {
> +        fprintf(stderr, "ran out of space in vm_config_groups");
> +        abort();
>      }
> -    fprintf(stderr, "ran out of space in vm_config_groups");
> -    abort();
>  }
>  
>  /* Returns number of config groups on success, -errno on error */
Lei Wang Oct. 17, 2022, 2:15 a.m. UTC | #2
Kindly ping for any comments.

BR,
Lei

On 9/2/2022 3:57 PM, Markus Armbruster wrote:
> Cc: Gerd & Kevin, because they were involved with the code that gets
> refactored here, and no good deed shall go unpunished.
> 
> "Wang, Lei" <lei4.wang@intel.com> writes:
> 
>> QEMU use qemu_add_opts() and qemu_add_drive_opts() to add config options
>> when initialization. Extract the same logic in both functions to a
>> seperate function fill_config_groups() to reduce code redundency.
>>
>> Signed-off-by: Wang, Lei <lei4.wang@intel.com>
>> ---
>>  util/qemu-config.c | 39 ++++++++++++++++++++-------------------
>>  1 file changed, 20 insertions(+), 19 deletions(-)
>>
>> diff --git a/util/qemu-config.c b/util/qemu-config.c
>> index 433488aa56..3a1c85223a 100644
>> --- a/util/qemu-config.c
>> +++ b/util/qemu-config.c
>> @@ -282,36 +282,37 @@ QemuOptsList *qemu_find_opts_err(const char *group, Error **errp)
>>      return find_list(vm_config_groups, group, errp);
>>  }
>>  
>> -void qemu_add_drive_opts(QemuOptsList *list)
>> +static int fill_config_groups(QemuOptsList *groups[], int entries,
>> +                              QemuOptsList *list)
>>  {
>> -    int entries, i;
>> +    int i;
>>  
>> -    entries = ARRAY_SIZE(drive_config_groups);
>>      entries--; /* keep list NULL terminated */
>>      for (i = 0; i < entries; i++) {
>> -        if (drive_config_groups[i] == NULL) {
>> -            drive_config_groups[i] = list;
>> -            return;
>> +        if (groups[i] == NULL) {
>> +            groups[i] = list;
>> +            return 0;
>>          }
>>      }
>> -    fprintf(stderr, "ran out of space in drive_config_groups");
>> -    abort();
>> +    return -1;
>>  }
>>  
>> -void qemu_add_opts(QemuOptsList *list)
>> +void qemu_add_drive_opts(QemuOptsList *list)
>>  {
>> -    int entries, i;
>> +    if (fill_config_groups(drive_config_groups, ARRAY_SIZE(drive_config_groups),
>> +                           list) < 0) {
>> +        fprintf(stderr, "ran out of space in drive_config_groups");
>> +        abort();
>> +    }
>> +}
>>  
>> -    entries = ARRAY_SIZE(vm_config_groups);
>> -    entries--; /* keep list NULL terminated */
>> -    for (i = 0; i < entries; i++) {
>> -        if (vm_config_groups[i] == NULL) {
>> -            vm_config_groups[i] = list;
>> -            return;
>> -        }
>> +void qemu_add_opts(QemuOptsList *list)
>> +{
>> +    if (fill_config_groups(vm_config_groups, ARRAY_SIZE(vm_config_groups),
>> +                           list) < 0) {
>> +        fprintf(stderr, "ran out of space in vm_config_groups");
>> +        abort();
>>      }
>> -    fprintf(stderr, "ran out of space in vm_config_groups");
>> -    abort();
>>  }
>>  
>>  /* Returns number of config groups on success, -errno on error */
>
diff mbox series

Patch

diff --git a/util/qemu-config.c b/util/qemu-config.c
index 433488aa56..3a1c85223a 100644
--- a/util/qemu-config.c
+++ b/util/qemu-config.c
@@ -282,36 +282,37 @@  QemuOptsList *qemu_find_opts_err(const char *group, Error **errp)
     return find_list(vm_config_groups, group, errp);
 }
 
-void qemu_add_drive_opts(QemuOptsList *list)
+static int fill_config_groups(QemuOptsList *groups[], int entries,
+                              QemuOptsList *list)
 {
-    int entries, i;
+    int i;
 
-    entries = ARRAY_SIZE(drive_config_groups);
     entries--; /* keep list NULL terminated */
     for (i = 0; i < entries; i++) {
-        if (drive_config_groups[i] == NULL) {
-            drive_config_groups[i] = list;
-            return;
+        if (groups[i] == NULL) {
+            groups[i] = list;
+            return 0;
         }
     }
-    fprintf(stderr, "ran out of space in drive_config_groups");
-    abort();
+    return -1;
 }
 
-void qemu_add_opts(QemuOptsList *list)
+void qemu_add_drive_opts(QemuOptsList *list)
 {
-    int entries, i;
+    if (fill_config_groups(drive_config_groups, ARRAY_SIZE(drive_config_groups),
+                           list) < 0) {
+        fprintf(stderr, "ran out of space in drive_config_groups");
+        abort();
+    }
+}
 
-    entries = ARRAY_SIZE(vm_config_groups);
-    entries--; /* keep list NULL terminated */
-    for (i = 0; i < entries; i++) {
-        if (vm_config_groups[i] == NULL) {
-            vm_config_groups[i] = list;
-            return;
-        }
+void qemu_add_opts(QemuOptsList *list)
+{
+    if (fill_config_groups(vm_config_groups, ARRAY_SIZE(vm_config_groups),
+                           list) < 0) {
+        fprintf(stderr, "ran out of space in vm_config_groups");
+        abort();
     }
-    fprintf(stderr, "ran out of space in vm_config_groups");
-    abort();
 }
 
 /* Returns number of config groups on success, -errno on error */