brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · 1d38ddf Raw
91 lines · c
1// SPDX-License-Identifier: GPL-2.02#include "util.h"3#include "../util/debug.h"4#include <stdio.h>5 6/*7 * Default error logging functions8 */9static 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 16static 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 26static struct perf_error_ops default_eops =27{28	.error		= perf_stdio__error,29	.warning	= perf_stdio__warning,30};31 32static struct perf_error_ops *perf_eops = &default_eops;33 34 35int 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 47int 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 functions63 * @eops: The pointer to error logging function struct64 *65 * Register UI-specific error logging functions. Before calling this,66 * other logging functions should be unregistered, if any.67 */68int 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 functions79 * @eops: The pointer to error logging function struct80 *81 * Unregister already registered error logging functions.82 */83int 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}91