]> Git Repo - linux.git/blob - tools/perf/ui/util.c
Merge tag 'amd-drm-next-6.5-2023-06-09' of https://gitlab.freedesktop.org/agd5f/linux...
[linux.git] / tools / perf / ui / util.c
1 // SPDX-License-Identifier: GPL-2.0
2 #include "util.h"
3 #include "../util/debug.h"
4 #include <stdio.h>
5
6 /*
7  * Default error logging functions
8  */
9 static int perf_stdio__error(const char *format, va_list args)
10 {
11         fprintf(stderr, "Error:\n");
12         vfprintf(stderr, format, args);
13         return 0;
14 }
15
16 static int perf_stdio__warning(const char *format, va_list args)
17 {
18         if (quiet)
19                 return 0;
20
21         fprintf(stderr, "Warning:\n");
22         vfprintf(stderr, format, args);
23         return 0;
24 }
25
26 static struct perf_error_ops default_eops =
27 {
28         .error          = perf_stdio__error,
29         .warning        = perf_stdio__warning,
30 };
31
32 static struct perf_error_ops *perf_eops = &default_eops;
33
34
35 int ui__error(const char *format, ...)
36 {
37         int ret;
38         va_list args;
39
40         va_start(args, format);
41         ret = perf_eops->error(format, args);
42         va_end(args);
43
44         return ret;
45 }
46
47 int ui__warning(const char *format, ...)
48 {
49         int ret;
50         va_list args;
51         if (quiet)
52                 return 0;
53
54         va_start(args, format);
55         ret = perf_eops->warning(format, args);
56         va_end(args);
57
58         return ret;
59 }
60
61 /**
62  * perf_error__register - Register error logging functions
63  * @eops: The pointer to error logging function struct
64  *
65  * Register UI-specific error logging functions. Before calling this,
66  * other logging functions should be unregistered, if any.
67  */
68 int perf_error__register(struct perf_error_ops *eops)
69 {
70         if (perf_eops != &default_eops)
71                 return -1;
72
73         perf_eops = eops;
74         return 0;
75 }
76
77 /**
78  * perf_error__unregister - Unregister error logging functions
79  * @eops: The pointer to error logging function struct
80  *
81  * Unregister already registered error logging functions.
82  */
83 int perf_error__unregister(struct perf_error_ops *eops)
84 {
85         if (perf_eops != eops)
86                 return -1;
87
88         perf_eops = &default_eops;
89         return 0;
90 }
This page took 0.036932 seconds and 4 git commands to generate.