50 struct image *extracted ) {
69 deflate_chunk_init ( &
out, extracted->
rwdata, 0,
75 DBGC ( extracted,
"ZLIB %s could not decompress: %s\n",
82 DBGC ( extracted,
"ZLIB %s decompression incomplete\n",
89 if (
out.offset == extracted->
len )
94 DBGC ( extracted,
"ZLIB %s could not resize: %s\n",
struct arbelprm_rc_send_wqe rc
int image_extract_exec(struct image *image)
Extract and execute image.
uint16_t magic
Magic signature.
void deflate_init(struct deflate *deflate, enum deflate_format format)
Initialise decompressor.
int deflate_inflate(struct deflate *deflate, const void *data, size_t len, struct deflate_chunk *out)
Inflate compressed data.
DEFLATE decompression algorithm.
static int deflate_finished(struct deflate *deflate)
Check if decompression has finished.
deflate_format
Compression formats.
@ DEFLATE_ZLIB
ZLIB header and footer.
uint8_t data[48]
Additional event data.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define EINVAL
Invalid argument.
#define ENOEXEC
Exec format error.
#define ENOMEM
Not enough space.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
int image_set_len(struct image *image, size_t len)
Set image length.
#define PROBE_NORMAL
Normal image probe priority.
#define __image_type(probe_order)
An executable image type.
void * zalloc(size_t size)
Allocate cleared memory.
static void(* free)(struct refcnt *refcnt))
char * strerror(int errno)
Retrieve string representation of error number.
An executable image type.
const void * data
Read-only data.
size_t len
Length of raw file image.
void * rwdata
Writable data.
static int zlib_probe(struct image *image)
Probe zlib image.
int zlib_deflate(enum deflate_format format, const void *data, size_t len, struct image *extracted)
Extract compressed data to image.
static int zlib_extract(struct image *image, struct image *extracted)
Extract zlib image.
static int zlib_magic_is_valid(const union zlib_magic *magic)
Check that zlib magic header is valid.