blob: 0fddf851844c5439091a71f6f8f99039e652034c (
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
 | Version 0
---------
Following sections explain internals of metastore file (.metadata).
### Data types
    CSTRING     = NUL-terminated binary string
    BSTRING(N)  = binary string of length N
    INT(N)      = N byte integer in little-endian byte order
### File layout
    HEADER
    N * ENTRY
### HEADER format
    BSTRING(10) - Magic header - "MeTaSt00r3"
    BSTRING(8)  - Version - "\0\0\0\0\0\0\0\0" (currently)
### ENTRY format
    CSTRING     - Path  (absolute or relative)
    CSTRING     - Owner (owner name, not uid)
    CSTRING     - Group (group name, not gid)
    INT(8)      - Mtime (seconds)
    INT(8)      - Mtime (nanoseconds)
    INT(2)      - Mode  (st_mode from struct stat st_mode AND 0177777,
                         i.e. unix permissions and type of file)
    INT(4)      - num_xattrs
    FOR (i = 0; i < num_xattrs; i++) {
        CSTRING            - xattr name
        INT(4)             - xattrlen
        BSTRING(xattrlen)  - xattr value
    }
 |