xref: /kvm-unit-tests/lib/errata.h (revision 218bb0d4242d29203b98721398d890622a2b10b9)
1*218bb0d4SAndrew Jones #ifndef _ERRATA_H_
2*218bb0d4SAndrew Jones #define _ERRATA_H_
3*218bb0d4SAndrew Jones 
4*218bb0d4SAndrew Jones #define _ERRATA(erratum) errata("ERRATA_" # erratum)
5*218bb0d4SAndrew Jones #define ERRATA(erratum) _ERRATA(erratum)
6*218bb0d4SAndrew Jones 
7*218bb0d4SAndrew Jones #define _ERRATA_RELAXED(erratum) errata_relaxed("ERRATA_" # erratum)
8*218bb0d4SAndrew Jones #define ERRATA_RELAXED(erratum) _ERRATA_RELAXED(erratum)
9*218bb0d4SAndrew Jones 
10*218bb0d4SAndrew Jones static inline bool errata(const char *erratum)
11*218bb0d4SAndrew Jones {
12*218bb0d4SAndrew Jones 	char *s = getenv(erratum);
13*218bb0d4SAndrew Jones 
14*218bb0d4SAndrew Jones 	return s && (*s == '1' || *s == 'y' || *s == 'Y');
15*218bb0d4SAndrew Jones }
16*218bb0d4SAndrew Jones 
17*218bb0d4SAndrew Jones static inline bool errata_relaxed(const char *erratum)
18*218bb0d4SAndrew Jones {
19*218bb0d4SAndrew Jones 	char *s = getenv(erratum);
20*218bb0d4SAndrew Jones 
21*218bb0d4SAndrew Jones 	return !(s && (*s == '0' || *s == 'n' || *s == 'N'));
22*218bb0d4SAndrew Jones }
23*218bb0d4SAndrew Jones 
24*218bb0d4SAndrew Jones #endif
25