[PATCH] ppc64 boot: move gunzip function before use
authorOlaf Hering <olh@suse.de>
Sat, 29 Oct 2005 00:46:41 +0000 (17:46 -0700)
committerPaul Mackerras <paulus@samba.org>
Sat, 29 Oct 2005 05:05:43 +0000 (15:05 +1000)
Move the gunzip function up.

Signed-off-by: Olaf Hering <olh@suse.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Anton Blanchard <anton@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/ppc64/boot/main.c

index 7485dcbf80bc7780788b9db07654789266533f8d..d039c47f8e5a0d3be83b68c422498b2928dedd26 100644 (file)
@@ -17,7 +17,6 @@
 #include "prom.h"
 #include "zlib.h"
 
-static void gunzip(void *, int, unsigned char *, int *);
 extern void flush_cache(void *, unsigned long);
 
 
@@ -56,6 +55,63 @@ typedef void (*kernel_entry_t)( unsigned long,
 
 static unsigned long claim_base;
 
+#define HEAD_CRC       2
+#define EXTRA_FIELD    4
+#define ORIG_NAME      8
+#define COMMENT                0x10
+#define RESERVED       0xe0
+
+static void gunzip(void *dst, int dstlen, unsigned char *src, int *lenp)
+{
+       z_stream s;
+       int r, i, flags;
+
+       /* skip header */
+       i = 10;
+       flags = src[3];
+       if (src[2] != Z_DEFLATED || (flags & RESERVED) != 0) {
+               printf("bad gzipped data\n\r");
+               exit();
+       }
+       if ((flags & EXTRA_FIELD) != 0)
+               i = 12 + src[10] + (src[11] << 8);
+       if ((flags & ORIG_NAME) != 0)
+               while (src[i++] != 0)
+                       ;
+       if ((flags & COMMENT) != 0)
+               while (src[i++] != 0)
+                       ;
+       if ((flags & HEAD_CRC) != 0)
+               i += 2;
+       if (i >= *lenp) {
+               printf("gunzip: ran out of data in header\n\r");
+               exit();
+       }
+
+       if (zlib_inflate_workspacesize() > sizeof(scratch)) {
+               printf("gunzip needs more mem\n");
+               exit();
+       }
+       memset(&s, 0, sizeof(s));
+       s.workspace = scratch;
+       r = zlib_inflateInit2(&s, -MAX_WBITS);
+       if (r != Z_OK) {
+               printf("inflateInit2 returned %d\n\r", r);
+               exit();
+       }
+       s.next_in = src + i;
+       s.avail_in = *lenp - i;
+       s.next_out = dst;
+       s.avail_out = dstlen;
+       r = zlib_inflate(&s, Z_FULL_FLUSH);
+       if (r != Z_OK && r != Z_STREAM_END) {
+               printf("inflate returned %d msg: %s\n\r", r, s.msg);
+               exit();
+       }
+       *lenp = s.next_out - (unsigned char *) dst;
+       zlib_inflateEnd(&s);
+}
+
 static unsigned long try_claim(unsigned long size)
 {
        unsigned long addr = 0;
@@ -213,60 +269,3 @@ void start(unsigned long a1, unsigned long a2, void *promptr)
        exit();
 }
 
-#define HEAD_CRC       2
-#define EXTRA_FIELD    4
-#define ORIG_NAME      8
-#define COMMENT                0x10
-#define RESERVED       0xe0
-
-static void gunzip(void *dst, int dstlen, unsigned char *src, int *lenp)
-{
-       z_stream s;
-       int r, i, flags;
-
-       /* skip header */
-       i = 10;
-       flags = src[3];
-       if (src[2] != Z_DEFLATED || (flags & RESERVED) != 0) {
-               printf("bad gzipped data\n\r");
-               exit();
-       }
-       if ((flags & EXTRA_FIELD) != 0)
-               i = 12 + src[10] + (src[11] << 8);
-       if ((flags & ORIG_NAME) != 0)
-               while (src[i++] != 0)
-                       ;
-       if ((flags & COMMENT) != 0)
-               while (src[i++] != 0)
-                       ;
-       if ((flags & HEAD_CRC) != 0)
-               i += 2;
-       if (i >= *lenp) {
-               printf("gunzip: ran out of data in header\n\r");
-               exit();
-       }
-
-       if (zlib_inflate_workspacesize() > sizeof(scratch)) {
-               printf("gunzip needs more mem\n");
-               exit();
-       }
-       memset(&s, 0, sizeof(s));
-       s.workspace = scratch;
-       r = zlib_inflateInit2(&s, -MAX_WBITS);
-       if (r != Z_OK) {
-               printf("inflateInit2 returned %d\n\r", r);
-               exit();
-       }
-       s.next_in = src + i;
-       s.avail_in = *lenp - i;
-       s.next_out = dst;
-       s.avail_out = dstlen;
-       r = zlib_inflate(&s, Z_FULL_FLUSH);
-       if (r != Z_OK && r != Z_STREAM_END) {
-               printf("inflate returned %d msg: %s\n\r", r, s.msg);
-               exit();
-       }
-       *lenp = s.next_out - (unsigned char *) dst;
-       zlib_inflateEnd(&s);
-}
-