1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 /* Local file head offsets.  The header is followed by the filename and
25    possibly the extra field. */
26 #define zf_lfhSig		0
27 #define zf_lfhExVers		4
28 #define zf_lfhFlags		6
29 #define zf_lfhComp		8
30 #define zf_lfhModTime		10
31 #define zf_lfhModDate		12
32 #define zf_lfhCRC		14
33 #define zf_lfhCompSize		18
34 #define zf_lfhUncompSize	22
35 #define zf_lfhNameLen		26
36 #define zf_lfhExtraLen		28
37 #define zf_lfhSIZE		30 /* total size of header */
38 
39 /* We don't write data descriptors. */
40 
41 /* Central dir file header offsets.  Each entry is followed by the filename,
42    optional extra field, and file comment. */
43 #define zf_cdhSig		0
44 #define zf_cdhVers		4
45 #define zf_cdhExVers		6
46 #define zf_cdhFlags		8
47 #define zf_cdhComp		10
48 #define zf_cdhTime		12
49 #define zf_cdhDate		14
50 #define zf_cdhCRC		16
51 #define zf_cdhCompSize		20
52 #define zf_cdhUncompSize	24
53 #define zf_cdhNameLen		28
54 #define zf_cdhExtraLen		30
55 #define zf_cdhCommentLen	32
56 #define zf_cdhDiskNum		34
57 #define zf_cdhIFAttrs		36
58 #define zf_cdhEFAttrs		38
59 #define zf_cdhLHOffset		42
60 #define zf_cdhSIZE		46 /* total size of header */
61 
62 /* End of central dir record offsets.  It is followed by the zipfile
63    comment. */
64 #define zf_ecdSig		0
65 #define zf_ecdDiskNum		4
66 #define zf_ecdDirDiskNum	6
67 #define zf_ecdNumEntries	8
68 #define zf_ecdTotalEntries	10
69 #define zf_ecdDirSize		12
70 #define zf_ecdDirOffset		16
71 #define zf_ecdCommentLen	20
72 #define zf_ecdSIZE		22 /* total size */
73 
74 /* Magic constants to put in these structures. */
75 #define zf_LFHSIGValue		0x04034b50
76 #define zf_CDHSIGValue		0x02014b50
77 #define zf_ECDSIGValue		0x06054b50
78 
79 /* OS values for upper byte of version field. */
80 #define zf_osUnix		3
81 
82 /* Encode a major,minor version in a byte. */
83 #define zf_Vers(major,minor)	((major) * 10 + (minor))
84 
85 /* Compression values. */
86 #define zf_compNone		0
87 
88