Commit c9fbb54a authored by Andries E. Brouwer's avatar Andries E. Brouwer Committed by Linus Torvalds

[PATCH] __init for inflate.c

In do_mounts_rd.c and initramfs.c there are many references
from .text to .text.init because of the inclusion of lib/inflate.c.
The below adds INIT markup in lib/inflate.c.
parent 07741cd4
...@@ -309,14 +309,15 @@ static int crd_infd, crd_outfd; ...@@ -309,14 +309,15 @@ static int crd_infd, crd_outfd;
#define Tracecv(c,x) #define Tracecv(c,x)
#define STATIC static #define STATIC static
#define INIT __init
static int fill_inbuf(void);
static void flush_window(void); static int __init fill_inbuf(void);
static void *malloc(size_t size); static void __init flush_window(void);
static void free(void *where); static void __init *malloc(size_t size);
static void error(char *m); static void __init free(void *where);
static void gzip_mark(void **); static void __init error(char *m);
static void gzip_release(void **); static void __init gzip_mark(void **);
static void __init gzip_release(void **);
#include "../lib/inflate.c" #include "../lib/inflate.c"
......
...@@ -372,11 +372,12 @@ static long bytes_out; ...@@ -372,11 +372,12 @@ static long bytes_out;
#define Tracecv(c,x) #define Tracecv(c,x)
#define STATIC static #define STATIC static
#define INIT __init
static void flush_window(void); static void __init flush_window(void);
static void error(char *m); static void __init error(char *m);
static void gzip_mark(void **); static void __init gzip_mark(void **);
static void gzip_release(void **); static void __init gzip_release(void **);
#include "../lib/inflate.c" #include "../lib/inflate.c"
......
...@@ -119,6 +119,10 @@ static char rcsid[] = "#Id: inflate.c,v 0.14 1993/06/10 13:27:04 jloup Exp #"; ...@@ -119,6 +119,10 @@ static char rcsid[] = "#Id: inflate.c,v 0.14 1993/06/10 13:27:04 jloup Exp #";
#define STATIC #define STATIC
#endif /* !STATIC */ #endif /* !STATIC */
#ifndef INIT
#define INIT
#endif
#define slide window #define slide window
/* Huffman code lookup table entry--this entry is four bytes for machines /* Huffman code lookup table entry--this entry is four bytes for machines
...@@ -139,15 +143,15 @@ struct huft { ...@@ -139,15 +143,15 @@ struct huft {
/* Function prototypes */ /* Function prototypes */
STATIC int huft_build OF((unsigned *, unsigned, unsigned, STATIC int INIT huft_build OF((unsigned *, unsigned, unsigned,
const ush *, const ush *, struct huft **, int *)); const ush *, const ush *, struct huft **, int *));
STATIC int huft_free OF((struct huft *)); STATIC int INIT huft_free OF((struct huft *));
STATIC int inflate_codes OF((struct huft *, struct huft *, int, int)); STATIC int INIT inflate_codes OF((struct huft *, struct huft *, int, int));
STATIC int inflate_stored OF((void)); STATIC int INIT inflate_stored OF((void));
STATIC int inflate_fixed OF((void)); STATIC int INIT inflate_fixed OF((void));
STATIC int inflate_dynamic OF((void)); STATIC int INIT inflate_dynamic OF((void));
STATIC int inflate_block OF((int *)); STATIC int INIT inflate_block OF((int *));
STATIC int inflate OF((void)); STATIC int INIT inflate OF((void));
/* The inflate algorithm uses a sliding 32 K byte window on the uncompressed /* The inflate algorithm uses a sliding 32 K byte window on the uncompressed
...@@ -272,7 +276,7 @@ STATIC const int dbits = 6; /* bits in base distance lookup table */ ...@@ -272,7 +276,7 @@ STATIC const int dbits = 6; /* bits in base distance lookup table */
STATIC unsigned hufts; /* track memory usage */ STATIC unsigned hufts; /* track memory usage */
STATIC int huft_build( STATIC int INIT huft_build(
unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ unsigned *b, /* code lengths in bits (all assumed <= BMAX) */
unsigned n, /* number of codes (assumed <= N_MAX) */ unsigned n, /* number of codes (assumed <= N_MAX) */
unsigned s, /* number of simple-valued codes (0..s-1) */ unsigned s, /* number of simple-valued codes (0..s-1) */
...@@ -491,7 +495,7 @@ DEBG("huft7 "); ...@@ -491,7 +495,7 @@ DEBG("huft7 ");
STATIC int huft_free( STATIC int INIT huft_free(
struct huft *t /* table to free */ struct huft *t /* table to free */
) )
/* Free the malloc'ed tables built by huft_build(), which makes a linked /* Free the malloc'ed tables built by huft_build(), which makes a linked
...@@ -513,7 +517,7 @@ STATIC int huft_free( ...@@ -513,7 +517,7 @@ STATIC int huft_free(
} }
STATIC int inflate_codes( STATIC int INIT inflate_codes(
struct huft *tl, /* literal/length decoder tables */ struct huft *tl, /* literal/length decoder tables */
struct huft *td, /* distance decoder tables */ struct huft *td, /* distance decoder tables */
int bl, /* number of bits decoded by tl[] */ int bl, /* number of bits decoded by tl[] */
...@@ -628,7 +632,7 @@ STATIC int inflate_codes( ...@@ -628,7 +632,7 @@ STATIC int inflate_codes(
STATIC int inflate_stored(void) STATIC int INIT inflate_stored(void)
/* "decompress" an inflated type 0 (stored) block. */ /* "decompress" an inflated type 0 (stored) block. */
{ {
unsigned n; /* number of bytes in block */ unsigned n; /* number of bytes in block */
...@@ -689,7 +693,7 @@ DEBG("<stor"); ...@@ -689,7 +693,7 @@ DEBG("<stor");
/* /*
* We use `noinline' here to prevent gcc-3.5 from using too much stack space * We use `noinline' here to prevent gcc-3.5 from using too much stack space
*/ */
STATIC int noinline inflate_fixed(void) STATIC int noinline INIT inflate_fixed(void)
/* decompress an inflated type 1 (fixed Huffman codes) block. We should /* decompress an inflated type 1 (fixed Huffman codes) block. We should
either replace this with a custom decoder, or at least precompute the either replace this with a custom decoder, or at least precompute the
Huffman tables. */ Huffman tables. */
...@@ -745,7 +749,7 @@ DEBG("<fix"); ...@@ -745,7 +749,7 @@ DEBG("<fix");
/* /*
* We use `noinline' here to prevent gcc-3.5 from using too much stack space * We use `noinline' here to prevent gcc-3.5 from using too much stack space
*/ */
STATIC int noinline inflate_dynamic(void) STATIC int noinline INIT inflate_dynamic(void)
/* decompress an inflated type 2 (dynamic Huffman codes) block. */ /* decompress an inflated type 2 (dynamic Huffman codes) block. */
{ {
int i; /* temporary variables */ int i; /* temporary variables */
...@@ -926,7 +930,7 @@ DEBG("dyn7 "); ...@@ -926,7 +930,7 @@ DEBG("dyn7 ");
STATIC int inflate_block( STATIC int INIT inflate_block(
int *e /* last block flag */ int *e /* last block flag */
) )
/* decompress an inflated block */ /* decompress an inflated block */
...@@ -977,7 +981,7 @@ STATIC int inflate_block( ...@@ -977,7 +981,7 @@ STATIC int inflate_block(
STATIC int inflate(void) STATIC int INIT inflate(void)
/* decompress an inflated entry */ /* decompress an inflated entry */
{ {
int e; /* last block flag */ int e; /* last block flag */
...@@ -1039,7 +1043,7 @@ static ulg crc; /* initialized in makecrc() so it'll reside in bss */ ...@@ -1039,7 +1043,7 @@ static ulg crc; /* initialized in makecrc() so it'll reside in bss */
* gzip-1.0.3/makecrc.c. * gzip-1.0.3/makecrc.c.
*/ */
static void static void INIT
makecrc(void) makecrc(void)
{ {
/* Not copyrighted 1990 Mark Adler */ /* Not copyrighted 1990 Mark Adler */
...@@ -1087,7 +1091,7 @@ makecrc(void) ...@@ -1087,7 +1091,7 @@ makecrc(void)
/* /*
* Do the uncompression! * Do the uncompression!
*/ */
static int gunzip(void) static int INIT gunzip(void)
{ {
uch flags; uch flags;
unsigned char magic[2]; /* magic header */ unsigned char magic[2]; /* magic header */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment