wok-current annotate linux/stuff/linux-lzma-export.u @ rev 310

Linux: export unlzma
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Mar 02 20:47:57 2008 +0000 (2008-03-02)
parents
children 28bd53ce3a11
rev   line source
pascal@310 1 --- linux-2.6.24.2/lib/decompress_unlzma.c
pascal@310 2 +++ linux-2.6.24.2/lib/decompress_unlzma.c
pascal@310 3 @@ -321,7 +321,7 @@ typedef struct {
pascal@310 4 #define LZMA_LITERAL (LZMA_REP_LEN_CODER + LZMA_NUM_LEN_PROBS)
pascal@310 5
pascal@310 6
pascal@310 7 -STATIC int unlzma(char *inbuf, int in_len,
pascal@310 8 +int unlzma(char *inbuf, int in_len,
pascal@310 9 int(*fill)(void*,unsigned int),
pascal@310 10 int(*writebb)(char*,unsigned int),
pascal@310 11 int *posp)
pascal@310 12 @@ -348,10 +348,21 @@ STATIC int unlzma(char *inbuf, int in_le
pascal@310 13
pascal@310 14 rc_init(&rc, fill, inbuf, in_len);
pascal@310 15
pascal@310 16 - for (i = 0; i < sizeof(header); i++) {
pascal@310 17 - if (rc.ptr >= rc.buffer_end)
pascal@310 18 - rc_read(&rc);
pascal@310 19 - ((unsigned char *)&header)[i] = *rc.ptr++;
pascal@310 20 + header.dict_size = header.dst_size = in_len;
pascal@310 21 + if (inbuf && inbuf[0] == 0) {
pascal@310 22 + const LZMA_LC = 3, LZMA_LP = 0, LZMA_PB = 2;
pascal@310 23 + header.pos = (LZMA_PB * 45) + (LZMA_LP * 5) + LZMA_LC;
pascal@310 24 + rc.ptr++;
pascal@310 25 + }
pascal@310 26 + else {
pascal@310 27 + int hdrsize = sizeof(header);
pascal@310 28 + if (inbuf && (1 + * (unsigned long *) &inbuf[9]) > 1U)
pascal@310 29 + hdrsize = 5;
pascal@310 30 + for (i = 0; i < hdrsize; i++) {
pascal@310 31 + if (rc.ptr >= rc.buffer_end)
pascal@310 32 + rc_read(&rc);
pascal@310 33 + ((unsigned char *)&header)[i] = *rc.ptr++;
pascal@310 34 + }
pascal@310 35 }
pascal@310 36
pascal@310 37 if (header.pos >= (9 * 5 * 5))
pascal@310 38
pascal@310 39 --- linux-2.6.24.2/lib/Makefile
pascal@310 40 +++ linux-2.6.24.2/lib/Makefile
pascal@310 41 @@ -51,7 +51,7 @@ obj-$(CONFIG_LIBCRC32C) += libcrc32c.o
pascal@310 42 obj-$(CONFIG_GENERIC_ALLOCATOR) += genalloc.o
pascal@310 43
pascal@310 44 obj-$(CONFIG_RD_BZIP2) += decompress_bunzip2.o
pascal@310 45 -obj-$(CONFIG_RD_LZMA) += decompress_unlzma.o
pascal@310 46 +obj-$(CONFIG_RD_LZMA) += decompress_unlzma.o unlzma_syms.o
pascal@310 47
pascal@310 48
pascal@310 49 obj-$(CONFIG_ZLIB_INFLATE) += zlib_inflate/
pascal@310 50
pascal@310 51 --- linux-2.6.24.2/lib/unlzma_syms.c
pascal@310 52 +++ linux-2.6.24.2/lib/unlzma_syms.c
pascal@310 53 @@ -0,0 +1,14 @@
pascal@310 54 +/*
pascal@310 55 + * linux/lib/unlzma_syms.c
pascal@310 56 + *
pascal@310 57 + * Exported symbols for the unlzma functionality.
pascal@310 58 + *
pascal@310 59 + */
pascal@310 60 +
pascal@310 61 +#include <linux/module.h>
pascal@310 62 +#include <linux/init.h>
pascal@310 63 +
pascal@310 64 +#include <linux/decompress_unlzma.h>
pascal@310 65 +
pascal@310 66 +EXPORT_SYMBOL(unlzma);
pascal@310 67 +MODULE_LICENSE("GPL");