extern.h revision 1.1.1.1
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 */
39
40/*
41 * External references from each source file
42 */
43
44#include <sys/cdefs.h>
45
46/*
47 * ar_io.c
48 */
49extern char *arcname;
50int ar_open __P((char *));
51void ar_close __P((void));
52void ar_drain __P((void));
53int ar_set_wr __P((void));
54int ar_app_ok __P((void));
55int ar_read __P((register char *, register int));
56int ar_write __P((register char *, register int));
57int ar_rdsync __P((void));
58int ar_fow __P((off_t, off_t *));
59int ar_rev __P((off_t ));
60int ar_next __P((void));
61
62/*
63 * ar_subs.c
64 */
65extern u_long flcnt;
66void list __P((void));
67void extract __P((void));
68void append __P((void));
69void archive __P((void));
70void copy __P((void));
71
72/*
73 * buf_subs.c
74 */
75extern int blksz;
76extern int wrblksz;
77extern int maxflt;
78extern int rdblksz;
79extern off_t wrlimit;
80extern off_t rdcnt;
81extern off_t wrcnt;
82int wr_start __P((void));
83int rd_start __P((void));
84void cp_start __P((void));
85int appnd_start __P((off_t));
86int rd_sync __P((void));
87void pback __P((char *, int));
88int rd_skip __P((off_t));
89void wr_fin __P((void));
90int wr_rdbuf __P((register char *, register int));
91int rd_wrbuf __P((register char *, register int));
92int wr_skip __P((off_t));
93int wr_rdfile __P((ARCHD *, int, off_t *));
94int rd_wrfile __P((ARCHD *, int, off_t *));
95void cp_file __P((ARCHD *, int, int));
96int buf_fill __P((void));
97int buf_flush __P((register int));
98
99/*
100 * cache.c
101 */
102int uidtb_start __P((void));
103int gidtb_start __P((void));
104int usrtb_start __P((void));
105int grptb_start __P((void));
106char * name_uid __P((uid_t, int));
107char * name_gid __P((gid_t, int));
108int uid_name __P((char *, uid_t *));
109int gid_name __P((char *, gid_t *));
110
111/*
112 * cpio.c
113 */
114int cpio_strd __P((void));
115int cpio_trail __P((register ARCHD *));
116int cpio_endwr __P((void));
117int cpio_id __P((char *, int));
118int cpio_rd __P((register ARCHD *, register char *));
119off_t cpio_endrd __P((void));
120int cpio_stwr __P((void));
121int cpio_wr __P((register ARCHD *));
122int vcpio_id __P((char *, int));
123int crc_id __P((char *, int));
124int crc_strd __P((void));
125int vcpio_rd __P((register ARCHD *, register char *));
126off_t vcpio_endrd __P((void));
127int crc_stwr __P((void));
128int vcpio_wr __P((register ARCHD *));
129int bcpio_id __P((char *, int));
130int bcpio_rd __P((register ARCHD *, register char *));
131off_t bcpio_endrd __P((void));
132int bcpio_wr __P((register ARCHD *));
133
134/*
135 * file_subs.c
136 */
137int file_creat __P((register ARCHD *));
138void file_close __P((register ARCHD *, int));
139int lnk_creat __P((register ARCHD *));
140int cross_lnk __P((register ARCHD *));
141int chk_same __P((register ARCHD *));
142int node_creat __P((register ARCHD *));
143int unlnk_exist __P((register char *, register int));
144int chk_path __P((register char *, uid_t, gid_t));
145void set_ftime __P((char *fnm, time_t mtime, time_t atime, int frc));
146int set_ids __P((char *, uid_t, gid_t));
147void set_pmode __P((char *, mode_t));
148int file_write __P((int, char *, register int, int *, int *, int, char *));
149void file_flush __P((int, char *, int));
150void rdfile_close __P((register ARCHD *, register int *));
151int set_crc __P((register ARCHD *, register int));
152
153/*
154 * ftree.c
155 */
156int ftree_start __P((void));
157int ftree_add __P((register char *));
158void ftree_sel __P((register ARCHD *));
159void ftree_chk __P((void));
160int next_file __P((register ARCHD *));
161
162/*
163 * gen_subs.c
164 */
165void ls_list __P((register ARCHD *, time_t));
166void ls_tty __P((register ARCHD *));
167void zf_strncpy __P((register char *, register char *, int));
168int l_strncpy __P((register char *, register char *, int));
169u_long asc_ul __P((register char *, int, register int));
170int ul_asc __P((u_long, register char *, register int, register int));
171#ifndef NET2_STAT
172u_quad_t asc_uqd __P((register char *, int, register int));
173int uqd_asc __P((u_quad_t, register char *, register int, register int));
174#endif
175
176/*
177 * options.c
178 */
179extern FSUB fsub[];
180extern int ford[];
181void options __P((register int, register char **));
182OPLIST * opt_next __P((void));
183int opt_add __P((register char *));
184int bad_opt __P((void));
185
186/*
187 * pat_rep.c
188 */
189int rep_add __P((register char *));
190int pat_add __P((char *));
191void pat_chk __P((void));
192int pat_sel __P((register ARCHD *));
193int pat_match __P((register ARCHD *));
194int mod_name __P((register ARCHD *));
195int set_dest __P((register ARCHD *, char *, int));
196
197/*
198 * pax.c
199 */
200extern int act;
201extern FSUB *frmt;
202extern int cflag;
203extern int dflag;
204extern int iflag;
205extern int kflag;
206extern int lflag;
207extern int nflag;
208extern int tflag;
209extern int uflag;
210extern int vflag;
211extern int Dflag;
212extern int Hflag;
213extern int Lflag;
214extern int Xflag;
215extern int Yflag;
216extern int Zflag;
217extern int vfpart;
218extern int patime;
219extern int pmtime;
220extern int pmode;
221extern int pids;
222extern int exit_val;
223extern int docrc;
224extern char *dirptr;
225extern char *ltmfrmt;
226extern char *argv0;
227int main __P((int, char **));
228void sig_cleanup __P((int));
229
230/*
231 * sel_subs.c
232 */
233int sel_chk __P((register ARCHD *));
234int grp_add __P((register char *));
235int usr_add __P((register char *));
236int trng_add __P((register char *));
237
238/*
239 * tables.c
240 */
241int lnk_start __P((void));
242int chk_lnk __P((register ARCHD *));
243void purg_lnk __P((register ARCHD *));
244void lnk_end __P((void));
245int ftime_start __P((void));
246int chk_ftime __P((register ARCHD *));
247int name_start __P((void));
248int add_name __P((register char *, int, char *));
249void sub_name __P((register char *, int *));
250int dev_start __P((void));
251int add_dev __P((register ARCHD *));
252int map_dev __P((register ARCHD *, u_long, u_long));
253int atdir_start __P((void));
254void atdir_end __P((void));
255void add_atdir __P((char *, dev_t, ino_t, time_t, time_t));
256int get_atdir __P((dev_t, ino_t, time_t *, time_t *));
257int dir_start __P((void));
258void add_dir __P((char *, int, struct stat *, int));
259void proc_dir __P((void));
260u_int st_hash __P((char *, int, int));
261
262/*
263 * tar.c
264 */
265int tar_endwr __P((void));
266off_t tar_endrd __P((void));
267int tar_trail __P((register char *, register int, register int *));
268int tar_id __P((register char *, int));
269int tar_opt __P((void));
270int tar_rd __P((register ARCHD *, register char *));
271int tar_wr __P((register ARCHD *));
272int ustar_strd __P((void));
273int ustar_stwr __P((void));
274int ustar_id __P((char *, int));
275int ustar_rd __P((register ARCHD *, register char *));
276int ustar_wr __P((register ARCHD *));
277
278/*
279 * tty_subs.c
280 */
281int tty_init __P((void));
282void tty_prnt __P((char *, ...));
283int tty_read __P((char *, int));
284void warn __P((int, char *, ...));
285void syswarn __P((int, int, char *, ...));
286