This patch removes most of the rest of the compilation warnings for me. 

1. Move run_bios prototype to device.h
2. Use time.h for get_time()
3. Move read_io and write_io to io.c and make them static
4. Make a couple of functions static in interrupt.c
5. Refactor a cast from char[] to u64 to get rid of potential alignment problems and a warning

The only ones left are "unused" warnings.

I think we should get rid of that warning, since we conditionally call functions based on debugging and various config variables.  Is there a case where it helps enough to justify all the warnings?

This next part isn't part of the patch, but applying it makes qemu compile with yabel (with and without debugging).

Index: Makefile
===================================================================
--- Makefile    (revision 5186)
+++ Makefile    (working copy)
@@ -239,7 +239,7 @@
 CFLAGS = $(INCLUDES) -Os -nostdinc
 CFLAGS += -nostdlib -Wall -Wundef -Wstrict-prototypes -Wmissing-prototypes
 CFLAGS += -Wwrite-strings -Wredundant-decls -Wno-trigraphs
-CFLAGS += -Wstrict-aliasing -Wshadow
+CFLAGS += -Wstrict-aliasing -Wshadow -Wno-unused
 ifeq ($(CONFIG_WARNINGS_ARE_ERRORS),y)
 CFLAGS += -Werror
 endif

Signed-off-by: Myles Watson <mylesgw@gmail.com>

Thanks,
Myles