| /* |
| * errata functions |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU Library General Public License version 2. |
| */ |
| #ifndef _ERRATA_H_ |
| #define _ERRATA_H_ |
| #include <libcflat.h> |
| |
| #include "config.h" |
| |
| #ifndef CONFIG_ERRATA_FORCE |
| #define CONFIG_ERRATA_FORCE 0 |
| #endif |
| |
| #define _ERRATA(erratum) errata("ERRATA_" # erratum) |
| #define ERRATA(erratum) _ERRATA(erratum) |
| |
| #define _ERRATA_RELAXED(erratum) errata_relaxed("ERRATA_" # erratum) |
| #define ERRATA_RELAXED(erratum) _ERRATA_RELAXED(erratum) |
| |
| static inline bool errata_force(void) |
| { |
| char *s; |
| |
| if (CONFIG_ERRATA_FORCE == 1) |
| return true; |
| |
| s = getenv("ERRATA_FORCE"); |
| return s && (*s == '1' || *s == 'y' || *s == 'Y'); |
| } |
| |
| static inline bool errata(const char *erratum) |
| { |
| char *s; |
| |
| if (errata_force()) |
| return true; |
| |
| s = getenv(erratum); |
| |
| return s && (*s == '1' || *s == 'y' || *s == 'Y'); |
| } |
| |
| static inline bool errata_relaxed(const char *erratum) |
| { |
| char *s; |
| |
| if (errata_force()) |
| return true; |
| |
| s = getenv(erratum); |
| |
| return !(s && (*s == '0' || *s == 'n' || *s == 'N')); |
| } |
| |
| #endif |