Fake layout with code rather than the linker.

This begins to make build / environment dependencies controllable in
code since tests will need to control these at some point.

Change-Id: Ifc82eb227a7206da37e5208647003c9865330186
diff --git a/inc/hf/layout.h b/inc/hf/layout.h
index eb48e63..4c40223 100644
--- a/inc/hf/layout.h
+++ b/inc/hf/layout.h
@@ -18,77 +18,15 @@
 
 #include "hf/addr.h"
 
-/**
- * Get the address the .text section begins at.
- */
-static inline paddr_t layout_text_begin(void)
-{
-	extern uint8_t text_begin[];
-	return pa_init((uintpaddr_t)text_begin);
-}
+paddr_t layout_text_begin(void);
+paddr_t layout_text_end(void);
 
-/**
- * Get the address the .text section ends at.
- */
-static inline paddr_t layout_text_end(void)
-{
-	extern uint8_t text_end[];
-	return pa_init((uintpaddr_t)text_end);
-}
+paddr_t layout_rodata_begin(void);
+paddr_t layout_rodata_end(void);
 
-/**
- * Get the address the .rodata section begins at.
- */
-static inline paddr_t layout_rodata_begin(void)
-{
-	extern uint8_t rodata_begin[];
-	return pa_init((uintpaddr_t)rodata_begin);
-}
+paddr_t layout_data_begin(void);
+paddr_t layout_data_end(void);
 
-/**
- * Get the address the .rodata section ends at.
- */
-static inline paddr_t layout_rodata_end(void)
-{
-	extern uint8_t rodata_end[];
-	return pa_init((uintpaddr_t)rodata_end);
-}
+paddr_t layout_bin_end(void);
 
-/**
- * Get the address the .data section begins at.
- */
-static inline paddr_t layout_data_begin(void)
-{
-	extern uint8_t data_begin[];
-	return pa_init((uintpaddr_t)data_begin);
-}
-
-/**
- * Get the address the .data section ends at.
- */
-static inline paddr_t layout_data_end(void)
-{
-	extern uint8_t data_end[];
-	return pa_init((uintpaddr_t)data_end);
-}
-
-/**
- * Get the address the loaded image ends at.
- */
-static inline paddr_t layout_bin_end(void)
-{
-	extern uint8_t bin_end[];
-	return pa_init((uintpaddr_t)bin_end);
-}
-
-/**
- * Get the address to load the primary VM at.
- *
- * This is placed just after the image.
- */
-static inline paddr_t layout_primary_begin(void)
-{
-	/* TODO: This is a hack. We must read the alignment from the binary. */
-	paddr_t bin_end = layout_bin_end();
-	return pa_init((pa_addr(bin_end) + 0x80000 - 1) & ~(0x80000 - 1));
-}
+paddr_t layout_primary_begin(void);