extern.h revision 1557
197403Sobrien/*-
297403Sobrien * Copyright (c) 1992 Keith Muller.
3169691Skan * Copyright (c) 1992, 1993
4169691Skan *	The Regents of the University of California.  All rights reserved.
597403Sobrien *
697403Sobrien * This code is derived from software contributed to Berkeley by
797403Sobrien * Keith Muller of the University of California, San Diego.
897403Sobrien *
997403Sobrien * Redistribution and use in source and binary forms, with or without
1097403Sobrien * modification, are permitted provided that the following conditions
1197403Sobrien * are met:
1297403Sobrien * 1. Redistributions of source code must retain the above copyright
1397403Sobrien *    notice, this list of conditions and the following disclaimer.
1497403Sobrien * 2. Redistributions in binary form must reproduce the above copyright
1597403Sobrien *    notice, this list of conditions and the following disclaimer in the
1697403Sobrien *    documentation and/or other materials provided with the distribution.
1797403Sobrien * 3. All advertising materials mentioning features or use of this software
1897403Sobrien *    must display the following acknowledgement:
19169691Skan *	This product includes software developed by the University of
2097403Sobrien *	California, Berkeley and its contributors.
2197403Sobrien * 4. Neither the name of the University nor the names of its contributors
2297403Sobrien *    may be used to endorse or promote products derived from this software
2397403Sobrien *    without specific prior written permission.
2497403Sobrien *
2597403Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2697403Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2797403Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2897403Sobrien * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2997403Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
3097403Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
3197403Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
3297403Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3397403Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3497403Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3597403Sobrien * SUCH DAMAGE.
3697403Sobrien *
3797403Sobrien *	@(#)extern.h	8.2 (Berkeley) 4/18/94
3897403Sobrien */
3997403Sobrien
4097403Sobrien/*
4197403Sobrien * External references from each source file
4297403Sobrien */
4397403Sobrien
4497403Sobrien#include <sys/cdefs.h>
4597403Sobrien
4697403Sobrien/*
4797403Sobrien * ar_io.c
4897403Sobrien */
4997403Sobrienextern char *arcname;
5097403Sobrienint ar_open __P((char *));
5197403Sobrienvoid ar_close __P((void));
5297403Sobrienvoid ar_drain __P((void));
5397403Sobrienint ar_set_wr __P((void));
5497403Sobrienint ar_app_ok __P((void));
5597403Sobrienint ar_read __P((register char *, register int));
5697403Sobrienint ar_write __P((register char *, register int));
5797403Sobrienint ar_rdsync __P((void));
5897403Sobrienint ar_fow __P((off_t, off_t *));
5997403Sobrienint ar_rev __P((off_t ));
6097403Sobrienint ar_next __P((void));
6197403Sobrien
62132720Skan/*
63132720Skan * ar_subs.c
6497403Sobrien */
6597403Sobrienextern u_long flcnt;
6697403Sobrienvoid list __P((void));
6797403Sobrienvoid extract __P((void));
6897403Sobrienvoid append __P((void));
6997403Sobrienvoid archive __P((void));
7097403Sobrienvoid copy __P((void));
7197403Sobrien
72169691Skan/*
73169691Skan * buf_subs.c
7497403Sobrien */
7597403Sobrienextern int blksz;
7697403Sobrienextern int wrblksz;
7797403Sobrienextern int maxflt;
78132720Skanextern int rdblksz;
7997403Sobrienextern off_t wrlimit;
80169691Skanextern off_t rdcnt;
81169691Skanextern off_t wrcnt;
8297403Sobrienint wr_start __P((void));
83169691Skanint rd_start __P((void));
84169691Skanvoid cp_start __P((void));
85169691Skanint appnd_start __P((off_t));
86169691Skanint rd_sync __P((void));
87169691Skanvoid pback __P((char *, int));
88169691Skanint rd_skip __P((off_t));
89169691Skanvoid wr_fin __P((void));
90169691Skanint wr_rdbuf __P((register char *, register int));
91169691Skanint rd_wrbuf __P((register char *, register int));
92169691Skanint wr_skip __P((off_t));
93169691Skanint wr_rdfile __P((ARCHD *, int, off_t *));
94169691Skanint rd_wrfile __P((ARCHD *, int, off_t *));
95169691Skanvoid cp_file __P((ARCHD *, int, int));
96169691Skanint buf_fill __P((void));
97169691Skanint buf_flush __P((register int));
98169691Skan
99169691Skan/*
100169691Skan * cache.c
101169691Skan */
102169691Skanint uidtb_start __P((void));
103169691Skanint gidtb_start __P((void));
104169691Skanint usrtb_start __P((void));
105169691Skanint grptb_start __P((void));
106169691Skanchar * name_uid __P((uid_t, int));
107169691Skanchar * name_gid __P((gid_t, int));
108169691Skanint uid_name __P((char *, uid_t *));
109169691Skanint gid_name __P((char *, gid_t *));
110169691Skan
111169691Skan/*
112169691Skan * cpio.c
113169691Skan */
114169691Skanint cpio_strd __P((void));
115169691Skanint cpio_trail __P((register ARCHD *));
116169691Skanint cpio_endwr __P((void));
117169691Skanint cpio_id __P((char *, int));
118169691Skanint cpio_rd __P((register ARCHD *, register char *));
119169691Skanoff_t cpio_endrd __P((void));
120169691Skanint cpio_stwr __P((void));
121169691Skanint cpio_wr __P((register ARCHD *));
122169691Skanint vcpio_id __P((char *, int));
123169691Skanint crc_id __P((char *, int));
124169691Skanint crc_strd __P((void));
125169691Skanint vcpio_rd __P((register ARCHD *, register char *));
126169691Skanoff_t vcpio_endrd __P((void));
127169691Skanint crc_stwr __P((void));
128169691Skanint vcpio_wr __P((register ARCHD *));
129169691Skanint bcpio_id __P((char *, int));
130169691Skanint bcpio_rd __P((register ARCHD *, register char *));
131169691Skanoff_t bcpio_endrd __P((void));
132169691Skanint bcpio_wr __P((register ARCHD *));
13397403Sobrien
13497403Sobrien/*
13597403Sobrien * file_subs.c
13697403Sobrien */
13797403Sobrienint file_creat __P((register ARCHD *));
13897403Sobrienvoid file_close __P((register ARCHD *, int));
13997403Sobrienint lnk_creat __P((register ARCHD *));
14097403Sobrienint cross_lnk __P((register ARCHD *));
141132720Skanint chk_same __P((register ARCHD *));
14297403Sobrienint node_creat __P((register ARCHD *));
143132720Skanint unlnk_exist __P((register char *, register int));
14497403Sobrienint chk_path __P((register char *, uid_t, gid_t));
145132720Skanvoid set_ftime __P((char *fnm, time_t mtime, time_t atime, int frc));
146132720Skanint set_ids __P((char *, uid_t, gid_t));
147132720Skanvoid set_pmode __P((char *, mode_t));
148132720Skanint file_write __P((int, char *, register int, int *, int *, int, char *));
14997403Sobrienvoid file_flush __P((int, char *, int));
15097403Sobrienvoid rdfile_close __P((register ARCHD *, register int *));
151132720Skanint set_crc __P((register ARCHD *, register int));
152132720Skan
153132720Skan/*
154132720Skan * ftree.c
155132720Skan */
156132720Skanint ftree_start __P((void));
157132720Skanint ftree_add __P((register char *));
158132720Skanvoid ftree_sel __P((register ARCHD *));
15997403Sobrienvoid ftree_chk __P((void));
160169691Skanint next_file __P((register ARCHD *));
161169691Skan
162169691Skan/*
163169691Skan * gen_subs.c
164169691Skan */
165169691Skanvoid ls_list __P((register ARCHD *, time_t));
166169691Skanvoid ls_tty __P((register ARCHD *));
167169691Skanvoid zf_strncpy __P((register char *, register char *, int));
16897403Sobrienint l_strncpy __P((register char *, register char *, int));
16997403Sobrienu_long asc_ul __P((register char *, int, register int));
17097403Sobrienint ul_asc __P((u_long, register char *, register int, register int));
17197403Sobrien#ifndef NET2_STAT
17297403Sobrienu_quad_t asc_uqd __P((register char *, int, register int));
17397403Sobrienint uqd_asc __P((u_quad_t, register char *, register int, register int));
17497403Sobrien#endif
17597403Sobrien
17697403Sobrien/*
17797403Sobrien * options.c
17897403Sobrien */
17997403Sobrienextern FSUB fsub[];
18097403Sobrienextern int ford[];
18197403Sobrienvoid options __P((register int, register char **));
18297403SobrienOPLIST * opt_next __P((void));
18397403Sobrienint opt_add __P((register char *));
18497403Sobrienint bad_opt __P((void));
185132720Skan
18697403Sobrien/*
187132720Skan * pat_rep.c
188132720Skan */
189132720Skanint rep_add __P((register char *));
19097403Sobrienint pat_add __P((char *));
19197403Sobrienvoid pat_chk __P((void));
19297403Sobrienint pat_sel __P((register ARCHD *));
19397403Sobrienint pat_match __P((register ARCHD *));
19497403Sobrienint mod_name __P((register ARCHD *));
19597403Sobrienint set_dest __P((register ARCHD *, char *, int));
19697403Sobrien
19797403Sobrien/*
19897403Sobrien * pax.c
19997403Sobrien */
20097403Sobrienextern int act;
20197403Sobrienextern FSUB *frmt;
20297403Sobrienextern int cflag;
20397403Sobrienextern int dflag;
204132720Skanextern int iflag;
20597403Sobrienextern int kflag;
20697403Sobrienextern int lflag;
207132720Skanextern int nflag;
20897403Sobrienextern int tflag;
209132720Skanextern int uflag;
210132720Skanextern int vflag;
211132720Skanextern int Dflag;
21297403Sobrienextern int Hflag;
21397403Sobrienextern int Lflag;
21497403Sobrienextern int Xflag;
21597403Sobrienextern int Yflag;
21697403Sobrienextern int Zflag;
21797403Sobrienextern int vfpart;
21897403Sobrienextern int patime;
21997403Sobrienextern int pmtime;
22097403Sobrienextern int pmode;
22197403Sobrienextern int pids;
22297403Sobrienextern int exit_val;
22397403Sobrienextern int docrc;
22497403Sobrienextern char *dirptr;
22597403Sobrienextern char *ltmfrmt;
22697403Sobrienextern char *argv0;
22797403Sobrienint main __P((int, char **));
22897403Sobrienvoid sig_cleanup __P((int));
229132720Skan
230132720Skan/*
231132720Skan * sel_subs.c
23297403Sobrien */
23397403Sobrienint sel_chk __P((register ARCHD *));
23497403Sobrienint grp_add __P((register char *));
23597403Sobrienint usr_add __P((register char *));
23697403Sobrienint trng_add __P((register char *));
23797403Sobrien
23897403Sobrien/*
23997403Sobrien * tables.c
24097403Sobrien */
24197403Sobrienint lnk_start __P((void));
24297403Sobrienint chk_lnk __P((register ARCHD *));
24397403Sobrienvoid purg_lnk __P((register ARCHD *));
24497403Sobrienvoid lnk_end __P((void));
24597403Sobrienint ftime_start __P((void));
24697403Sobrienint chk_ftime __P((register ARCHD *));
24797403Sobrienint name_start __P((void));
24897403Sobrienint add_name __P((register char *, int, char *));
249132720Skanvoid sub_name __P((register char *, int *));
250132720Skanint dev_start __P((void));
251132720Skanint add_dev __P((register ARCHD *));
25297403Sobrienint map_dev __P((register ARCHD *, u_long, u_long));
25397403Sobrienint atdir_start __P((void));
254169691Skanvoid atdir_end __P((void));
25597403Sobrienvoid add_atdir __P((char *, dev_t, ino_t, time_t, time_t));
25697403Sobrienint get_atdir __P((dev_t, ino_t, time_t *, time_t *));
25797403Sobrienint dir_start __P((void));
25897403Sobrienvoid add_dir __P((char *, int, struct stat *, int));
25997403Sobrienvoid proc_dir __P((void));
260169691Skanu_int st_hash __P((char *, int, int));
261169691Skan
26297403Sobrien/*
263169691Skan * tar.c
264169691Skan */
265169691Skanint tar_endwr __P((void));
266169691Skanoff_t tar_endrd __P((void));
267169691Skanint tar_trail __P((register char *, register int, register int *));
268169691Skanint tar_id __P((register char *, int));
269169691Skanint tar_opt __P((void));
270169691Skanint tar_rd __P((register ARCHD *, register char *));
271169691Skanint tar_wr __P((register ARCHD *));
27297403Sobrienint ustar_strd __P((void));
273169691Skanint ustar_stwr __P((void));
274169691Skanint ustar_id __P((char *, int));
27597403Sobrienint ustar_rd __P((register ARCHD *, register char *));
276169691Skanint ustar_wr __P((register ARCHD *));
277169691Skan
278169691Skan/*
279169691Skan * tty_subs.c
280169691Skan */
281169691Skanint tty_init __P((void));
282169691Skanvoid tty_prnt __P((char *, ...));
283169691Skanint tty_read __P((char *, int));
284169691Skanvoid warn __P((int, char *, ...));
285169691Skanvoid syswarn __P((int, int, char *, ...));
286169691Skan