mirror of
https://github.com/vlang/v.git
synced 2025-09-13 14:32:26 +03:00
43 lines
1.1 KiB
V
43 lines
1.1 KiB
V
module tar
|
|
|
|
// ustart header block octets
|
|
// Field | Offset | Length
|
|
// --------------------------
|
|
// name | 0 | 100
|
|
// mode | 100 | 8
|
|
// uid | 108 | 8
|
|
// gid | 116 | 8
|
|
// size | 124 | 12
|
|
// mtime | 136 | 12
|
|
// chksum | 148 | 8
|
|
// typeflag | 156 | 1
|
|
// linkname | 157 | 100
|
|
// magic | 257 | 6
|
|
// version | 263 | 2
|
|
// uname | 265 | 32
|
|
// gname | 297 | 32
|
|
// devmajor | 329 | 8
|
|
// devminor | 337 | 8
|
|
// prefix | 345 | 155
|
|
|
|
pub enum BlockHeader as u8 {
|
|
file = u8(`0`) // 0x30
|
|
hard_link = u8(`1`) // 0x31
|
|
sym_link = u8(`2`) // 0x32
|
|
char_dev = u8(`3`) // 0x33
|
|
block_dev = u8(`4`) // 0x34
|
|
dir = u8(`5`) // 0x35
|
|
fifo = u8(`6`) // 0x36
|
|
long_name = u8(`L`) // 0x4c = 76 dec
|
|
global = u8(`g`) // 0x67 pax
|
|
}
|
|
|
|
pub enum BlockSpecial {
|
|
no // for headers `0`,`5` or data blocks
|
|
blank_1 // first blank block: continue
|
|
blank_2 // second blank block: end of archiv
|
|
ignore // for headers `1`, `2`, `3`, `4`, `6`
|
|
long_name // for header `L`
|
|
global // for header `g`
|
|
unknown // for not header defined
|
|
}
|