summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/bootstrap/devfs.c11
-rw-r--r--lib/bootstrap/disk.c5
2 files changed, 11 insertions, 5 deletions
diff --git a/lib/bootstrap/devfs.c b/lib/bootstrap/devfs.c
index 6a3dd76cdd..6d28b1cb4d 100644
--- a/lib/bootstrap/devfs.c
+++ b/lib/bootstrap/devfs.c
@@ -80,8 +80,8 @@ static unsigned int get_image_size(void *head)
}
#endif
-void* bootstrap_read_devfs(const char *devname, bool use_bb, int offset,
- int default_size, int max_size)
+void* bootstrap_read_devfs(char *devname, bool use_bb, int offset,
+ int default_size, int max_size, size_t *bufsize)
{
int ret;
int size = 0;
@@ -133,10 +133,13 @@ void* bootstrap_read_devfs(const char *devname, bool use_bb, int offset,
ret = cdev_read(cdev, to, size, 0, 0);
cdev_close(cdev);
- if (ret != size)
+ if (ret != size) {
bootstrap_err("%s: failed to read from %s\n", devname, partname);
- else
+ } else {
result = to;
+ if (bufsize)
+ *bufsize = size;
+ }
free_memory:
free(header);
diff --git a/lib/bootstrap/disk.c b/lib/bootstrap/disk.c
index fd016166e6..ed8b1aa407 100644
--- a/lib/bootstrap/disk.c
+++ b/lib/bootstrap/disk.c
@@ -14,7 +14,7 @@
#include <libfile.h>
#include <bootstrap.h>
-void* bootstrap_read_disk(const char *dev, const char *fstype)
+void* bootstrap_read_disk(const char *dev, char *fstype, size_t *bufsize)
{
int ret;
void *buf;
@@ -34,5 +34,8 @@ void* bootstrap_read_disk(const char *dev, const char *fstype)
return NULL;
}
+ if (bufsize)
+ *bufsize = len;
+
return buf;
}