Add a method to pop a specified number of prefixes and another method to clear all prefixes. Suggested-by: Andrew Jones <andrew.jones@xxxxxxxxx> Signed-off-by: James Raphael Tiovalen <jamestiotio@xxxxxxxxx> --- lib/libcflat.h | 2 ++ lib/report.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/lib/libcflat.h b/lib/libcflat.h index 16a83880..0286ddec 100644 --- a/lib/libcflat.h +++ b/lib/libcflat.h @@ -96,6 +96,8 @@ void report_prefix_pushf(const char *prefix_fmt, ...) __attribute__((format(printf, 1, 2))); extern void report_prefix_push(const char *prefix); extern void report_prefix_pop(void); +extern void report_prefix_popn(int n); +extern void report_prefix_clear(void); extern void report(bool pass, const char *msg_fmt, ...) __attribute__((format(printf, 2, 3), nonnull(2))); extern void report_xfail(bool xfail, bool pass, const char *msg_fmt, ...) diff --git a/lib/report.c b/lib/report.c index 7f3c4f05..d45afedc 100644 --- a/lib/report.c +++ b/lib/report.c @@ -80,6 +80,19 @@ void report_prefix_pop(void) spin_unlock(&lock); } +void report_prefix_popn(int n) +{ + while (n--) + report_prefix_pop(); +} + +void report_prefix_clear(void) +{ + spin_lock(&lock); + prefixes[0] = '\0'; + spin_unlock(&lock); +} + static void va_report(const char *msg_fmt, bool pass, bool xfail, bool kfail, bool skip, va_list va) { -- 2.43.0