Rev 447 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/** Helper functions to handle compression via UCL** Copyright (C) 2011 Michael Sparmann** Based on: Helper functions to handle compression via zlib** Copyright (C) 2007-2008 Julian Brown* Copyright (C) 2008 Mike Frysinger** Licensed under the GPL-2 or later.*/#ifndef __ELF2FLT_COMPRESS_H__#define __ELF2FLT_COMPRESS_H__//#include <zlib.h>typedef enum{INVALID,UNCOMPRESSED,COMPRESSED} stream_type;/* Tagged union holding either a regular FILE* handle or a zlib gzFilehandle. */typedef struct{stream_type type;const char *mode;FILE *filep;char* buffer;int bufsize;int bufused;// union// {// FILE *filep;// gzFile gzfilep;// } u;} stream;int fopen_stream_u(stream *fp, const char *path, const char *mode);size_t fread_stream(void *ptr, size_t size, size_t nmemb, stream *str);size_t fwrite_stream(const void *ptr, size_t size, size_t nmemb, stream *str);int fclose_stream(stream *str);int ferror_stream(stream *str);int fseek_stream(stream *str, long offset, int whence);void reopen_stream_compressed(stream *str);void transfer(stream *ifp, stream *ofp, int count);#endif