summaryrefslogtreecommitdiff
path: root/src/include/symbols.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/symbols.h')
-rw-r--r--src/include/symbols.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/include/symbols.h b/src/include/symbols.h
index 4276176398..a36392f125 100644
--- a/src/include/symbols.h
+++ b/src/include/symbols.h
@@ -84,4 +84,11 @@ extern u8 _framebuffer[];
extern u8 _eframebuffer[];
#define _framebuffer_size (_eframebuffer - _framebuffer)
+/* Put this into a .c file accessing a linker script region to mark that region
+ * as "optional". If it is defined in memlayout.ld (or anywhere else), the
+ * values from that definition will be used. If not, start, end and size will
+ * all evaluate to 0. (We can't explicitly assign the symbols to 0 in the
+ * assembly due to https://sourceware.org/bugzilla/show_bug.cgi?id=1038.) */
+#define DECLARE_OPTIONAL_REGION(name) asm (".weak _" #name ", _e" #name )
+
#endif /* __SYMBOLS_H */