extern.h revision 1.3
11.1Sjtc/*-
21.1Sjtc * Copyright (c) 1992 Keith Muller.
31.1Sjtc * Copyright (c) 1992, 1993
41.1Sjtc *	The Regents of the University of California.  All rights reserved.
51.1Sjtc *
61.1Sjtc * This code is derived from software contributed to Berkeley by
71.1Sjtc * Keith Muller of the University of California, San Diego.
81.1Sjtc *
91.1Sjtc * Redistribution and use in source and binary forms, with or without
101.1Sjtc * modification, are permitted provided that the following conditions
111.1Sjtc * are met:
121.1Sjtc * 1. Redistributions of source code must retain the above copyright
131.1Sjtc *    notice, this list of conditions and the following disclaimer.
141.1Sjtc * 2. Redistributions in binary form must reproduce the above copyright
151.1Sjtc *    notice, this list of conditions and the following disclaimer in the
161.1Sjtc *    documentation and/or other materials provided with the distribution.
171.1Sjtc * 3. All advertising materials mentioning features or use of this software
181.1Sjtc *    must display the following acknowledgement:
191.1Sjtc *	This product includes software developed by the University of
201.1Sjtc *	California, Berkeley and its contributors.
211.1Sjtc * 4. Neither the name of the University nor the names of its contributors
221.1Sjtc *    may be used to endorse or promote products derived from this software
231.1Sjtc *    without specific prior written permission.
241.1Sjtc *
251.1Sjtc * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
261.1Sjtc * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
271.1Sjtc * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
281.1Sjtc * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
291.1Sjtc * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
301.1Sjtc * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
311.1Sjtc * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
321.1Sjtc * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
331.1Sjtc * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
341.1Sjtc * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
351.1Sjtc * SUCH DAMAGE.
361.1Sjtc *
371.2Sjtc *	from: @(#)extern.h	8.2 (Berkeley) 4/18/94
381.3Scgd *	$Id: extern.h,v 1.3 1994/12/04 07:11:52 cgd Exp $
391.1Sjtc */
401.1Sjtc
411.1Sjtc/*
421.1Sjtc * External references from each source file
431.1Sjtc */
441.1Sjtc
451.1Sjtc#include <sys/cdefs.h>
461.1Sjtc
471.1Sjtc/*
481.1Sjtc * ar_io.c
491.1Sjtc */
501.1Sjtcextern char *arcname;
511.1Sjtcint ar_open __P((char *));
521.1Sjtcvoid ar_close __P((void));
531.1Sjtcvoid ar_drain __P((void));
541.1Sjtcint ar_set_wr __P((void));
551.1Sjtcint ar_app_ok __P((void));
561.1Sjtcint ar_read __P((register char *, register int));
571.1Sjtcint ar_write __P((register char *, register int));
581.1Sjtcint ar_rdsync __P((void));
591.1Sjtcint ar_fow __P((off_t, off_t *));
601.1Sjtcint ar_rev __P((off_t ));
611.1Sjtcint ar_next __P((void));
621.1Sjtc
631.1Sjtc/*
641.1Sjtc * ar_subs.c
651.1Sjtc */
661.1Sjtcextern u_long flcnt;
671.1Sjtcvoid list __P((void));
681.1Sjtcvoid extract __P((void));
691.1Sjtcvoid append __P((void));
701.1Sjtcvoid archive __P((void));
711.1Sjtcvoid copy __P((void));
721.1Sjtc
731.1Sjtc/*
741.1Sjtc * buf_subs.c
751.1Sjtc */
761.1Sjtcextern int blksz;
771.1Sjtcextern int wrblksz;
781.1Sjtcextern int maxflt;
791.1Sjtcextern int rdblksz;
801.1Sjtcextern off_t wrlimit;
811.1Sjtcextern off_t rdcnt;
821.1Sjtcextern off_t wrcnt;
831.1Sjtcint wr_start __P((void));
841.1Sjtcint rd_start __P((void));
851.1Sjtcvoid cp_start __P((void));
861.1Sjtcint appnd_start __P((off_t));
871.1Sjtcint rd_sync __P((void));
881.1Sjtcvoid pback __P((char *, int));
891.1Sjtcint rd_skip __P((off_t));
901.1Sjtcvoid wr_fin __P((void));
911.1Sjtcint wr_rdbuf __P((register char *, register int));
921.1Sjtcint rd_wrbuf __P((register char *, register int));
931.1Sjtcint wr_skip __P((off_t));
941.1Sjtcint wr_rdfile __P((ARCHD *, int, off_t *));
951.1Sjtcint rd_wrfile __P((ARCHD *, int, off_t *));
961.1Sjtcvoid cp_file __P((ARCHD *, int, int));
971.1Sjtcint buf_fill __P((void));
981.1Sjtcint buf_flush __P((register int));
991.1Sjtc
1001.1Sjtc/*
1011.1Sjtc * cache.c
1021.1Sjtc */
1031.1Sjtcint uidtb_start __P((void));
1041.1Sjtcint gidtb_start __P((void));
1051.1Sjtcint usrtb_start __P((void));
1061.1Sjtcint grptb_start __P((void));
1071.1Sjtcchar * name_uid __P((uid_t, int));
1081.1Sjtcchar * name_gid __P((gid_t, int));
1091.1Sjtcint uid_name __P((char *, uid_t *));
1101.1Sjtcint gid_name __P((char *, gid_t *));
1111.1Sjtc
1121.1Sjtc/*
1131.1Sjtc * cpio.c
1141.1Sjtc */
1151.1Sjtcint cpio_strd __P((void));
1161.1Sjtcint cpio_trail __P((register ARCHD *));
1171.1Sjtcint cpio_endwr __P((void));
1181.1Sjtcint cpio_id __P((char *, int));
1191.1Sjtcint cpio_rd __P((register ARCHD *, register char *));
1201.1Sjtcoff_t cpio_endrd __P((void));
1211.1Sjtcint cpio_stwr __P((void));
1221.1Sjtcint cpio_wr __P((register ARCHD *));
1231.1Sjtcint vcpio_id __P((char *, int));
1241.1Sjtcint crc_id __P((char *, int));
1251.1Sjtcint crc_strd __P((void));
1261.1Sjtcint vcpio_rd __P((register ARCHD *, register char *));
1271.1Sjtcoff_t vcpio_endrd __P((void));
1281.1Sjtcint crc_stwr __P((void));
1291.1Sjtcint vcpio_wr __P((register ARCHD *));
1301.1Sjtcint bcpio_id __P((char *, int));
1311.1Sjtcint bcpio_rd __P((register ARCHD *, register char *));
1321.1Sjtcoff_t bcpio_endrd __P((void));
1331.1Sjtcint bcpio_wr __P((register ARCHD *));
1341.1Sjtc
1351.1Sjtc/*
1361.1Sjtc * file_subs.c
1371.1Sjtc */
1381.1Sjtcint file_creat __P((register ARCHD *));
1391.1Sjtcvoid file_close __P((register ARCHD *, int));
1401.1Sjtcint lnk_creat __P((register ARCHD *));
1411.1Sjtcint cross_lnk __P((register ARCHD *));
1421.1Sjtcint chk_same __P((register ARCHD *));
1431.1Sjtcint node_creat __P((register ARCHD *));
1441.1Sjtcint unlnk_exist __P((register char *, register int));
1451.1Sjtcint chk_path __P((register char *, uid_t, gid_t));
1461.1Sjtcvoid set_ftime __P((char *fnm, time_t mtime, time_t atime, int frc));
1471.1Sjtcint set_ids __P((char *, uid_t, gid_t));
1481.1Sjtcvoid set_pmode __P((char *, mode_t));
1491.1Sjtcint file_write __P((int, char *, register int, int *, int *, int, char *));
1501.1Sjtcvoid file_flush __P((int, char *, int));
1511.1Sjtcvoid rdfile_close __P((register ARCHD *, register int *));
1521.1Sjtcint set_crc __P((register ARCHD *, register int));
1531.1Sjtc
1541.1Sjtc/*
1551.1Sjtc * ftree.c
1561.1Sjtc */
1571.1Sjtcint ftree_start __P((void));
1581.1Sjtcint ftree_add __P((register char *));
1591.1Sjtcvoid ftree_sel __P((register ARCHD *));
1601.1Sjtcvoid ftree_chk __P((void));
1611.1Sjtcint next_file __P((register ARCHD *));
1621.1Sjtc
1631.1Sjtc/*
1641.1Sjtc * gen_subs.c
1651.1Sjtc */
1661.1Sjtcvoid ls_list __P((register ARCHD *, time_t));
1671.1Sjtcvoid ls_tty __P((register ARCHD *));
1681.1Sjtcvoid zf_strncpy __P((register char *, register char *, int));
1691.1Sjtcint l_strncpy __P((register char *, register char *, int));
1701.1Sjtcu_long asc_ul __P((register char *, int, register int));
1711.1Sjtcint ul_asc __P((u_long, register char *, register int, register int));
1721.1Sjtc#ifndef NET2_STAT
1731.1Sjtcu_quad_t asc_uqd __P((register char *, int, register int));
1741.1Sjtcint uqd_asc __P((u_quad_t, register char *, register int, register int));
1751.1Sjtc#endif
1761.3Scgd
1771.3Scgd/*
1781.3Scgd * getoldopt.c
1791.3Scgd */
1801.3Scgdint getoldopt __P((int, char **, char *));
1811.1Sjtc
1821.1Sjtc/*
1831.1Sjtc * options.c
1841.1Sjtc */
1851.1Sjtcextern FSUB fsub[];
1861.1Sjtcextern int ford[];
1871.1Sjtcvoid options __P((register int, register char **));
1881.1SjtcOPLIST * opt_next __P((void));
1891.1Sjtcint opt_add __P((register char *));
1901.1Sjtcint bad_opt __P((void));
1911.1Sjtc
1921.1Sjtc/*
1931.1Sjtc * pat_rep.c
1941.1Sjtc */
1951.1Sjtcint rep_add __P((register char *));
1961.1Sjtcint pat_add __P((char *));
1971.1Sjtcvoid pat_chk __P((void));
1981.1Sjtcint pat_sel __P((register ARCHD *));
1991.1Sjtcint pat_match __P((register ARCHD *));
2001.1Sjtcint mod_name __P((register ARCHD *));
2011.1Sjtcint set_dest __P((register ARCHD *, char *, int));
2021.1Sjtc
2031.1Sjtc/*
2041.1Sjtc * pax.c
2051.1Sjtc */
2061.1Sjtcextern int act;
2071.1Sjtcextern FSUB *frmt;
2081.1Sjtcextern int cflag;
2091.1Sjtcextern int dflag;
2101.1Sjtcextern int iflag;
2111.1Sjtcextern int kflag;
2121.1Sjtcextern int lflag;
2131.1Sjtcextern int nflag;
2141.1Sjtcextern int tflag;
2151.1Sjtcextern int uflag;
2161.1Sjtcextern int vflag;
2171.1Sjtcextern int Dflag;
2181.1Sjtcextern int Hflag;
2191.1Sjtcextern int Lflag;
2201.1Sjtcextern int Xflag;
2211.1Sjtcextern int Yflag;
2221.1Sjtcextern int Zflag;
2231.1Sjtcextern int vfpart;
2241.1Sjtcextern int patime;
2251.1Sjtcextern int pmtime;
2261.1Sjtcextern int pmode;
2271.1Sjtcextern int pids;
2281.1Sjtcextern int exit_val;
2291.1Sjtcextern int docrc;
2301.1Sjtcextern char *dirptr;
2311.1Sjtcextern char *ltmfrmt;
2321.1Sjtcextern char *argv0;
2331.1Sjtcint main __P((int, char **));
2341.1Sjtcvoid sig_cleanup __P((int));
2351.1Sjtc
2361.1Sjtc/*
2371.1Sjtc * sel_subs.c
2381.1Sjtc */
2391.1Sjtcint sel_chk __P((register ARCHD *));
2401.1Sjtcint grp_add __P((register char *));
2411.1Sjtcint usr_add __P((register char *));
2421.1Sjtcint trng_add __P((register char *));
2431.1Sjtc
2441.1Sjtc/*
2451.1Sjtc * tables.c
2461.1Sjtc */
2471.1Sjtcint lnk_start __P((void));
2481.1Sjtcint chk_lnk __P((register ARCHD *));
2491.1Sjtcvoid purg_lnk __P((register ARCHD *));
2501.1Sjtcvoid lnk_end __P((void));
2511.1Sjtcint ftime_start __P((void));
2521.1Sjtcint chk_ftime __P((register ARCHD *));
2531.1Sjtcint name_start __P((void));
2541.1Sjtcint add_name __P((register char *, int, char *));
2551.1Sjtcvoid sub_name __P((register char *, int *));
2561.1Sjtcint dev_start __P((void));
2571.1Sjtcint add_dev __P((register ARCHD *));
2581.1Sjtcint map_dev __P((register ARCHD *, u_long, u_long));
2591.1Sjtcint atdir_start __P((void));
2601.1Sjtcvoid atdir_end __P((void));
2611.1Sjtcvoid add_atdir __P((char *, dev_t, ino_t, time_t, time_t));
2621.1Sjtcint get_atdir __P((dev_t, ino_t, time_t *, time_t *));
2631.1Sjtcint dir_start __P((void));
2641.1Sjtcvoid add_dir __P((char *, int, struct stat *, int));
2651.1Sjtcvoid proc_dir __P((void));
2661.1Sjtcu_int st_hash __P((char *, int, int));
2671.1Sjtc
2681.1Sjtc/*
2691.1Sjtc * tar.c
2701.1Sjtc */
2711.1Sjtcint tar_endwr __P((void));
2721.1Sjtcoff_t tar_endrd __P((void));
2731.1Sjtcint tar_trail __P((register char *, register int, register int *));
2741.1Sjtcint tar_id __P((register char *, int));
2751.1Sjtcint tar_opt __P((void));
2761.1Sjtcint tar_rd __P((register ARCHD *, register char *));
2771.1Sjtcint tar_wr __P((register ARCHD *));
2781.1Sjtcint ustar_strd __P((void));
2791.1Sjtcint ustar_stwr __P((void));
2801.1Sjtcint ustar_id __P((char *, int));
2811.1Sjtcint ustar_rd __P((register ARCHD *, register char *));
2821.1Sjtcint ustar_wr __P((register ARCHD *));
2831.1Sjtc
2841.1Sjtc/*
2851.1Sjtc * tty_subs.c
2861.1Sjtc */
2871.1Sjtcint tty_init __P((void));
2881.1Sjtcvoid tty_prnt __P((char *, ...));
2891.1Sjtcint tty_read __P((char *, int));
2901.1Sjtcvoid warn __P((int, char *, ...));
2911.1Sjtcvoid syswarn __P((int, int, char *, ...));
292