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