1
2
3
4
5
6 struct SU_SP{
7 unsigned char magic[2];
8 unsigned char skip;
9 };
10
11 struct SU_CE{
12 char extent[8];
13 char offset[8];
14 char size[8];
15 };
16
17 struct SU_ER{
18 unsigned char len_id;
19 unsigned char len_des;
20 unsigned char len_src;
21 unsigned char ext_ver;
22 char data[0];
23 };
24
25 struct RR_RR{
26 char flags[1];
27 };
28
29 struct RR_PX{
30 char mode[8];
31 char n_links[8];
32 char uid[8];
33 char gid[8];
34 };
35
36 struct RR_PN{
37 char dev_high[8];
38 char dev_low[8];
39 };
40
41
42 struct SL_component{
43 unsigned char flags;
44 unsigned char len;
45 char text[0];
46 };
47
48 struct RR_SL{
49 unsigned char flags;
50 struct SL_component link;
51 };
52
53 struct RR_NM{
54 unsigned char flags;
55 char name[0];
56 };
57
58 struct RR_CL{
59 char location[8];
60 };
61
62 struct RR_PL{
63 char location[8];
64 };
65
66 struct stamp{
67 char time[7];
68 };
69
70 struct RR_TF{
71 char flags;
72 struct stamp times[0];
73 };
74
75
76 #define TF_CREATE 1
77 #define TF_MODIFY 2
78 #define TF_ACCESS 4
79 #define TF_ATTRIBUTES 8
80 #define TF_BACKUP 16
81 #define TF_EXPIRATION 32
82 #define TF_EFFECTIVE 64
83 #define TF_LONG_FORM 128
84
85 struct rock_ridge{
86 char signature[2];
87 unsigned char len;
88 unsigned char version;
89 union{
90 struct SU_SP SP;
91 struct SU_CE CE;
92 struct SU_ER ER;
93 struct RR_RR RR;
94 struct RR_PX PX;
95 struct RR_PN PN;
96 struct RR_SL SL;
97 struct RR_NM NM;
98 struct RR_CL CL;
99 struct RR_PL PL;
100 struct RR_TF TF;
101 } u;
102 };
103
104 #define RR_PX 1
105 #define RR_PN 2
106 #define RR_SL 4
107 #define RR_NM 8
108 #define RR_CL 16
109 #define RR_PL 32
110 #define RR_RE 64
111 #define RR_TF 128