summaryrefslogtreecommitdiffstats
path: root/src/gzip.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gzip.h')
-rw-r--r--src/gzip.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/gzip.h b/src/gzip.h
index 7c81463..e4c3f52 100644
--- a/src/gzip.h
+++ b/src/gzip.h
@@ -24,12 +24,44 @@ struct opkg_opk_gzip;
typedef int (opkg_opk_gzip_read_func)(void *, char **, size_t *);
+/*
+ * Allocates and initializes a decompression structure.
+ * Parameters:
+ * - read: Function to read compressed data. Parameter 1 is user_data,
+ * parameter 2 is an address in which the read function should
+ * store an address to compressed data, and parameter 3 is an
+ * address in which the read function should store the size of read
+ * compressed data. Should return OPKG_OPK_OK if data is read,
+ * OPKG_OPK_END if no more data is available (end of file or
+ * archive), or OPKG_OPK_ERROR on error.
+ * - user_data: Passed to read function.
+ * Returns:
+ * - Allocated decompression structure on success. Free with
+ * opkg_opk_gzip_free().
+ * - NULL on memory exhaustion.
+ */
struct opkg_opk_gzip *
opkg_opk_gzip_init(opkg_opk_gzip_read_func *read, void *user_data);
+/*
+ * Reads and decompresses data to output the next record (512 octets).
+ * Parameters:
+ * - gzip: Decompression structure.
+ * - record: Address in which to store decompressed record.
+ * Returns:
+ * - OPKG_OPK_OK if a record is read and decompressed.
+ * - OPKG_OPK_END if the end of the gzip stream is reached.
+ * - OPKG_OPK_ERROR if the read function returned an error, the compressed input
+ * data or gzip stream end prematurely, or zlib returns an error.
+ */
int
opkg_opk_gzip_read(struct opkg_opk_gzip *gzip, void *record);
+/*
+ * Frees a decompression structure.
+ * Parameters:
+ * - gzip: Decompression structure.
+ */
void
opkg_opk_gzip_free(struct opkg_opk_gzip *gzip);