Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
fs
isofs
rock.h
Go to the documentation of this file.
1
/*
2
* These structs are used by the system-use-sharing protocol, in which the
3
* Rock Ridge extensions are embedded. It is quite possible that other
4
* extensions are present on the disk, and this is fine as long as they
5
* all use SUSP
6
*/
7
8
struct
SU_SP_s
{
9
unsigned
char
magic
[2];
10
unsigned
char
skip
;
11
}
__attribute__
((packed));
12
13
struct
SU_CE_s
{
14
char
extent
[8];
15
char
offset
[8];
16
char
size
[8];
17
};
18
19
struct
SU_ER_s
{
20
unsigned
char
len_id
;
21
unsigned
char
len_des
;
22
unsigned
char
len_src
;
23
unsigned
char
ext_ver
;
24
char
data
[0];
25
}
__attribute__
((packed));
26
27
struct
RR_RR_s
{
28
char
flags
[1];
29
}
__attribute__
((packed));
30
31
struct
RR_PX_s
{
32
char
mode
[8];
33
char
n_links
[8];
34
char
uid
[8];
35
char
gid
[8];
36
};
37
38
struct
RR_PN_s
{
39
char
dev_high
[8];
40
char
dev_low
[8];
41
};
42
43
struct
SL_component
{
44
unsigned
char
flags
;
45
unsigned
char
len
;
46
char
text
[0];
47
}
__attribute__
((packed));
48
49
struct
RR_SL_s
{
50
unsigned
char
flags
;
51
struct
SL_component
link
;
52
}
__attribute__
((packed));
53
54
struct
RR_NM_s
{
55
unsigned
char
flags
;
56
char
name
[0];
57
}
__attribute__
((packed));
58
59
struct
RR_CL_s
{
60
char
location
[8];
61
};
62
63
struct
RR_PL_s
{
64
char
location
[8];
65
};
66
67
struct
stamp
{
68
char
time
[7];
69
}
__attribute__
((packed));
70
71
struct
RR_TF_s
{
72
char
flags
;
73
struct
stamp
times
[0];
/* Variable number of these beasts */
74
}
__attribute__
((packed));
75
76
/* Linux-specific extension for transparent decompression */
77
struct
RR_ZF_s
{
78
char
algorithm
[2];
79
char
parms
[2];
80
char
real_size
[8];
81
};
82
83
/*
84
* These are the bits and their meanings for flags in the TF structure.
85
*/
86
#define TF_CREATE 1
87
#define TF_MODIFY 2
88
#define TF_ACCESS 4
89
#define TF_ATTRIBUTES 8
90
#define TF_BACKUP 16
91
#define TF_EXPIRATION 32
92
#define TF_EFFECTIVE 64
93
#define TF_LONG_FORM 128
94
95
struct
rock_ridge
{
96
char
signature
[2];
97
unsigned
char
len
;
98
unsigned
char
version
;
99
union
{
100
struct
SU_SP_s
SP
;
101
struct
SU_CE_s
CE
;
102
struct
SU_ER_s
ER
;
103
struct
RR_RR_s
RR
;
104
struct
RR_PX_s
PX
;
105
struct
RR_PN_s
PN
;
106
struct
RR_SL_s
SL
;
107
struct
RR_NM_s
NM
;
108
struct
RR_CL_s
CL
;
109
struct
RR_PL_s
PL
;
110
struct
RR_TF_s
TF
;
111
struct
RR_ZF_s
ZF
;
112
}
u
;
113
};
114
115
#define RR_PX 1
/* POSIX attributes */
116
#define RR_PN 2
/* POSIX devices */
117
#define RR_SL 4
/* Symbolic link */
118
#define RR_NM 8
/* Alternate Name */
119
#define RR_CL 16
/* Child link */
120
#define RR_PL 32
/* Parent link */
121
#define RR_RE 64
/* Relocation directory */
122
#define RR_TF 128
/* Timestamps */
Generated on Thu Jan 10 2013 14:47:30 for Linux Kernel by
1.8.2