summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlexander Shishkin2010-03-15 15:38:09 +0100
committerDenys Vlasenko2010-03-15 15:38:09 +0100
commit535584c750820dd6c36011697f9ef89fe0a0698c (patch)
tree6c682a7a6ca7d740529201c759fa4e64d9622797 /include
parent814da220a5d451c036c9871094253366372676e0 (diff)
downloadbusybox-535584c750820dd6c36011697f9ef89fe0a0698c.zip
busybox-535584c750820dd6c36011697f9ef89fe0a0698c.tar.gz
ar: add archive creation support
function old new delta ar_main 184 542 +358 output_ar_header - 166 +166 copy_data - 54 +54 filter_replaceable - 19 +19 get_header_ar 409 414 +5 header_verbose_list_ar 85 88 +3 static.msg_unsupported_err 28 - -28 ------------------------------------------------------------------------------ (add/remove: 3/1 grow/shrink: 3/0 up/down: 605/-28) Total: 577 bytes Signed-off-by: Alexander Shishkin <virtuoso@slind.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'include')
-rw-r--r--include/ar.h26
-rw-r--r--include/unarchive.h4
2 files changed, 30 insertions, 0 deletions
diff --git a/include/ar.h b/include/ar.h
new file mode 100644
index 0000000..2667889
--- /dev/null
+++ b/include/ar.h
@@ -0,0 +1,26 @@
+/*
+ * busybox ar archive data structures
+ * Licensed under the GPL v2 or later, see the file LICENSE in this source tree.
+ */
+#ifndef AR_H
+#define AR_H
+
+PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
+
+struct ar_header {
+ char name[16];
+ char date[12];
+ char uid[6];
+ char gid[6];
+ char mode[8];
+ char size[10];
+ char magic[2];
+};
+
+#define AR_HEADER_LEN sizeof(struct ar_header)
+#define AR_MAGIC "!<arch>"
+#define AR_MAGIC_LEN 7
+
+POP_SAVED_FUNCTION_VISIBILITY
+
+#endif
diff --git a/include/unarchive.h b/include/unarchive.h
index 8bfc92c..92ebd65 100644
--- a/include/unarchive.h
+++ b/include/unarchive.h
@@ -73,6 +73,10 @@ typedef struct archive_handle_t {
/* Contains the handle to a sub archive */
struct archive_handle_t *dpkg__sub_archive;
#endif
+#if ENABLE_FEATURE_AR_CREATE
+ const char *ar__name;
+ struct archive_handle_t *ar__out;
+#endif
} archive_handle_t;
/* bits in ah_flags */
#define ARCHIVE_RESTORE_DATE (1 << 0)