diff options
Diffstat (limited to 'src/ustar.h')
-rw-r--r-- | src/ustar.h | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/src/ustar.h b/src/ustar.h deleted file mode 100644 index 4a3dc1a..0000000 --- a/src/ustar.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2023 Patrick McDermott - * - * This file is part of opkg-opk. - * - * opkg-opk is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * opkg-opk is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with opkg-opk. If not, see <https://www.gnu.org/licenses/>. - */ - -#ifndef OPKG_OPK_USTAR_H_ -#define OPKG_OPK_USTAR_H_ - -#include <stdint.h> -#include "dirent.h" -#include "gzip.h" - -#define OPKG_OPK_USTAR_RECORD_SIZE 512 -#define OPKG_OPK_USTAR_NAME_SIZE 257 /* prefix[155] + '/' + name[100] - + '\0' */ -#define OPKG_OPK_USTAR_LINKNAME_SIZE 101 /* linkname[100] + '\0' */ - -struct opkg_opk_ustar; - -struct opkg_opk_ustar_member { - char name [OPKG_OPK_USTAR_NAME_SIZE]; - uint16_t mode; - uint64_t size; - uint64_t mtime; - char type; - char linkname[OPKG_OPK_USTAR_LINKNAME_SIZE]; - char uname [32]; - char gname [32]; - uint32_t devmajor; - uint32_t devminor; - struct opkg_opk_ustar_member *next; -}; - -struct opkg_opk_ustar_seek_name; - -/* - * 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); - -/* - * 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. May be NULL. Do - * not free. - * - size: Address in which to store size of read data. May be NULL. - * 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); - -int -opkg_opk_ustar_write_header(struct opkg_opk_ustar *ustar, - struct opkg_opk_dirent *dirent, uint16_t mode, - uid_t uid, const char *uname, gid_t gid, const char *gname, - uint32_t devmajor, uint32_t devminor, - uint64_t size, uint64_t mtime, char type, const char *linkname); - -int -opkg_opk_ustar_get_buffer(struct opkg_opk_ustar *ustar, char **buffer, - size_t *size); - -int -opkg_opk_ustar_write_data(struct opkg_opk_ustar *ustar, size_t size); - -int -opkg_opk_ustar_write_trailer(struct opkg_opk_ustar *ustar); - -/* - * Frees an archive structure. - * Parameters: - * - ustar: Archive structure. - */ -void -opkg_opk_ustar_free(struct opkg_opk_ustar *ustar); - -#endif /* OPKG_OPK_USTAR_H_ */ |