/* voc 2.1.0 [2025/05/18] for gcc LP64 on slackware xtspaF */

#ifndef ethZip__h
#define ethZip__h

#include "SYSTEM.h"
#include "Files.h"

typedef
	struct ethZip_ArchiveDesc *ethZip_Archive;

typedef
	struct ethZip_ArchiveDesc {
		INT16 nofEntries;
		struct {
			ADDRESS len[1];
			CHAR data[1];
		} *comment;
		char _prvt0[32];
	} ethZip_ArchiveDesc;

typedef
	struct ethZip_EntryDesc *ethZip_Entry;

typedef
	struct ethZip_EntryDesc {
		CHAR name[256];
		char _prvt0[4];
		INT32 time, date;
		char _prvt1[4];
		INT32 compSize, uncompSize;
		char _prvt2[16];
		struct {
			ADDRESS len[1];
			CHAR data[1];
		} *comment;
		char _prvt3[24];
	} ethZip_EntryDesc;

typedef
	struct ethZip_ReaderDesc *ethZip_Reader;

typedef
	struct ethZip_ReaderDesc {
		INT32 res;
		INT64 _prvt0;
	} ethZip_ReaderDesc;



import ADDRESS *ethZip_EntryDesc__typ;
import ADDRESS *ethZip_ArchiveDesc__typ;
import ADDRESS *ethZip_ReaderDesc__typ;

import void ethZip_AddEntry (ethZip_Archive arc, CHAR *name, ADDRESS name__len, Files_Rider *src, ADDRESS *src__typ, INT32 len, INT8 level, INT8 strategy, INT32 *res);
import void ethZip_Close (ethZip_Reader r);
import ethZip_Archive ethZip_CreateArchive (CHAR *name, ADDRESS name__len, INT32 *res);
import void ethZip_DeleteEntry (ethZip_Archive arc, ethZip_Entry *ent, INT32 *res);
import void ethZip_ExtractEntry (ethZip_Archive arc, ethZip_Entry ent, Files_Rider *dst, ADDRESS *dst__typ, INT32 *res);
import ethZip_Entry ethZip_FirstEntry (ethZip_Archive arc);
import ethZip_Entry ethZip_GetEntry (ethZip_Archive arc, CHAR *name, ADDRESS name__len, INT32 *res);
import ethZip_Entry ethZip_NextEntry (ethZip_Entry ent);
import ethZip_Archive ethZip_OpenArchive (CHAR *name, ADDRESS name__len, INT32 *res);
import ethZip_Reader ethZip_OpenReader (ethZip_Archive arc, ethZip_Entry ent);
import void ethZip_Read (ethZip_Reader r, CHAR *ch);
import void ethZip_ReadBytes (ethZip_Reader r, CHAR *buf, ADDRESS buf__len, INT32 offset, INT32 len, INT32 *read);
import void *ethZip__init(void);


#endif // ethZip
