[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 01/12] util/log: convert debug_regions to GList
From: |
Sven Schnelle |
Subject: |
[PATCH v3 01/12] util/log: convert debug_regions to GList |
Date: |
Fri, 1 Mar 2024 18:45:58 +0100 |
In preparation of making the parsing part of qemu_set_dfilter_ranges()
available to other users, convert it to return a GList, so the result
can be used with other functions taking a GList of struct Range.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
---
util/log.c | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/util/log.c b/util/log.c
index d36c98da0b..779c0689a9 100644
--- a/util/log.c
+++ b/util/log.c
@@ -46,7 +46,7 @@ static __thread Notifier qemu_log_thread_cleanup_notifier;
int qemu_loglevel;
static bool log_per_thread;
-static GArray *debug_regions;
+static GList *debug_regions;
/* Returns true if qemu_log() will really write somewhere. */
bool qemu_log_enabled(void)
@@ -368,38 +368,36 @@ bool qemu_set_log_filename_flags(const char *name, int
flags, Error **errp)
*/
bool qemu_log_in_addr_range(uint64_t addr)
{
- if (debug_regions) {
- int i = 0;
- for (i = 0; i < debug_regions->len; i++) {
- Range *range = &g_array_index(debug_regions, Range, i);
- if (range_contains(range, addr)) {
- return true;
- }
- }
- return false;
- } else {
+ GList *p;
+
+ if (!debug_regions) {
return true;
}
-}
+ for (p = g_list_first(debug_regions); p; p = g_list_next(p)) {
+ if (range_contains(p->data, addr)) {
+ return true;
+ }
+ }
+ return false;
+}
void qemu_set_dfilter_ranges(const char *filter_spec, Error **errp)
{
gchar **ranges = g_strsplit(filter_spec, ",", 0);
+ struct Range *range = NULL;
int i;
if (debug_regions) {
- g_array_unref(debug_regions);
+ g_list_free_full(debug_regions, g_free);
debug_regions = NULL;
}
- debug_regions = g_array_sized_new(FALSE, FALSE,
- sizeof(Range), g_strv_length(ranges));
for (i = 0; ranges[i]; i++) {
const char *r = ranges[i];
const char *range_op, *r2, *e;
uint64_t r1val, r2val, lob, upb;
- struct Range range;
+ range = g_new0(struct Range, 1);
range_op = strstr(r, "-");
r2 = range_op ? range_op + 1 : NULL;
@@ -448,10 +446,12 @@ void qemu_set_dfilter_ranges(const char *filter_spec,
Error **errp)
error_setg(errp, "Invalid range");
goto out;
}
- range_set_bounds(&range, lob, upb);
- g_array_append_val(debug_regions, range);
+ range_set_bounds(range, lob, upb);
+ debug_regions = g_list_append(debug_regions, range);
+ range = NULL;
}
out:
+ g_free(range);
g_strfreev(ranges);
}
--
2.43.2
[PATCH v3 06/12] util/range: split up range_list_from_string(), Sven Schnelle, 2024/03/01
[PATCH v3 05/12] util/range: use append_new_range() in range_list_from_string(), Sven Schnelle, 2024/03/01
[PATCH v3 02/12] util/log: make qemu_set_dfilter_ranges() take a GList, Sven Schnelle, 2024/03/01
[PATCH v3 03/12] util/range: move range_list_from_string() to range.c, Sven Schnelle, 2024/03/01