summaryrefslogtreecommitdiffstats
path: root/lib/ustar.h
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2012-03-27 11:51:08 +0200
committermanuel <manuel@mausz.at>2012-03-27 11:51:08 +0200
commit4f670845ff9ab6c48bcb5f7bf4d4ef6dc3c3064b (patch)
tree868c52e06f207b5ec8a3cc141f4b8b2bdfcc165c /lib/ustar.h
parenteae0bd57f0a26314a94785061888d193d186944a (diff)
downloadprogos-4f670845ff9ab6c48bcb5f7bf4d4ef6dc3c3064b.tar.gz
progos-4f670845ff9ab6c48bcb5f7bf4d4ef6dc3c3064b.tar.bz2
progos-4f670845ff9ab6c48bcb5f7bf4d4ef6dc3c3064b.zip
reorganize file structure to match the upstream requirements
Diffstat (limited to 'lib/ustar.h')
-rw-r--r--lib/ustar.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/ustar.h b/lib/ustar.h
new file mode 100644
index 0000000..43a5513
--- /dev/null
+++ b/lib/ustar.h
@@ -0,0 +1,29 @@
1#ifndef __LIB_USTAR_H
2#define __LIB_USTAR_H
3
4/* Support for the standard Posix "ustar" format. See the
5 documentation of the "pax" utility in [SUSv3] for the the
6 "ustar" format specification. */
7
8#include <stdbool.h>
9
10/* Type of a file entry in an archive.
11 The values here are the bytes that appear in the file format.
12 Only types of interest to Pintos are listed here. */
13enum ustar_type
14 {
15 USTAR_REGULAR = '0', /* Ordinary file. */
16 USTAR_DIRECTORY = '5', /* Directory. */
17 USTAR_EOF = -1 /* End of archive (not an official value). */
18 };
19
20/* Size of a ustar archive header, in bytes. */
21#define USTAR_HEADER_SIZE 512
22
23bool ustar_make_header (const char *file_name, enum ustar_type,
24 int size, char header[USTAR_HEADER_SIZE]);
25const char *ustar_parse_header (const char header[USTAR_HEADER_SIZE],
26 const char **file_name,
27 enum ustar_type *, int *size);
28
29#endif /* lib/ustar.h */