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