Move std.c to arch to avoid conflicts with libc for tests.

Change-Id: I0fc966962413ee12f84058d702e7396e38460f27
diff --git a/src/BUILD.gn b/src/BUILD.gn
index d3069ae..cef8a7f 100644
--- a/src/BUILD.gn
+++ b/src/BUILD.gn
@@ -55,10 +55,10 @@
   ]
 
   deps = [
-    ":common",
     ":fdt",
     ":memiter",
     "//src/arch/${plat_arch}",
+    "//src/arch/${plat_arch}:std",
   ]
 
   if (is_debug) {
@@ -66,13 +66,6 @@
   }
 }
 
-# Code that is not specific to a certain image so can be shared.
-source_set("common") {
-  sources = [
-    "std.c",
-  ]
-}
-
 # Debug code that is not specific to a certain image so can be shared.
 source_set("dlog") {
   sources = [
@@ -80,8 +73,8 @@
   ]
 
   deps = [
-    ":common",
     "//src/arch/${plat_arch}:putchar",
+    "//src/arch/${plat_arch}:std",
   ]
 }
 
@@ -92,7 +85,7 @@
   ]
 
   deps = [
-    ":common",
+    "//src/arch/${plat_arch}:std",
   ]
 
   if (is_debug) {
diff --git a/src/api.c b/src/api.c
index ba89203..a155bb6 100644
--- a/src/api.c
+++ b/src/api.c
@@ -19,12 +19,12 @@
 #include <assert.h>
 
 #include "hf/arch/cpu.h"
+#include "hf/arch/std.h"
 #include "hf/arch/timer.h"
 
 #include "hf/dlog.h"
 #include "hf/mm.h"
 #include "hf/spinlock.h"
-#include "hf/std.h"
 #include "hf/vm.h"
 
 #include "vmapi/hf/call.h"
diff --git a/src/arch/aarch64/BUILD.gn b/src/arch/aarch64/BUILD.gn
index 2d6fdf9..b7e6461 100644
--- a/src/arch/aarch64/BUILD.gn
+++ b/src/arch/aarch64/BUILD.gn
@@ -45,6 +45,12 @@
   ]
 }
 
