diff options
author | Aaron Durbin <adurbin@chromium.org> | 2017-04-16 22:05:36 -0500 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2017-04-25 18:14:38 +0200 |
commit | e4d7abc0d448c7e805f2b48ed1251708d1f84c67 (patch) | |
tree | 4ca1014c9d972063e7b44c8a373072008c6015fa /src/include/stddef.h | |
parent | 4003950881af6fc4761aa0b177a3670d04ee9881 (diff) |
lib: provide clearer devicetree semantics
The devicetree data structures have been available in more than just
ramstage and romstage. In order to provide clearer and consistent
semantics two new macros are provided:
1. DEVTREE_EARLY which is true when !ENV_RAMSTAGE
2. DEVTREE_CONST as a replacment for ROMSTAGE_CONST
The ROMSTAGE_CONST attribute is used in the source code to mark
the devicetree data structures as const in early stages even though
it's not just romstage. Therefore, rename the attribute to
DEVTREE_CONST as that's the actual usage. The only place where the
usage was not devicetree related is console_loglevel, but the same
name was used for consistency. Any stage that is not ramstage has
the const C attribute applied when DEVTREE_CONST is used.
Change-Id: Ibd51c2628dc8f68e0896974f7e4e7c8588d333ed
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/19333
Tested-by: build bot (Jenkins)
Reviewed-by: Philippe Mathieu-Daudé <philippe.mathieu.daude@gmail.com>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/include/stddef.h')
-rw-r--r-- | src/include/stddef.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/include/stddef.h b/src/include/stddef.h index d0308d2580..af63196697 100644 --- a/src/include/stddef.h +++ b/src/include/stddef.h @@ -2,6 +2,7 @@ #define STDDEF_H #include <commonlib/helpers.h> +#include <rules.h> typedef long ptrdiff_t; #ifndef __SIZE_TYPE__ @@ -21,10 +22,18 @@ typedef unsigned int wint_t; #define NULL ((void *)0) -#ifdef __PRE_RAM__ -#define ROMSTAGE_CONST const +/* The devicetree data structures are only mutable in ramstage. All other + stages have a constant devicetree. */ +#if !ENV_RAMSTAGE +#define DEVTREE_EARLY 1 #else -#define ROMSTAGE_CONST +#define DEVTREE_EARLY 0 +#endif + +#if DEVTREE_EARLY +#define DEVTREE_CONST const +#else +#define DEVTREE_CONST #endif /* Work around non-writable data segment in execute-in-place romstage on x86. */ |