summaryrefslogtreecommitdiff
path: root/lib_i386/zimage.c
diff options
context:
space:
mode:
authorMarian Balakowicz <m8@semihalf.com>2008-01-08 18:14:09 +0100
committerWolfgang Denk <wd@denx.de>2008-02-07 01:12:53 +0100
commitb97a2a0a21f279d66de8a9bdbfe21920968bcb1c (patch)
tree7746eae37d3a468f3471cd303156920637445350 /lib_i386/zimage.c
parented29bc4e8142b46b626f67524207b36e43d9aad6 (diff)
downloadu-boot-imx-b97a2a0a21f279d66de8a9bdbfe21920968bcb1c.zip
u-boot-imx-b97a2a0a21f279d66de8a9bdbfe21920968bcb1c.tar.gz
u-boot-imx-b97a2a0a21f279d66de8a9bdbfe21920968bcb1c.tar.bz2
[new uImage] Define a API for image handling operations
- Add inline helper macros for basic header processing - Move common non inline code common/image.c - Replace direct header access with the API routines - Rename IH_CPU_* to IH_ARCH_* Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Diffstat (limited to 'lib_i386/zimage.c')
-rw-r--r--lib_i386/zimage.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/lib_i386/zimage.c b/lib_i386/zimage.c
index 3510f2f..20f9f8d 100644
--- a/lib_i386/zimage.c
+++ b/lib_i386/zimage.c
@@ -251,25 +251,24 @@ image_header_t *fake_zimage_header(image_header_t *hdr, void *ptr, int size)
#else
checksum = 0;
#endif
- memset(hdr, 0, sizeof(image_header_t));
+ memset(hdr, 0, image_get_header_size ());
/* Build new header */
- hdr->ih_magic = htonl(IH_MAGIC);
- hdr->ih_time = 0;
- hdr->ih_size = htonl(size);
- hdr->ih_load = htonl(ZIMAGE_LOAD);
- hdr->ih_ep = 0;
- hdr->ih_dcrc = htonl(checksum);
- hdr->ih_os = IH_OS_LINUX;
- hdr->ih_arch = IH_CPU_I386;
- hdr->ih_type = IH_TYPE_KERNEL;
- hdr->ih_comp = IH_COMP_NONE;
-
- strncpy((char *)hdr->ih_name, "(none)", IH_NMLEN);
-
- checksum = crc32(0,(const char *)hdr,sizeof(image_header_t));
-
- hdr->ih_hcrc = htonl(checksum);
+ image_set_magic (hdr, IH_MAGIC);
+ image_set_time (hdr, 0);
+ image_set_size (hdr, size);
+ image_set_load (hdr, ZIMAGE_LOAD);
+ image_set_ep (hdr, 0);
+ image_set_dcrc (hdr, checksum);
+ image_set_os (hdr, IH_OS_LINUX);
+ image_set_arch (hdr, IH_ARCH_I386);
+ image_set_type (hdr, IH_TYPE_KERNEL);
+ image_set_comp (hdr, IH_COMP_NONE);
+
+ image_set_name (hdr, "(none)");
+
+ checksum = crc32 (0, (const char *)hdr, image_get_header_size ());
+ image_set_hcrc (hdr, checksum);
return hdr;
}