[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>
diff --git a/common/cmd_ximg.c b/common/cmd_ximg.c
index 52e0614..ab579cd 100644
--- a/common/cmd_ximg.c
+++ b/common/cmd_ximg.c
@@ -38,14 +38,13 @@
 do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
 {
 	ulong addr = load_addr, dest = 0;
-	ulong data, len, checksum;
+	ulong data, len;
 	ulong *len_ptr;
 	int i, verify, part = 0;
 	char pbuf[10], *s;
-	image_header_t header;
+	image_header_t *hdr;
 
-	s = getenv("verify");
-	verify = (s && (*s == 'n')) ? 0 : 1;
+	verify = getenv_verify ();
 
 	if (argc > 1) {
 		addr = simple_strtoul(argv[1], NULL, 16);
@@ -59,50 +58,41 @@
 
 	printf("## Copying from image at %08lx ...\n", addr);
 
-	/* Copy header so we can blank CRC field for re-calculation */
-	memmove(&header, (char *) addr, sizeof (image_header_t));
+	hdr = (image_header_t *)addr;
 
-	if (ntohl(header.ih_magic) != IH_MAGIC) {
+	if (!image_check_magic (hdr)) {
 		printf("Bad Magic Number\n");
 		return 1;
 	}
 
-	data = (ulong) & header;
-	len = sizeof (image_header_t);
-
-	checksum = ntohl(header.ih_hcrc);
-	header.ih_hcrc = 0;
-
-	if (crc32(0, (char *) data, len) != checksum) {
+	if (!image_check_hcrc (hdr)) {
 		printf("Bad Header Checksum\n");
 		return 1;
 	}
 #ifdef DEBUG
-	print_image_hdr((image_header_t *) addr);
+	print_image_hdr (hdr);
 #endif
 
-	data = addr + sizeof (image_header_t);
-	len = ntohl(header.ih_size);
-
-	if (header.ih_type != IH_TYPE_MULTI) {
+	if (!image_check_type (hdr, IH_TYPE_MULTI)) {
 		printf("Wrong Image Type for %s command\n", cmdtp->name);
 		return 1;
 	}
 
-	if (header.ih_comp != IH_COMP_NONE) {
+	if (image_get_comp (hdr) != IH_COMP_NONE) {
 		printf("Wrong Compression Type for %s command\n", cmdtp->name);
 		return 1;
 	}
 
 	if (verify) {
 		printf("   Verifying Checksum ... ");
-		if (crc32(0, (char *) data, len) != ntohl(header.ih_dcrc)) {
+		if (!image_check_dcrc (hdr)) {
 			printf("Bad Data CRC\n");
 			return 1;
 		}
 		printf("OK\n");
 	}
 
+	data = image_get_data (hdr);
 	len_ptr = (ulong *) data;
 
 	data += 4;		/* terminator */
@@ -110,7 +100,7 @@
 		data += 4;
 		if (argc > 2 && part > i) {
 			u_long tail;
-			len = ntohl(len_ptr[i]);
+			len = image_to_cpu (len_ptr[i]);
 			tail = len % 4;
 			data += len;
 			if (tail) {
@@ -122,7 +112,7 @@
 		printf("Bad Image Part\n");
 		return 1;
 	}
-	len = ntohl(len_ptr[part]);
+	len = image_to_cpu (len_ptr[part]);
 
 	if (argc > 3) {
 		memcpy((char *) dest, (char *) data, len);