PKUOS - Pintos
Pintos source browser for PKU Operating System course
ustar.h
Go to the documentation of this file.
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. */
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 */
static const char file_name[]
tests/filesys/base/syn-read.h
Definition: syn-read.h:5
ustar_type
Support for the standard Posix "ustar" format.
Definition: ustar.h:14
@ USTAR_REGULAR
Ordinary file.
Definition: ustar.h:15
@ USTAR_EOF
End of archive (not an official value).
Definition: ustar.h:17
@ USTAR_DIRECTORY
Directory.
Definition: ustar.h:16
bool ustar_make_header(const char *file_name, enum ustar_type, int size, char header[USTAR_HEADER_SIZE])
Composes HEADER as a USTAR_HEADER_SIZE (512)-byte archive header in ustar format for a SIZE-byte file...
Definition: ustar.c:83
#define USTAR_HEADER_SIZE
Size of a ustar archive header, in bytes.
Definition: ustar.h:21
const char * ustar_parse_header(const char header[USTAR_HEADER_SIZE], const char **file_name, enum ustar_type *, int *size)
lib/ustar.h
Definition: ustar.c:182