1*4bc4b131SDaniel Bristot de Oliveira // SPDX-License-Identifier: GPL-2.0
2*4bc4b131SDaniel Bristot de Oliveira /*
3*4bc4b131SDaniel Bristot de Oliveira * util functions.
4*4bc4b131SDaniel Bristot de Oliveira *
5*4bc4b131SDaniel Bristot de Oliveira * Copyright (C) 2022 Red Hat Inc, Daniel Bristot de Oliveira <bristot@kernel.org>
6*4bc4b131SDaniel Bristot de Oliveira */
7*4bc4b131SDaniel Bristot de Oliveira
8*4bc4b131SDaniel Bristot de Oliveira #include <stdarg.h>
9*4bc4b131SDaniel Bristot de Oliveira #include <stdio.h>
10*4bc4b131SDaniel Bristot de Oliveira #include <utils.h>
11*4bc4b131SDaniel Bristot de Oliveira
12*4bc4b131SDaniel Bristot de Oliveira int config_debug;
13*4bc4b131SDaniel Bristot de Oliveira
14*4bc4b131SDaniel Bristot de Oliveira #define MAX_MSG_LENGTH 1024
15*4bc4b131SDaniel Bristot de Oliveira
16*4bc4b131SDaniel Bristot de Oliveira /**
17*4bc4b131SDaniel Bristot de Oliveira * err_msg - print an error message to the stderr
18*4bc4b131SDaniel Bristot de Oliveira */
err_msg(const char * fmt,...)19*4bc4b131SDaniel Bristot de Oliveira void err_msg(const char *fmt, ...)
20*4bc4b131SDaniel Bristot de Oliveira {
21*4bc4b131SDaniel Bristot de Oliveira char message[MAX_MSG_LENGTH];
22*4bc4b131SDaniel Bristot de Oliveira va_list ap;
23*4bc4b131SDaniel Bristot de Oliveira
24*4bc4b131SDaniel Bristot de Oliveira va_start(ap, fmt);
25*4bc4b131SDaniel Bristot de Oliveira vsnprintf(message, sizeof(message), fmt, ap);
26*4bc4b131SDaniel Bristot de Oliveira va_end(ap);
27*4bc4b131SDaniel Bristot de Oliveira
28*4bc4b131SDaniel Bristot de Oliveira fprintf(stderr, "%s", message);
29*4bc4b131SDaniel Bristot de Oliveira }
30*4bc4b131SDaniel Bristot de Oliveira
31*4bc4b131SDaniel Bristot de Oliveira /**
32*4bc4b131SDaniel Bristot de Oliveira * debug_msg - print a debug message to stderr if debug is set
33*4bc4b131SDaniel Bristot de Oliveira */
debug_msg(const char * fmt,...)34*4bc4b131SDaniel Bristot de Oliveira void debug_msg(const char *fmt, ...)
35*4bc4b131SDaniel Bristot de Oliveira {
36*4bc4b131SDaniel Bristot de Oliveira char message[MAX_MSG_LENGTH];
37*4bc4b131SDaniel Bristot de Oliveira va_list ap;
38*4bc4b131SDaniel Bristot de Oliveira
39*4bc4b131SDaniel Bristot de Oliveira if (!config_debug)
40*4bc4b131SDaniel Bristot de Oliveira return;
41*4bc4b131SDaniel Bristot de Oliveira
42*4bc4b131SDaniel Bristot de Oliveira va_start(ap, fmt);
43*4bc4b131SDaniel Bristot de Oliveira vsnprintf(message, sizeof(message), fmt, ap);
44*4bc4b131SDaniel Bristot de Oliveira va_end(ap);
45*4bc4b131SDaniel Bristot de Oliveira
46*4bc4b131SDaniel Bristot de Oliveira fprintf(stderr, "%s", message);
47*4bc4b131SDaniel Bristot de Oliveira }
48