summaryrefslogtreecommitdiff
path: root/kexec/kexec-lzma.h
blob: c78cdf7ba8b3d11434802e1bec18438a921bdd51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef __KEXEC_LZMA_H
#define __KEXEC_LZMA_H

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <inttypes.h>
#include <lzma.h>

#include "config.h"

#ifdef HAVE_LIBLZMA
#define kBufferSize (1 << 15)

typedef struct lzfile {
	uint8_t buf[kBufferSize];
	lzma_stream strm;
	FILE *file;
	int encoding;
	int eof;
} LZFILE;

LZFILE *lzopen(const char *path, const char *mode);
int lzclose(LZFILE *lzfile);
ssize_t lzread(LZFILE *lzfile, void *buf, size_t len);
#endif /* HAVE_LIBLZMA */

char *lzma_decompress_file(const char *filename, off_t *r_size);
#endif /* __KEXEC_LZMA_H */