summaryrefslogtreecommitdiff
path: root/include/tpax/tpax_specs.h
blob: d0ac5a46c010195389cd06d71d63ce2952dba02e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#ifndef TPAX_SPECS_H
#define TPAX_SPECS_H

#ifdef __cplusplus
extern "C" {
#endif

#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