Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/xen/kconfig.h
Line
Count
Source
1
#ifndef __XEN_KCONFIG_H
2
#define __XEN_KCONFIG_H
3
4
#include <generated/autoconf.h>
5
6
/*
7
 * Helper macros to use CONFIG_ options in C/CPP expressions. Note that
8
 * these only work with boolean option.
9
 */
10
11
/*
12
 * Getting something that works in C and CPP for an arg that may or may
13
 * not be defined is tricky.  Here, if we have "#define CONFIG_BOOGER 1"
14
 * we match on the placeholder define, insert the "0," for arg1 and generate
15
 * the triplet (0, 1, 0).  Then the last step cherry picks the 2nd arg (a one).
16
 * When CONFIG_BOOGER is not defined, we generate a (... 1, 0) pair, and when
17
 * the last step cherry picks the 2nd arg, we get a zero.
18
 */
19
#define __ARG_PLACEHOLDER_1 0,
20
68
#define config_enabled(cfg) _config_enabled(cfg)
21
68
#define _config_enabled(value) __config_enabled(__ARG_PLACEHOLDER_##value)
22
68
#define __config_enabled(arg1_or_junk) ___config_enabled(arg1_or_junk 1, 0)
23
71
#define ___config_enabled(__ignored, val, ...) val
24
25
/*
26
 * IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y', 0
27
 * otherwise.
28
 */
29
68
#define IS_ENABLED(option) config_enabled(option)
30
31
#endif /* __XEN_KCONFIG_H */