diff options
Diffstat (limited to 'src/apk_archive.h')
-rw-r--r-- | src/apk_archive.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/apk_archive.h b/src/apk_archive.h new file mode 100644 index 0000000..2e8d274 --- /dev/null +++ b/src/apk_archive.h @@ -0,0 +1,42 @@ +/* apk_archive.c - Alpine Package Keeper (APK) + * + * Copyright (C) 2005-2008 Natanael Copa <n@tanael.org> + * Copyright (C) 2008 Timo Teräs <timo.teras@iki.fi> + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. See http://www.gnu.org/ for details. + */ + +#ifndef APK_ARCHIVE +#define APK_ARCHIVE + +#include <sys/types.h> +#include <pthread.h> +#include "apk_blob.h" + +struct apk_archive_entry { + char *name; + char *link_target; + char *uname; + char *gname; + off_t size; + uid_t uid; + gid_t gid; + mode_t mode; + time_t mtime; + dev_t device; + int read_fd; +}; + +typedef int (*apk_archive_entry_parser)(struct apk_archive_entry *entry, void *ctx); + +pid_t apk_open_gz(int *fd); +int apk_parse_tar(int fd, apk_archive_entry_parser parser, void *ctx); +int apk_parse_tar_gz(int fd, apk_archive_entry_parser parser, void *ctx); +apk_blob_t apk_archive_entry_read(struct apk_archive_entry *ae); +int apk_archive_entry_extract(struct apk_archive_entry *ae, const char *to); +pthread_t apk_checksum_and_tee(int *fd, void *ptr); + +#endif |