loader: Add load_image_size() to replace load_image()
A subsequent patch to ppc/spapr needs to load the RTAS blob into qemu memory rather than target memory (so it can later be copied into the right spot at machine reset time). I would use load_image() but it is marked deprecated because it doesn't take a buffer size as argument, so let's add load_image_size() that does. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> [aik: fixed errors from checkpatch.pl] Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
c3b4f589d8
commit
ea87616d6c
|
@ -89,6 +89,27 @@ int load_image(const char *filename, uint8_t *addr)
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* return the size or -1 if error */
|
||||||
|
ssize_t load_image_size(const char *filename, void *addr, size_t size)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
ssize_t actsize;
|
||||||
|
|
||||||
|
fd = open(filename, O_RDONLY | O_BINARY);
|
||||||
|
if (fd < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
actsize = read(fd, addr, size);
|
||||||
|
if (actsize < 0) {
|
||||||
|
close(fd);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
close(fd);
|
||||||
|
|
||||||
|
return actsize;
|
||||||
|
}
|
||||||
|
|
||||||
/* read()-like version */
|
/* read()-like version */
|
||||||
ssize_t read_targphys(const char *name,
|
ssize_t read_targphys(const char *name,
|
||||||
int fd, hwaddr dst_addr, size_t nbytes)
|
int fd, hwaddr dst_addr, size_t nbytes)
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
*/
|
*/
|
||||||
int get_image_size(const char *filename);
|
int get_image_size(const char *filename);
|
||||||
int load_image(const char *filename, uint8_t *addr); /* deprecated */
|
int load_image(const char *filename, uint8_t *addr); /* deprecated */
|
||||||
|
ssize_t load_image_size(const char *filename, void *addr, size_t size);
|
||||||
int load_image_targphys(const char *filename, hwaddr,
|
int load_image_targphys(const char *filename, hwaddr,
|
||||||
uint64_t max_sz);
|
uint64_t max_sz);
|
||||||
int load_image_gzipped(const char *filename, hwaddr addr, uint64_t max_sz);
|
int load_image_gzipped(const char *filename, hwaddr addr, uint64_t max_sz);
|
||||||
|
|
Loading…
Reference in a new issue