+source_set("std") {
+  sources = [
+    "std.c",
+  ]
+}
+
 # Entry code to prepare the loaded image to be run.
 source_set("entry") {
   sources = [
diff --git a/src/arch/aarch64/cpu.c b/src/arch/aarch64/cpu.c
index 4a8114a..61be67b 100644
--- a/src/arch/aarch64/cpu.c
+++ b/src/arch/aarch64/cpu.c
@@ -20,8 +20,9 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include "hf/arch/std.h"
+
 #include "hf/addr.h"
-#include "hf/std.h"
 
 void arch_irq_disable(void)
 {
diff --git a/src/std.c b/src/arch/aarch64/std.c
similarity index 98%
rename from src/std.c
rename to src/arch/aarch64/std.c
index 45263c8..94de77c 100644
--- a/src/std.c
+++ b/src/arch/aarch64/std.c
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "hf/std.h"
+#include "hf/arch/std.h"
 
 void *memset(void *s, int c, size_t n)
 {
diff --git a/src/arch/fake/BUILD.gn b/src/arch/fake/BUILD.gn
index c3c404b..a004782 100644
--- a/src/arch/fake/BUILD.gn
+++ b/src/arch/fake/BUILD.gn
@@ -26,3 +26,7 @@
     "putchar.c",
   ]
 }
+
+# Empty, as the functions are provided by libc already.
+source_set("std") {
+}
diff --git a/src/cpio.c b/src/cpio.c
index 01002d8..0a57fdd 100644
--- a/src/cpio.c
+++ b/src/cpio.c
@@ -18,7 +18,7 @@
 
 #include <stdint.h>
 
-#include "hf/std.h"
+#include "hf/arch/std.h"
 
 #pragma pack(push, 1)
 struct cpio_header {
diff --git a/src/cpu.c b/src/cpu.c
index 536fee1..a29c22d 100644
--- a/src/cpu.c
+++ b/src/cpu.c
@@ -19,10 +19,10 @@
 #include <stdalign.h>
 
 #include "hf/arch/cpu.h"
+#include "hf/arch/std.h"
 
 #include "hf/api.h"
 #include "hf/dlog.h"
-#include "hf/std.h"
 #include "hf/vm.h"
 
 #include "vmapi/hf/call.h"
diff --git a/src/dlog.c b/src/dlog.c
index 1ce5566..a0c1d15 100644
--- a/src/dlog.c
+++ b/src/dlog.c
@@ -20,9 +20,9 @@
 #include <stddef.h>
 
 #include "hf/arch/console.h"
+#include "hf/arch/std.h"
 
 #include "hf/spinlock.h"
-#include "hf/std.h"
 
 /* Keep macro alignment */
 /* clang-format off */
diff --git a/src/fdt.c b/src/fdt.c
index 3c06784..691b733 100644
--- a/src/fdt.c
+++ b/src/fdt.c
@@ -18,8 +18,9 @@
 
 #include <stdint.h>
 
+#include "hf/arch/std.h"
+
 #include "hf/dlog.h"
-#include "hf/std.h"
 
 struct fdt_header {
 	uint32_t magic;
diff --git a/src/fdt_handler.c b/src/fdt_handler.c
index f41fa8d..61b688d 100644
--- a/src/fdt_handler.c
+++ b/src/fdt_handler.c
@@ -16,13 +16,14 @@
 
 #include "hf/fdt_handler.h"
 
+#include "hf/arch/std.h"
+
 #include "hf/boot_params.h"
 #include "hf/cpu.h"
 #include "hf/dlog.h"
 #include "hf/fdt.h"
 #include "hf/layout.h"
 #include "hf/mm.h"
-#include "hf/std.h"
 
 static uint64_t convert_number(const char *data, uint32_t size)
 {
diff --git a/src/layout.c b/src/layout.c
index fe11c91..403d2d4 100644
--- a/src/layout.c
+++ b/src/layout.c
@@ -16,7 +16,7 @@
 
 #include "hf/layout.h"
 
-#include "hf/std.h"
+#include "hf/arch/std.h"
 
 /**
  * Get the address the .text section begins at.
diff --git a/src/load.c b/src/load.c
index 30de46f..d573473 100644
--- a/src/load.c
+++ b/src/load.c
@@ -19,13 +19,14 @@
 #include <assert.h>
 #include <stdbool.h>
 
+#include "hf/arch/std.h"
+
 #include "hf/api.h"
 #include "hf/boot_params.h"
 #include "hf/dlog.h"
 #include "hf/layout.h"
 #include "hf/memiter.h"
 #include "hf/mm.h"
-#include "hf/std.h"
 #include "hf/vm.h"
 
 #include "vmapi/hf/call.h"
diff --git a/src/main.c b/src/main.c
index 3457f25..90912c2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -19,6 +19,7 @@
 #include <stdnoreturn.h>
 
 #include "hf/arch/init.h"
+#include "hf/arch/std.h"
 
 #include "hf/api.h"
 #include "hf/boot_params.h"
@@ -28,7 +29,6 @@
 #include "hf/load.h"
 #include "hf/mm.h"
 #include "hf/mpool.h"
-#include "hf/std.h"
 #include "hf/vm.h"
 
 #include "vmapi/hf/call.h"
diff --git a/src/memiter.c b/src/memiter.c
index 8b9854c..f6064bb 100644
--- a/src/memiter.c
+++ b/src/memiter.c
@@ -16,7 +16,7 @@
 
 #include "hf/memiter.h"
 
-#include "hf/std.h"
+#include "hf/arch/std.h"
 
 /**
  * Initialises the given memory iterator.
diff --git a/src/vm.c b/src/vm.c
index b68c219..a597e3f 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -16,9 +16,10 @@
 
 #include "hf/vm.h"
 
+#include "hf/arch/std.h"
+
 #include "hf/api.h"
 #include "hf/cpu.h"
-#include "hf/std.h"
 
 #include "vmapi/hf/call.h"