summaryrefslogtreecommitdiffstats
path: root/src/core/image.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/image.c')
-rw-r--r--src/core/image.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/core/image.c b/src/core/image.c
index 078ce1bb9..54b998025 100644
--- a/src/core/image.c
+++ b/src/core/image.c
@@ -176,6 +176,30 @@ int image_set_cmdline ( struct image *image, const char *cmdline ) {
}
/**
+ * Set image data
+ *
+ * @v image Image
+ * @v data Image data
+ * @v len Length of image data
+ * @ret rc Return status code
+ */
+int image_set_data ( struct image *image, userptr_t data, size_t len ) {
+ userptr_t new;
+
+ /* (Re)allocate image data */
+ new = urealloc ( image->data, len );
+ if ( ! new )
+ return -ENOMEM;
+ image->data = new;
+
+ /* Copy in new image data */
+ memcpy_user ( image->data, 0, data, 0, len );
+ image->len = len;
+
+ return 0;
+}
+
+/**
* Determine image type
*
* @v image Executable image