Fix for 64-bit platforms. master
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Tue, 2 Aug 2016 10:55:49 +0000 (07:55 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Tue, 2 Aug 2016 10:55:49 +0000 (07:55 -0300)
On 64-bit platforms, size_t has 64 bits. So load address was overwritten
when changing the kernel size, which broke boot of the generated images.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
bootimg.c

index cacd658..7e38e0a 100644 (file)
--- a/bootimg.c
+++ b/bootimg.c
@@ -25,7 +25,7 @@
 #include <errno.h>
 #include <sys/stat.h>
 
-static int dump_or_load(int fd, size_t *len, int pgsz, char *fname, int dump)
+static int dump_or_load(int fd, uint32_t *len, int pgsz, char *fname, int dump)
 {
        int cfd;
        char *page;
@@ -92,12 +92,12 @@ out:
        return -EINVAL;
 }
 
-static int dump(int fd, size_t len, int pgsz, char *fname)
+static int dump(int fd, uint32_t len, int pgsz, char *fname)
 {
        return dump_or_load(fd, &len, pgsz, fname, 1);
 }
 
-static int load(int fd, size_t *len, int pgsz, char *fname)
+static int load(int fd, uint32_t *len, int pgsz, char *fname)
 {
        return dump_or_load(fd, len, pgsz, fname, 0);
 }