summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/opk.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/opk.h b/src/opk.h
index 1b7e681..8a8cc54 100644
--- a/src/opk.h
+++ b/src/opk.h
@@ -24,22 +24,77 @@
struct opkg_opk_opk;
+/*
+ * Allocates and initializes a package structure.
+ * Parameters:
+ * - file_name: Package's file name.
+ * Returns:
+ * - Allocated package structure on success. Free with
+ * opkg_opk_opk_free_outer().
+ * - NULL on memory exhaustion.
+ */
struct opkg_opk_opk *
opkg_opk_opk_init_outer(const char *file_name);
+/*
+ * Initializes an inner archive of a package. Free with
+ * opkg_opk_opk_free_outer(). May be called again after freeing.
+ * Parameters:
+ * - opk: Package structure.
+ * - member: Name of member file to find and prepare to read. Should be either
+ * "control.tar.gz" or "data.tar.gz", in that order if both are to be read.
+ * Returns:
+ * - OPKG_OPK_OK if the inner archive is found and initialized.
+ * - OPKG_OPK_ERROR if no matching member is found or on decompression error,
+ * premature end of gzip stream, an invalid header, unsupported file type, or
+ * memory exhaustion.
+ */
int
opkg_opk_opk_init_inner(struct opkg_opk_opk *opk, const char *member);
+/*
+ * Reads and prints all specified control files.
+ * Parameters:
+ * - opk: Package structure.
+ * - names: List of control file names to read.
+ * Returns:
+ * - OPKG_OPK_OK if all control files are found, read, and printed.
+ * - OPKG_OPK_ERROR if any control file is not found or on decompression error,
+ * premature end of gzip stream, an invalid header, unsupported file type, or
+ * error writing to standard output.
+ */
int
opkg_opk_opk_read_control(struct opkg_opk_opk *opk,
struct opkg_opk_ustar_seek_name *names);
+/*
+ * Lists and prints all data files.
+ * Parameters:
+ * - opk: Package structure.
+ * Returns:
+ * - OPKG_OPK_OK if all data files are listed and printed.
+ * - OPKG_OPK_ERROR on decompression error, memory exhaustion, mode or mtime
+ * integer conversion error, unsupported file type, or error writing to
+ * standard output.
+ */
int
opkg_opk_opk_list_members(struct opkg_opk_opk *opk);
+/*
+ * Frees a package structure's inner archive. Call before
+ * opkg_opk_opk_free_outer() if a opkg_opk_opk_init_inner() call succeeds.
+ * Parameters:
+ * - opk: Package structure.
+ */
void
opkg_opk_opk_free_inner(struct opkg_opk_opk *opk);
+/*
+ * Frees a package structure. Call opkg_opk_opk_free_inner() first after a
+ * successful opkg_opk_opk_init_inner() call.
+ * Parameters:
+ * - opk: Package structure.
+ */
void
opkg_opk_opk_free_outer(struct opkg_opk_opk *opk);