49 struct image *extracted ) {
68 deflate_chunk_init ( &
out, extracted->
rwdata, 0,
74 DBGC ( extracted,
"ZLIB %s could not decompress: %s\n",
81 DBGC ( extracted,
"ZLIB %s decompression incomplete\n",
88 if (
out.offset == extracted->
len )
93 DBGC ( extracted,
"ZLIB %s could not resize: %s\n",
#define EINVAL
Invalid argument.
struct arbelprm_rc_send_wqe rc
struct image_type zlib_image_type __image_type(PROBE_NORMAL)
zlib image type
const void * data
Read-only data.
uint16_t magic
Magic signature.
#define ENOEXEC
Exec format error.
An executable image type.
#define PROBE_NORMAL
Normal image probe priority.
char * name
Name of this image type.
static int zlib_extract(struct image *image, struct image *extracted)
Extract zlib image.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
#define ENOMEM
Not enough space.
void deflate_init(struct deflate *deflate, enum deflate_format format)
Initialise decompressor.
static int deflate_finished(struct deflate *deflate)
Check if decompression has finished.
static int zlib_magic_is_valid(const union zlib_magic *magic)
Check that zlib magic header is valid.
char * strerror(int errno)
Retrieve string representation of error number.
static void(* free)(struct refcnt *refcnt))
deflate_format
Compression formats.
void * zalloc(size_t size)
Allocate cleared memory.
size_t len
Length of raw file image.
int deflate_inflate(struct deflate *deflate, const void *data, size_t len, struct deflate_chunk *out)
Inflate compressed data.
int image_set_len(struct image *image, size_t len)
Set image length.
static int zlib_probe(struct image *image)
Probe zlib image.
void * rwdata
Writable data.
uint8_t data[48]
Additional event data.
int zlib_deflate(enum deflate_format format, const void *data, size_t len, struct image *extracted)
Extract compressed data to image.
DEFLATE decompression algorithm.
int image_extract_exec(struct image *image)
Extract and execute image.