apple2ix/src/zlib-helpers.h

36 lines
1.5 KiB
C

/*
* Apple // emulator for *ix
*
* This software package is subject to the GNU General Public License
* version 3 or later (your choice) as published by the Free Software
* Foundation.
*
* Copyright 2013-2017 Aaron Culliney
*
*/
#ifndef _ZLIB_HELPERS_H_
#define _ZLIB_HELPERS_H_
#include "common.h"
// augmented error codes/strings (not actually from zlib routines)
#define ZERR_UNKNOWN "Unknown zlib error"
#define ZERR_INFLATE_OPEN_DEST "Error opening destination file for inflation"
#define ZERR_INFLATE_WRITE_DEST "Error writing destination file for inflation"
#define ZERR_DEFLATE_OPEN_SOURCE "Error opening source file for deflation"
#define ZERR_DEFLATE_READ_SOURCE "Error reading source file for deflation"
// Inflate/uncompress from file descriptor into previously allocated buffer of expected_bytes length. Underlying file
// can either be gzipped or not. This is meant for readonly disk images.
const char *zlib_inflate_to_buffer(int fd, const unsigned int expected_bytescount, uint8_t *buf);
// Inflate/uncompress from file descriptor back into itself. Underlying file can either be gzipped or not. This is
// meant for read/write disk images.
const char *zlib_inflate_inplace(int fd, const unsigned int expected_bytescount, bool *is_gzipped);
// Deflate/compress from buffer to buffer. This is meant for ejecting read/write disk images.
const char *zlib_deflate_buffer(const uint8_t *src, const unsigned int src_bytescount, uint8_t *dst, OUTPARM off_t *dst_size);
#endif