-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathmetadata.capnp
76 lines (64 loc) · 1.17 KB
/
metadata.capnp
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
67
68
69
70
71
72
73
74
75
76
@0x84ae5e6e88b7cbb7;
struct Chr {
major@0: UInt64;
minor@1: UInt64;
}
struct DirEntry {
ino@0: UInt64;
name@1: Data;
}
struct Dir {
entries@0: List(DirEntry);
lookBelow@1: Bool;
}
struct Blk {
major@0: UInt64;
minor@1: UInt64;
}
struct FileChunk {
blob@0: BlobRef;
len@1: UInt64;
}
struct BlobRef {
digest@0: Data;
offset@1: UInt64;
compressed@2: Bool;
}
struct Xattr {
key@0: Data;
val@1: Data;
}
struct InodeAdditional {
xattrs@0: List(Xattr);
symlinkTarget@1: Data;
}
struct Inode {
ino@0: UInt64;
mode: union {
unknown@1: Void;
fifo@2: Void;
chr@3: Chr;
dir@4: Dir;
blk@5: Blk;
file@6: List(FileChunk);
lnk@7: Void;
sock@8: Void;
wht@9: Void;
}
uid@10: UInt32;
gid@11: UInt32;
permissions@12: UInt16;
additional@13: InodeAdditional;
}
struct InodeVector {
inodes@0: List(Inode);
}
struct VerityData {
digest@0: Data;
verity@1: Data;
}
struct Rootfs {
metadatas@0: List(InodeVector);
fsVerityData@1: List(VerityData);
manifestVersion@2: UInt64;
}