Blob Blame History Raw
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * rh_features.h -- Red Hat features tracking
 *
 * Copyright (c) 2018 Red Hat, Inc. -- Jiri Benc <jbenc@redhat.com>
 *
 * The intent of the feature tracking is to provide better and more focused
 * support. Only those features that are of a special interest for customer
 * support should be tracked. The feature flags do not express any support
 * policy.
 */

#ifndef _LINUX_RH_FEATURES_H
#define _LINUX_RH_FEATURES_H

bool __rh_mark_used_feature(const char *feature_name);
void rh_print_used_features(void);

#define rh_mark_used_feature(feature_name)				\
({									\
	static bool __mark_once __read_mostly;				\
	bool __ret_mark_once = !__mark_once;				\
									\
	if (!__mark_once)						\
		__mark_once = __rh_mark_used_feature(feature_name);	\
	unlikely(__ret_mark_once);					\
})

#endif