aboutsummaryrefslogtreecommitdiff
path: root/src/include/stddef.h
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2017-04-16 22:05:36 -0500
committerAaron Durbin <adurbin@chromium.org>2017-04-25 18:14:38 +0200
commite4d7abc0d448c7e805f2b48ed1251708d1f84c67 (patch)
tree4ca1014c9d972063e7b44c8a373072008c6015fa /src/include/stddef.h
parent4003950881af6fc4761aa0b177a3670d04ee9881 (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.h15
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. */