fiasco: align also kernel

This commit is contained in:
Pali Rohár committed 2012-08-07 14:20:54 +02:00
1 parent 869a872897
commit 589443a356
1 file changed
+19 -6
+19 -6
View File
@@ -371,9 +371,16 @@ int fiasco_write_to_file(struct fiasco * fiasco, const char * file) {
/* image size */ /* image size */
size = image->size; size = image->size;
/* Align mmc image size */ /* Align mmc image size */
if ( image->type == IMAGE_MMC ) if ( image->type == IMAGE_MMC )
size = ((size >> 8) + 1) << 8; size = ((size >> 8) + 1) << 8;
/* Align kernel image size */
else if ( image->type == IMAGE_KERNEL )
size = ((size >> 7) + 1) << 7;
/* TODO: update hash after align */
size = htonl(size); size = htonl(size);
WRITE_OR_FAIL(fd, &size, 4); WRITE_OR_FAIL(fd, &size, 4);
@@ -447,13 +454,17 @@ int fiasco_write_to_file(struct fiasco * fiasco, const char * file) {
WRITE_OR_FAIL(fd, buf, size); WRITE_OR_FAIL(fd, buf, size);
} }
/* Align mmc image (fill with 0xff) */ size = image->size;
if ( image->type == IMAGE_MMC ) {
if ( image->type == IMAGE_MMC )
size = ((image->size >> 8) + 1) << 8; size = ((image->size >> 8) + 1) << 8;
while ( size > image->size ) { else if ( image->type == IMAGE_KERNEL )
WRITE_OR_FAIL(fd, "\xff", 1); size = ((image->size >> 7) + 1) << 7;
--size;
} /* Align image if needed (fill with 0xff) */
while ( size > image->size ) {
WRITE_OR_FAIL(fd, "\xff", 1);
--size;
} }
image_list = image_list->next; image_list = image_list->next;
@@ -494,6 +505,8 @@ int fiasco_unpack(struct fiasco * fiasco, const char * dir) {
name = calloc(1, length); name = calloc(1, length);
/* TODO: Unpack image */
image_list = image_list->next; image_list = image_list->next;
} }