#ifndef TPAX_SPECS_H
#define TPAX_SPECS_H
#ifdef __cplusplus
extern "C" {
#endif
#define TPAX_PAX_BLOCK_SIZE 5120
#define TPAX_CPIO_BLOCK_SIZE 5120
#define TPAX_USTAR_BLOCK_SIZE 10240
#define TPAX_USTAR_MAGIC {'u','s','t','a','r',0}
#define TPAX_USTAR_VERSION {'0','0'}
#define TPAX_USTAR_TYPEFLAG_AREGFILE '\0'
#define TPAX_USTAR_TYPEFLAG_REGFILE '0'
#define TPAX_USTAR_TYPEFLAG_HARDLINK '1'
#define TPAX_USTAR_TYPEFLAG_SYMLINK '2'
#define TPAX_USTAR_TYPEFLAG_CHARDEV '3'
#define TPAX_USTAR_TYPEFLAG_BLKDEV '4'
#define TPAX_USTAR_TYPEFLAG_DIRFILE '5'
#define TPAX_USTAR_TYPEFLAG_FIFODEV '6'
#define TPAX_USTAR_TYPEFLAG_CONTAINER '7'
#define TPAX_USTAR_MODE_MASK \
( S_ISUID | S_ISGID \
| S_IRUSR | S_IWUSR | S_IXUSR \
| S_IRGRP | S_IWGRP | S_IXGRP \
| S_IROTH | S_IWOTH | S_IXOTH )
struct tpax_ustar_header {
char u_name [100];
char u_mode [8];
char u_uid [8];
char u_gid [8];
char u_size [12];
char u_mtime [12];
char u_chksum [8];
char u_typeflag [1];
char u_linkname [100];
char u_magic [6];
char u_version [2];
char u_uname [32];
char u_gname [32];
char u_devmajor [8];
char u_devminor [8];
char u_prefix [155];
char u_pad [12];
};
struct tpax_cpio_header {
char c_magic [6];
char c_dev [6];
char c_ino [6];
char c_mode [6];
char c_uid [6];
char c_gid [6];
char c_nlink [6];
char c_rdev [6];
char c_mtime [11];
char c_namesize [6];
char c_filesize [11];
char c_namedata [];
};
#ifdef __cplusplus
}
#endif
#endif