| /* SPDX-License-Identifier: LGPL-2.1 */ | 
 | /* | 
 |  * Copyright (C) 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com> | 
 |  * | 
 |  */ | 
 | #ifndef __UTIL_H | 
 | #define __UTIL_H | 
 |  | 
 | #include <ctype.h> | 
 |  | 
 | /* Can be overridden */ | 
 | void warning(const char *fmt, ...); | 
 | void pr_stat(const char *fmt, ...); | 
 | void vpr_stat(const char *fmt, va_list ap); | 
 |  | 
 | /* Always available */ | 
 | void __warning(const char *fmt, ...); | 
 | void __pr_stat(const char *fmt, ...); | 
 |  | 
 | void __vwarning(const char *fmt, ...); | 
 | void __vpr_stat(const char *fmt, ...); | 
 |  | 
 | #define min(x, y) ({				\ | 
 | 	typeof(x) _min1 = (x);			\ | 
 | 	typeof(y) _min2 = (y);			\ | 
 | 	(void) (&_min1 == &_min2);		\ | 
 | 	_min1 < _min2 ? _min1 : _min2; }) | 
 |  | 
 | static inline char *strim(char *string) | 
 | { | 
 | 	char *ret; | 
 |  | 
 | 	if (!string) | 
 | 		return NULL; | 
 | 	while (*string) { | 
 | 		if (!isspace(*string)) | 
 | 			break; | 
 | 		string++; | 
 | 	} | 
 | 	ret = string; | 
 |  | 
 | 	string = ret + strlen(ret) - 1; | 
 | 	while (string > ret) { | 
 | 		if (!isspace(*string)) | 
 | 			break; | 
 | 		string--; | 
 | 	} | 
 | 	string[1] = 0; | 
 |  | 
 | 	return ret; | 
 | } | 
 |  | 
 | static inline int has_text(const char *text) | 
 | { | 
 | 	if (!text) | 
 | 		return 0; | 
 |  | 
 | 	while (*text) { | 
 | 		if (!isspace(*text)) | 
 | 			return 1; | 
 | 		text++; | 
 | 	} | 
 |  | 
 | 	return 0; | 
 | } | 
 |  | 
 | #endif |