file_cmds-45.tar.gz
[apple/file_cmds.git] / pax / extern.h
1 /* $OpenBSD: extern.h,v 1.14 1997/07/24 23:19:18 millert Exp $ */
2 /* $NetBSD: extern.h,v 1.5 1996/03/26 23:54:16 mrg Exp $ */
3
4 /*-
5 * Copyright (c) 1992 Keith Muller.
6 * Copyright (c) 1992, 1993
7 * The Regents of the University of California. All rights reserved.
8 *
9 * This code is derived from software contributed to Berkeley by
10 * Keith Muller of the University of California, San Diego.
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in the
19 * documentation and/or other materials provided with the distribution.
20 * 3. All advertising materials mentioning features or use of this software
21 * must display the following acknowledgement:
22 * This product includes software developed by the University of
23 * California, Berkeley and its contributors.
24 * 4. Neither the name of the University nor the names of its contributors
25 * may be used to endorse or promote products derived from this software
26 * without specific prior written permission.
27 *
28 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
29 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
32 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38 * SUCH DAMAGE.
39 *
40 * @(#)extern.h 8.2 (Berkeley) 4/18/94
41 */
42
43 /*
44 * External references from each source file
45 */
46
47 #include <sys/cdefs.h>
48
49 /*
50 * ar_io.c
51 */
52 extern char *arcname;
53 extern char *gzip_program;
54 int ar_open __P((char *));
55 void ar_close __P((void));
56 void ar_drain __P((void));
57 int ar_set_wr __P((void));
58 int ar_app_ok __P((void));
59 int ar_read __P((register char *, register int));
60 int ar_write __P((register char *, register int));
61 int ar_rdsync __P((void));
62 int ar_fow __P((off_t, off_t *));
63 int ar_rev __P((off_t ));
64 int ar_next __P((void));
65
66 /*
67 * ar_subs.c
68 */
69 extern u_long flcnt;
70 void list __P((void));
71 void extract __P((void));
72 void append __P((void));
73 void archive __P((void));
74 void copy __P((void));
75
76 /*
77 * buf_subs.c
78 */
79 extern int blksz;
80 extern int wrblksz;
81 extern int maxflt;
82 extern int rdblksz;
83 extern off_t wrlimit;
84 extern off_t rdcnt;
85 extern off_t wrcnt;
86 int wr_start __P((void));
87 int rd_start __P((void));
88 void cp_start __P((void));
89 int appnd_start __P((off_t));
90 int rd_sync __P((void));
91 void pback __P((char *, int));
92 int rd_skip __P((off_t));
93 void wr_fin __P((void));
94 int wr_rdbuf __P((register char *, register int));
95 int rd_wrbuf __P((register char *, register int));
96 int wr_skip __P((off_t));
97 int wr_rdfile __P((ARCHD *, int, off_t *));
98 int rd_wrfile __P((ARCHD *, int, off_t *));
99 void cp_file __P((ARCHD *, int, int));
100 int buf_fill __P((void));
101 int buf_flush __P((register int));
102
103 /*
104 * cache.c
105 */
106 int uidtb_start __P((void));
107 int gidtb_start __P((void));
108 int usrtb_start __P((void));
109 int grptb_start __P((void));
110 char * name_uid __P((uid_t, int));
111 char * name_gid __P((gid_t, int));
112 int uid_name __P((char *, uid_t *));
113 int gid_name __P((char *, gid_t *));
114
115 /*
116 * cpio.c
117 */
118 int cpio_strd __P((void));
119 int cpio_trail __P((register ARCHD *));
120 int cpio_endwr __P((void));
121 int cpio_id __P((char *, int));
122 int cpio_rd __P((register ARCHD *, register char *));
123 off_t cpio_endrd __P((void));
124 int cpio_stwr __P((void));
125 int cpio_wr __P((register ARCHD *));
126 int vcpio_id __P((char *, int));
127 int crc_id __P((char *, int));
128 int crc_strd __P((void));
129 int vcpio_rd __P((register ARCHD *, register char *));
130 off_t vcpio_endrd __P((void));
131 int crc_stwr __P((void));
132 int vcpio_wr __P((register ARCHD *));
133 int bcpio_id __P((char *, int));
134 int bcpio_rd __P((register ARCHD *, register char *));
135 off_t bcpio_endrd __P((void));
136 int bcpio_wr __P((register ARCHD *));
137
138 /*
139 * file_subs.c
140 */
141 int file_creat __P((register ARCHD *));
142 void file_close __P((register ARCHD *, int));
143 int lnk_creat __P((register ARCHD *));
144 int cross_lnk __P((register ARCHD *));
145 int chk_same __P((register ARCHD *));
146 int node_creat __P((register ARCHD *));
147 int unlnk_exist __P((register char *, register int));
148 int chk_path __P((register char *, uid_t, gid_t));
149 void set_ftime __P((char *fnm, time_t mtime, time_t atime, int frc));
150 int set_ids __P((char *, uid_t, gid_t));
151 int set_lids __P((char *, uid_t, gid_t));
152 void set_pmode __P((char *, mode_t));
153 int file_write __P((int, char *, register int, int *, int *, int, char *));
154 void file_flush __P((int, char *, int));
155 void rdfile_close __P((register ARCHD *, register int *));
156 int set_crc __P((register ARCHD *, register int));
157
158 /*
159 * ftree.c
160 */
161 int ftree_start __P((void));
162 int ftree_add __P((register char *, int));
163 void ftree_sel __P((register ARCHD *));
164 void ftree_chk __P((void));
165 int next_file __P((register ARCHD *));
166
167 /*
168 * gen_subs.c
169 */
170 void ls_list __P((register ARCHD *, time_t, FILE *));
171 void ls_tty __P((register ARCHD *));
172 int l_strncpy __P((register char *, register char *, int));
173 u_long asc_ul __P((register char *, int, register int));
174 int ul_asc __P((u_long, register char *, register int, register int));
175 #ifndef NET2_STAT
176 u_quad_t asc_uqd __P((register char *, int, register int));
177 int uqd_asc __P((u_quad_t, register char *, register int, register int));
178 #endif
179
180 /*
181 * getoldopt.c
182 */
183 int getoldopt __P((int, char **, char *));
184
185 /*
186 * options.c
187 */
188 extern FSUB fsub[];
189 extern int ford[];
190 void options __P((register int, register char **));
191 OPLIST * opt_next __P((void));
192 int opt_add __P((register char *));
193 int bad_opt __P((void));
194 extern char *chdname;
195
196 /*
197 * pat_rep.c
198 */
199 int rep_add __P((register char *));
200 int pat_add __P((char *, char *));
201 void pat_chk __P((void));
202 int pat_sel __P((register ARCHD *));
203 int pat_match __P((register ARCHD *));
204 int mod_name __P((register ARCHD *));
205 int set_dest __P((register ARCHD *, char *, int));
206
207 /*
208 * pax.c
209 */
210 extern int act;
211 extern FSUB *frmt;
212 extern int cflag;
213 extern int cwdfd;
214 extern int dflag;
215 extern int iflag;
216 extern int kflag;
217 extern int lflag;
218 extern int nflag;
219 extern int tflag;
220 extern int uflag;
221 extern int vflag;
222 extern int zflag;
223 extern int Dflag;
224 extern int Hflag;
225 extern int Lflag;
226 extern int Xflag;
227 extern int Yflag;
228 extern int Zflag;
229 extern int vfpart;
230 extern int patime;
231 extern int pmtime;
232 extern int nodirs;
233 extern int pmode;
234 extern int pids;
235 extern int rmleadslash;
236 extern int exit_val;
237 extern int docrc;
238 extern char *dirptr;
239 extern char *ltmfrmt;
240 extern char *argv0;
241 int main __P((int, char **));
242 void sig_cleanup __P((int));
243
244 /*
245 * sel_subs.c
246 */
247 int sel_chk __P((register ARCHD *));
248 int grp_add __P((register char *));
249 int usr_add __P((register char *));
250 int trng_add __P((register char *));
251
252 /*
253 * tables.c
254 */
255 int lnk_start __P((void));
256 int chk_lnk __P((register ARCHD *));
257 void purg_lnk __P((register ARCHD *));
258 void lnk_end __P((void));
259 int ftime_start __P((void));
260 int chk_ftime __P((register ARCHD *));
261 int name_start __P((void));
262 int add_name __P((register char *, int, char *));
263 void sub_name __P((register char *, int *, size_t));
264 int dev_start __P((void));
265 int add_dev __P((register ARCHD *));
266 int map_dev __P((register ARCHD *, u_long, u_long));
267 int atdir_start __P((void));
268 void atdir_end __P((void));
269 void add_atdir __P((char *, dev_t, ino_t, time_t, time_t));
270 int get_atdir __P((dev_t, ino_t, time_t *, time_t *));
271 int dir_start __P((void));
272 void add_dir __P((char *, int, struct stat *, int));
273 void proc_dir __P((void));
274 u_int st_hash __P((char *, int, int));
275
276 /*
277 * tar.c
278 */
279 int tar_endwr __P((void));
280 off_t tar_endrd __P((void));
281 int tar_trail __P((register char *, register int, register int *));
282 int tar_id __P((register char *, int));
283 int tar_opt __P((void));
284 int tar_rd __P((register ARCHD *, register char *));
285 int tar_wr __P((register ARCHD *));
286 int ustar_strd __P((void));
287 int ustar_stwr __P((void));
288 int ustar_id __P((char *, int));
289 int ustar_rd __P((register ARCHD *, register char *));
290 int ustar_wr __P((register ARCHD *));
291
292 /*
293 * tty_subs.c
294 */
295 int tty_init __P((void));
296 void tty_prnt __P((char *, ...));
297 int tty_read __P((char *, int));
298 void paxwarn __P((int, char *, ...));
299 void syswarn __P((int, int, char *, ...));