diff options
Diffstat (limited to 'src/ustar.h')
-rw-r--r-- | src/ustar.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/ustar.h b/src/ustar.h index 388011c..eeca53a 100644 --- a/src/ustar.h +++ b/src/ustar.h @@ -40,19 +40,66 @@ struct opkg_opk_ustar_member { struct opkg_opk_ustar_member *next; }; +/* + * Allocates and initializes an archive structure. + * Parameters: + * - gzip: Decompressor for archive's gzip stream. + * Returns: + * - Allocated archive structure on success. Free with opkg_opk_ustar_free(). + * - NULL on memory exhaustion. + */ struct opkg_opk_ustar * opkg_opk_ustar_init(struct opkg_opk_gzip *gzip); +/* + * Lists member files one at a time. + * Parameters: + * - ustar: Archive structure. + * - member: Address in which to store address of allocated member structure. + * Free with free(). + * Returns: + * - OPKG_OPK_OK if a member was listed. More members may exist. + * - OPKG_OPK_END if no more members exist. Parameter "member" is unchanged. + * - OPKG_OPK_ERROR on decompression error, memory exhaustion, mode or mtime + * integer conversion error, or unsupported file type. + */ int opkg_opk_ustar_list(struct opkg_opk_ustar *ustar, struct opkg_opk_ustar_member **member); +/* + * Advances to a named member file. + * Parameters: + * - ustar: Archive structure. + * - num_keys: Number of search keys to follow. + * - ...: Search keys of type (const char *). + * Returns: + * - OPKG_OPK_OK if a member matching one of the search keys is found. + * - OPKG_OPK_ERROR if no matching member is found or on decompression error, an + * invalid header, or unsupported file type. + */ int opkg_opk_ustar_seek(struct opkg_opk_ustar *ustar, int num_keys, ...); +/* + * Reads up to a record (512 octets) of member file data at a time. + * Parameters: + * - ustar: Archive structure. + * - buffer: Address in which to store address of data buffer. Do not free. + * - size: Address in which to store size of read data. + * Returns: + * - OPKG_OPK_OK if data was read. + * - OPKG_OPK_END if no more data exists. + * - OPKG_OPK_ERROR on decompression error or premature end of gzip stream. + */ int opkg_opk_ustar_read(struct opkg_opk_ustar *ustar, char **buffer, size_t *size); +/* + * Frees an archive structure. + * Parameters: + * - ustar: Archive structure. + */ void opkg_opk_ustar_free(struct opkg_opk_ustar *ustar); |