extern.h revision 1.3
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 *	from: @(#)extern.h	8.2 (Berkeley) 4/18/94
38 *	$Id: extern.h,v 1.3 1994/12/04 07:11:52 cgd 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 * getoldopt.c
179 */
180int getoldopt __P((int, char **, char *));
181
182/*
183 * options.c
184 */
185extern FSUB fsub[];
186extern int ford[];
187void options __P((register int, register char **));
188OPLIST * opt_next __P((void));
189int opt_add __P((register char *));
190int bad_opt __P((void));
191
192/*
193 * pat_rep.c
194 */
195int rep_add __P((register char *));
196int pat_add __P((char *));
197void pat_chk __P((void));
198int pat_sel __P((register ARCHD *));
199int pat_match __P((register ARCHD *));
200int mod_name __P((register ARCHD *));
201int set_dest __P((register ARCHD *, char *, int));
202
203/*
204 * pax.c
205 */
206extern int act;
207extern FSUB *frmt;
208extern int cflag;
209extern int dflag;
210extern int iflag;
211extern int kflag;
212extern int lflag;
213extern int nflag;
214extern int tflag;
215extern int uflag;
216extern int vflag;
217extern int Dflag;
218extern int Hflag;
219extern int Lflag;
220extern int Xflag;
221extern int Yflag;
222extern int Zflag;
223extern int vfpart;
224extern int patime;
225extern int pmtime;
226extern int pmode;
227extern int pids;
228extern int exit_val;
229extern int docrc;
230extern char *dirptr;
231extern char *ltmfrmt;
232extern char *argv0;
233int main __P((int, char **));
234void sig_cleanup __P((int));
235
236/*
237 * sel_subs.c
238 */
239int sel_chk __P((register ARCHD *));
240int grp_add __P((register char *));
241int usr_add __P((register char *));
242int trng_add __P((register char *));
243
244/*
245 * tables.c
246 */
247int lnk_start __P((void));
248int chk_lnk __P((register ARCHD *));
249void purg_lnk __P((register ARCHD *));
250void lnk_end __P((void));
251int ftime_start __P((void));
252int chk_ftime __P((register ARCHD *));
253int name_start __P((void));
254int add_name __P((register char *, int, char *));
255void sub_name __P((register char *, int *));
256int dev_start __P((void));
257int add_dev __P((register ARCHD *));
258int map_dev __P((register ARCHD *, u_long, u_long));
259int atdir_start __P((void));
260void atdir_end __P((void));
261void add_atdir __P((char *, dev_t, ino_t, time_t, time_t));
262int get_atdir __P((dev_t, ino_t, time_t *, time_t *));
263int dir_start __P((void));
264void add_dir __P((char *, int, struct stat *, int));
265void proc_dir __P((void));
266u_int st_hash __P((char *, int, int));
267
268/*
269 * tar.c
270 */
271int tar_endwr __P((void));
272off_t tar_endrd __P((void));
273int tar_trail __P((register char *, register int, register int *));
274int tar_id __P((register char *, int));
275int tar_opt __P((void));
276int tar_rd __P((register ARCHD *, register char *));
277int tar_wr __P((register ARCHD *));
278int ustar_strd __P((void));
279int ustar_stwr __P((void));
280int ustar_id __P((char *, int));
281int ustar_rd __P((register ARCHD *, register char *));
282int ustar_wr __P((register ARCHD *));
283
284/*
285 * tty_subs.c
286 */
287int tty_init __P((void));
288void tty_prnt __P((char *, ...));
289int tty_read __P((char *, int));
290void warn __P((int, char *, ...));
291void syswarn __P((int, int, char *, ...));
292