Implement load_image in terms of IO abstraction
The modified implementation uses the IO abstraction rather than
making direct semi-hosting calls. The semi-hosting driver is now
registered for the FVP platform during initialisation of each boot
stage where it is used. Additionally, the FVP platform includes a
straightforward implementation of 'plat_get_image_source' which
provides a generic means for the 'load_image' function to determine
how to access the image data.
Change-Id: Ia34457b471dbee990c7b3c79de7aee4ceea51aa6
diff --git a/include/io_storage.h b/include/io_storage.h
index 71f5d26..f67e5d0 100644
--- a/include/io_storage.h
+++ b/include/io_storage.h
@@ -31,6 +31,8 @@
#ifndef __IO_H__
#define __IO_H__
+#ifndef __ASSEMBLY__
+
#include <stdint.h>
#include <stdio.h> /* For ssize_t */
@@ -125,4 +127,5 @@
int io_close(io_handle handle);
+#endif /* __ASSEMBLY__ */
#endif /* __IO_H__ */
diff --git a/include/semihosting.h b/include/semihosting.h
index d70fcba..0244cad 100644
--- a/include/semihosting.h
+++ b/include/semihosting.h
@@ -61,7 +61,7 @@
int semihosting_file_open(const char *file_name, unsigned int mode);
int semihosting_file_seek(int file_handle, unsigned int offset);
int semihosting_file_read(int file_handle, int *length, void *buffer);
-int semihosting_file_write(int file_handle, int *length, void *buffer);
+int semihosting_file_write(int file_handle, int *length, const void *buffer);
int semihosting_file_close(int file_handle);
int semihosting_file_length(int file_handle);
int semihosting_system(char *command_line);