… | |
… | |
23 | F_LZF = 0x01, |
23 | F_LZF = 0x01, |
24 | F_EXEC = 0x10, |
24 | F_EXEC = 0x10, |
25 | F_NULL = 0 |
25 | F_NULL = 0 |
26 | }; |
26 | }; |
27 | |
27 | |
28 | #define TAIL_MAGIC "sChMoRPAcK_0" |
28 | #define TAIL_MAGIC "ScHmOrp_PaCk_000" |
29 | |
29 | |
30 | struct u_pack_hdr |
30 | struct u_pack_hdr |
31 | { |
31 | { |
32 | unsigned char type; |
32 | unsigned char type; |
33 | unsigned char flags; |
33 | unsigned char flags; |
… | |
… | |
37 | |
37 | |
38 | #define u_16(ptr) (((ptr)[0] << 8) | (ptr)[1]) |
38 | #define u_16(ptr) (((ptr)[0] << 8) | (ptr)[1]) |
39 | #define u_32(ptr) (((ptr)[0] << 24) | ((ptr)[1] << 16) | ((ptr)[2] << 8) | (ptr)[3]) |
39 | #define u_32(ptr) (((ptr)[0] << 24) | ((ptr)[1] << 16) | ((ptr)[2] << 8) | (ptr)[3]) |
40 | |
40 | |
41 | struct u_pack_tail { |
41 | struct u_pack_tail { |
42 | unsigned char max_filesize[4]; |
42 | unsigned char max_uncompressed[4]; /* maximum uncompressed file size */ |
43 | unsigned char size[4]; |
43 | unsigned char size[4]; /* how many bytes to seke backwards from end(!) of tail */ |
|
|
44 | unsigned char reserved[8]; /* must be 0 */ |
44 | char magic[12]; |
45 | char magic[16]; |
|
|
46 | char md5_head[16]; /* md5(urlader) or 0, if there is no checksum */ |
|
|
47 | char md5_pack[16]; /* md5(pack) or 0, if there is no checksum */ |
45 | }; |
48 | }; |
46 | |
49 | |
47 | #endif |
50 | #endif |
48 | |
51 | |