Merge branch 'master' into next
This commit is contained in:
@@ -45,12 +45,14 @@
|
||||
*/
|
||||
|
||||
|
||||
#ifndef STATIC
|
||||
#ifdef STATIC
|
||||
#define PREBOOT
|
||||
#else
|
||||
#include <linux/decompress/bunzip2.h>
|
||||
#endif /* !STATIC */
|
||||
#include <linux/slab.h>
|
||||
#endif /* STATIC */
|
||||
|
||||
#include <linux/decompress/mm.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#ifndef INT_MAX
|
||||
#define INT_MAX 0x7fffffff
|
||||
@@ -681,9 +683,7 @@ STATIC int INIT bunzip2(unsigned char *buf, int len,
|
||||
set_error_fn(error_fn);
|
||||
if (flush)
|
||||
outbuf = malloc(BZIP2_IOBUF_SIZE);
|
||||
else
|
||||
len -= 4; /* Uncompressed size hack active in pre-boot
|
||||
environment */
|
||||
|
||||
if (!outbuf) {
|
||||
error("Could not allocate output bufer");
|
||||
return -1;
|
||||
@@ -733,4 +733,14 @@ exit_0:
|
||||
return i;
|
||||
}
|
||||
|
||||
#define decompress bunzip2
|
||||
#ifdef PREBOOT
|
||||
STATIC int INIT decompress(unsigned char *buf, int len,
|
||||
int(*fill)(void*, unsigned int),
|
||||
int(*flush)(void*, unsigned int),
|
||||
unsigned char *outbuf,
|
||||
int *pos,
|
||||
void(*error_fn)(char *x))
|
||||
{
|
||||
return bunzip2(buf, len - 4, fill, flush, outbuf, pos, error_fn);
|
||||
}
|
||||
#endif
|
||||
|
@@ -19,13 +19,13 @@
|
||||
#include "zlib_inflate/inflate.h"
|
||||
|
||||
#include "zlib_inflate/infutil.h"
|
||||
#include <linux/slab.h>
|
||||
|
||||
#endif /* STATIC */
|
||||
|
||||
#include <linux/decompress/mm.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#define INBUF_LEN (16*1024)
|
||||
#define GZIP_IOBUF_SIZE (16*1024)
|
||||
|
||||
/* Included from initramfs et al code */
|
||||
STATIC int INIT gunzip(unsigned char *buf, int len,
|
||||
@@ -55,7 +55,7 @@ STATIC int INIT gunzip(unsigned char *buf, int len,
|
||||
if (buf)
|
||||
zbuf = buf;
|
||||
else {
|
||||
zbuf = malloc(INBUF_LEN);
|
||||
zbuf = malloc(GZIP_IOBUF_SIZE);
|
||||
len = 0;
|
||||
}
|
||||
if (!zbuf) {
|
||||
@@ -77,7 +77,7 @@ STATIC int INIT gunzip(unsigned char *buf, int len,
|
||||
}
|
||||
|
||||
if (len == 0)
|
||||
len = fill(zbuf, INBUF_LEN);
|
||||
len = fill(zbuf, GZIP_IOBUF_SIZE);
|
||||
|
||||
/* verify the gzip header */
|
||||
if (len < 10 ||
|
||||
@@ -113,7 +113,7 @@ STATIC int INIT gunzip(unsigned char *buf, int len,
|
||||
while (rc == Z_OK) {
|
||||
if (strm->avail_in == 0) {
|
||||
/* TODO: handle case where both pos and fill are set */
|
||||
len = fill(zbuf, INBUF_LEN);
|
||||
len = fill(zbuf, GZIP_IOBUF_SIZE);
|
||||
if (len < 0) {
|
||||
rc = -1;
|
||||
error("read error");
|
||||
|
@@ -29,12 +29,14 @@
|
||||
*Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef STATIC
|
||||
#ifdef STATIC
|
||||
#define PREBOOT
|
||||
#else
|
||||
#include <linux/decompress/unlzma.h>
|
||||
#include <linux/slab.h>
|
||||
#endif /* STATIC */
|
||||
|
||||
#include <linux/decompress/mm.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
|
||||
|
||||
@@ -543,9 +545,7 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len,
|
||||
int ret = -1;
|
||||
|
||||
set_error_fn(error_fn);
|
||||
if (!flush)
|
||||
in_len -= 4; /* Uncompressed size hack active in pre-boot
|
||||
environment */
|
||||
|
||||
if (buf)
|
||||
inbuf = buf;
|
||||
else
|
||||
@@ -645,4 +645,15 @@ exit_0:
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define decompress unlzma
|
||||
#ifdef PREBOOT
|
||||
STATIC int INIT decompress(unsigned char *buf, int in_len,
|
||||
int(*fill)(void*, unsigned int),
|
||||
int(*flush)(void*, unsigned int),
|
||||
unsigned char *output,
|
||||
int *posp,
|
||||
void(*error_fn)(char *x)
|
||||
)
|
||||
{
|
||||
return unlzma(buf, in_len - 4, fill, flush, output, posp, error_fn);
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user