Add a small inline function to match an address against a list of ranges. Signed-off-by: Sven Schnelle <sv...@stackframe.org> --- include/qemu/range.h | 12 ++++++++++++ util/log.c | 10 +--------- 2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/include/qemu/range.h b/include/qemu/range.h index 4ff9799d89..7ef9b3d5fb 100644 --- a/include/qemu/range.h +++ b/include/qemu/range.h @@ -57,6 +57,18 @@ static inline bool range_contains(const Range *range, uint64_t val) return val >= range->lob && val <= range->upb; } +static inline bool range_list_contains(GList *ranges, uint64_t val) +{ + GList *p; + + for (p = g_list_first(ranges); p; p = g_list_next(p)) { + if (range_contains(p->data, val)) { + return true; + } + } + return false; +} + /* Initialize @range to the empty range */ static inline void range_make_empty(Range *range) { diff --git a/util/log.c b/util/log.c index 90897ef0f9..032110d700 100644 --- a/util/log.c +++ b/util/log.c @@ -368,18 +368,10 @@ bool qemu_set_log_filename_flags(const char *name, int flags, Error **errp) */ bool qemu_log_in_addr_range(uint64_t addr) { - 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; + return range_list_contains(debug_regions, addr); } void qemu_set_dfilter_ranges(const char *filter_spec, Error **errp) -- 2.43.2