extern.h revision 1.24
11.24Sthorpej/*	$NetBSD: extern.h,v 1.24 2000/07/04 17:17:49 thorpej Exp $	*/
21.4Scgd
31.1Sjtc/*-
41.1Sjtc * Copyright (c) 1992 Keith Muller.
51.1Sjtc * Copyright (c) 1992, 1993
61.1Sjtc *	The Regents of the University of California.  All rights reserved.
71.1Sjtc *
81.1Sjtc * This code is derived from software contributed to Berkeley by
91.1Sjtc * Keith Muller of the University of California, San Diego.
101.1Sjtc *
111.1Sjtc * Redistribution and use in source and binary forms, with or without
121.1Sjtc * modification, are permitted provided that the following conditions
131.1Sjtc * are met:
141.1Sjtc * 1. Redistributions of source code must retain the above copyright
151.1Sjtc *    notice, this list of conditions and the following disclaimer.
161.1Sjtc * 2. Redistributions in binary form must reproduce the above copyright
171.1Sjtc *    notice, this list of conditions and the following disclaimer in the
181.1Sjtc *    documentation and/or other materials provided with the distribution.
191.1Sjtc * 3. All advertising materials mentioning features or use of this software
201.1Sjtc *    must display the following acknowledgement:
211.1Sjtc *	This product includes software developed by the University of
221.1Sjtc *	California, Berkeley and its contributors.
231.1Sjtc * 4. Neither the name of the University nor the names of its contributors
241.1Sjtc *    may be used to endorse or promote products derived from this software
251.1Sjtc *    without specific prior written permission.
261.1Sjtc *
271.1Sjtc * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
281.1Sjtc * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
291.1Sjtc * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
301.1Sjtc * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
311.1Sjtc * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
321.1Sjtc * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
331.1Sjtc * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
341.1Sjtc * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
351.1Sjtc * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
361.1Sjtc * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
371.1Sjtc * SUCH DAMAGE.
381.1Sjtc *
391.4Scgd *	@(#)extern.h	8.2 (Berkeley) 4/18/94
401.1Sjtc */
411.1Sjtc
421.1Sjtc/*
431.1Sjtc * External references from each source file
441.1Sjtc */
451.1Sjtc
461.1Sjtc#include <sys/cdefs.h>
471.1Sjtc
481.1Sjtc/*
491.1Sjtc * ar_io.c
501.1Sjtc */
511.11Smycroftextern const char *arcname;
521.19Sisextern int curdirfd;
531.11Smycroftextern const char *gzip_program;
541.16Schristosextern time_t starttime;
551.23Sthorpejextern int force_one_volume;
561.11Smycroftint ar_open __P((const char *));
571.1Sjtcvoid ar_close __P((void));
581.1Sjtcvoid ar_drain __P((void));
591.1Sjtcint ar_set_wr __P((void));
601.1Sjtcint ar_app_ok __P((void));
611.21Sitohy#ifdef SYS_NO_RESTART
621.21Sitohyint read_with_restart __P((int, void *, int));
631.21Sitohyint write_with_restart __P((int, void *, int));
641.21Sitohy#else
651.21Sitohy#define read_with_restart	read
661.21Sitohy#define write_with_restart	write
671.21Sitohy#endif
681.21Sitohyint xread __P((int, void *, int));
691.21Sitohyint xwrite __P((int, void *, int));
701.7Slukemint ar_read __P((char *, int));
711.7Slukemint ar_write __P((char *, int));
721.1Sjtcint ar_rdsync __P((void));
731.1Sjtcint ar_fow __P((off_t, off_t *));
741.1Sjtcint ar_rev __P((off_t ));
751.1Sjtcint ar_next __P((void));
761.16Schristosvoid ar_summary __P((int));
771.19Sisint ar_dochdir __P((char *));
781.1Sjtc
791.1Sjtc/*
801.1Sjtc * ar_subs.c
811.1Sjtc */
821.1Sjtcextern u_long flcnt;
831.16Schristosextern ARCHD archd;
841.1Sjtcvoid list __P((void));
851.1Sjtcvoid extract __P((void));
861.1Sjtcvoid append __P((void));
871.1Sjtcvoid archive __P((void));
881.1Sjtcvoid copy __P((void));
891.1Sjtc
901.1Sjtc/*
911.1Sjtc * buf_subs.c
921.1Sjtc */
931.1Sjtcextern int blksz;
941.1Sjtcextern int wrblksz;
951.1Sjtcextern int maxflt;
961.1Sjtcextern int rdblksz;
971.1Sjtcextern off_t wrlimit;
981.1Sjtcextern off_t rdcnt;
991.1Sjtcextern off_t wrcnt;
1001.1Sjtcint wr_start __P((void));
1011.1Sjtcint rd_start __P((void));
1021.1Sjtcvoid cp_start __P((void));
1031.1Sjtcint appnd_start __P((off_t));
1041.1Sjtcint rd_sync __P((void));
1051.1Sjtcvoid pback __P((char *, int));
1061.1Sjtcint rd_skip __P((off_t));
1071.1Sjtcvoid wr_fin __P((void));
1081.7Slukemint wr_rdbuf __P((char *, int));
1091.7Slukemint rd_wrbuf __P((char *, int));
1101.1Sjtcint wr_skip __P((off_t));
1111.1Sjtcint wr_rdfile __P((ARCHD *, int, off_t *));
1121.1Sjtcint rd_wrfile __P((ARCHD *, int, off_t *));
1131.1Sjtcvoid cp_file __P((ARCHD *, int, int));
1141.1Sjtcint buf_fill __P((void));
1151.7Slukemint buf_flush __P((int));
1161.1Sjtc
1171.1Sjtc/*
1181.1Sjtc * cpio.c
1191.1Sjtc */
1201.8Smrgextern int cpio_swp_head;
1211.1Sjtcint cpio_strd __P((void));
1221.7Slukemint cpio_subtrail __P((ARCHD *));
1231.1Sjtcint cpio_endwr __P((void));
1241.1Sjtcint cpio_id __P((char *, int));
1251.7Slukemint cpio_rd __P((ARCHD *, char *));
1261.1Sjtcoff_t cpio_endrd __P((void));
1271.1Sjtcint cpio_stwr __P((void));
1281.7Slukemint cpio_wr __P((ARCHD *));
1291.1Sjtcint vcpio_id __P((char *, int));
1301.1Sjtcint crc_id __P((char *, int));
1311.1Sjtcint crc_strd __P((void));
1321.7Slukemint vcpio_rd __P((ARCHD *, char *));
1331.1Sjtcoff_t vcpio_endrd __P((void));
1341.1Sjtcint crc_stwr __P((void));
1351.7Slukemint vcpio_wr __P((ARCHD *));
1361.1Sjtcint bcpio_id __P((char *, int));
1371.7Slukemint bcpio_rd __P((ARCHD *, char *));
1381.1Sjtcoff_t bcpio_endrd __P((void));
1391.7Slukemint bcpio_wr __P((ARCHD *));
1401.1Sjtc
1411.1Sjtc/*
1421.1Sjtc * file_subs.c
1431.1Sjtc */
1441.18Smrgextern char *gnu_hack_string;
1451.7Slukemint file_creat __P((ARCHD *));
1461.7Slukemvoid file_close __P((ARCHD *, int));
1471.7Slukemint lnk_creat __P((ARCHD *));
1481.7Slukemint cross_lnk __P((ARCHD *));
1491.7Slukemint chk_same __P((ARCHD *));
1501.7Slukemint node_creat __P((ARCHD *));
1511.7Slukemint unlnk_exist __P((char *, int));
1521.7Slukemint chk_path __P((char *, uid_t, gid_t));
1531.1Sjtcvoid set_ftime __P((char *fnm, time_t mtime, time_t atime, int frc));
1541.1Sjtcint set_ids __P((char *, uid_t, gid_t));
1551.1Sjtcvoid set_pmode __P((char *, mode_t));
1561.20Smrgvoid set_chflags __P((char *fnm, u_int32_t flags));
1571.7Slukemint file_write __P((int, char *, int, int *, int *, int, char *));
1581.1Sjtcvoid file_flush __P((int, char *, int));
1591.7Slukemvoid rdfile_close __P((ARCHD *, int *));
1601.7Slukemint set_crc __P((ARCHD *, int));
1611.1Sjtc
1621.1Sjtc/*
1631.1Sjtc * ftree.c
1641.1Sjtc */
1651.1Sjtcint ftree_start __P((void));
1661.19Sisint ftree_add __P((char *, int));
1671.7Slukemvoid ftree_sel __P((ARCHD *));
1681.1Sjtcvoid ftree_chk __P((void));
1691.7Slukemint next_file __P((ARCHD *));
1701.1Sjtc
1711.1Sjtc/*
1721.1Sjtc * gen_subs.c
1731.1Sjtc */
1741.7Slukemvoid ls_list __P((ARCHD *, time_t));
1751.7Slukemvoid ls_tty __P((ARCHD *));
1761.10Smycroftvoid zf_strncpy __P((char *, const char *, int));
1771.10Smycroftint l_strncpy __P((char *, const char *, int));
1781.7Slukemu_long asc_ul __P((char *, int, int));
1791.7Slukemint ul_asc __P((u_long, char *, int, int));
1801.1Sjtc#ifndef NET2_STAT
1811.7Slukemu_quad_t asc_uqd __P((char *, int, int));
1821.7Slukemint uqd_asc __P((u_quad_t, char *, int, int));
1831.1Sjtc#endif
1841.17Stronint check_Aflag __P((void));
1851.3Scgd
1861.22Sitohy/*
1871.3Scgd * getoldopt.c
1881.3Scgd */
1891.24Sthorpejstruct option;
1901.24Sthorpejint getoldopt __P((int, char **, const char *, struct option *, int *));
1911.1Sjtc
1921.1Sjtc/*
1931.1Sjtc * options.c
1941.1Sjtc */
1951.1Sjtcextern FSUB fsub[];
1961.1Sjtcextern int ford[];
1971.9Smrgextern int cpio_mode;
1981.7Slukemvoid options __P((int, char **));
1991.1SjtcOPLIST * opt_next __P((void));
2001.15Stronint opt_add __P((const char *));
2011.19Sisint opt_chdir __P((char *));
2021.1Sjtcint bad_opt __P((void));
2031.1Sjtc
2041.1Sjtc/*
2051.1Sjtc * pat_rep.c
2061.1Sjtc */
2071.7Slukemint rep_add __P((char *));
2081.19Sisint pat_add __P((char *, int));
2091.1Sjtcvoid pat_chk __P((void));
2101.7Slukemint pat_sel __P((ARCHD *));
2111.7Slukemint pat_match __P((ARCHD *));
2121.7Slukemint mod_name __P((ARCHD *));
2131.7Slukemint set_dest __P((ARCHD *, char *, int));
2141.1Sjtc
2151.1Sjtc/*
2161.1Sjtc * pax.c
2171.1Sjtc */
2181.1Sjtcextern int act;
2191.1Sjtcextern FSUB *frmt;
2201.17Stronextern int Aflag;
2211.1Sjtcextern int cflag;
2221.1Sjtcextern int dflag;
2231.1Sjtcextern int iflag;
2241.1Sjtcextern int kflag;
2251.1Sjtcextern int lflag;
2261.1Sjtcextern int nflag;
2271.1Sjtcextern int tflag;
2281.1Sjtcextern int uflag;
2291.1Sjtcextern int vflag;
2301.5Smrgextern int zflag;
2311.1Sjtcextern int Dflag;
2321.1Sjtcextern int Hflag;
2331.1Sjtcextern int Lflag;
2341.1Sjtcextern int Xflag;
2351.1Sjtcextern int Yflag;
2361.1Sjtcextern int Zflag;
2371.1Sjtcextern int vfpart;
2381.1Sjtcextern int patime;
2391.1Sjtcextern int pmtime;
2401.20Smrgextern int pfflags;
2411.1Sjtcextern int pmode;
2421.1Sjtcextern int pids;
2431.1Sjtcextern int exit_val;
2441.1Sjtcextern int docrc;
2451.1Sjtcextern char *dirptr;
2461.11Smycroftextern const char *ltmfrmt;
2471.1Sjtcextern char *argv0;
2481.1Sjtcint main __P((int, char **));
2491.1Sjtcvoid sig_cleanup __P((int));
2501.1Sjtc
2511.1Sjtc/*
2521.1Sjtc * sel_subs.c
2531.1Sjtc */
2541.7Slukemint sel_chk __P((ARCHD *));
2551.7Slukemint grp_add __P((char *));
2561.7Slukemint usr_add __P((char *));
2571.7Slukemint trng_add __P((char *));
2581.1Sjtc
2591.1Sjtc/*
2601.1Sjtc * tables.c
2611.1Sjtc */
2621.1Sjtcint lnk_start __P((void));
2631.7Slukemint chk_lnk __P((ARCHD *));
2641.7Slukemvoid purg_lnk __P((ARCHD *));
2651.1Sjtcvoid lnk_end __P((void));
2661.1Sjtcint ftime_start __P((void));
2671.7Slukemint chk_ftime __P((ARCHD *));
2681.1Sjtcint name_start __P((void));
2691.7Slukemint add_name __P((char *, int, char *));
2701.7Slukemvoid sub_name __P((char *, int *));
2711.1Sjtcint dev_start __P((void));
2721.7Slukemint add_dev __P((ARCHD *));
2731.7Slukemint map_dev __P((ARCHD *, u_long, u_long));
2741.1Sjtcint atdir_start __P((void));
2751.1Sjtcvoid atdir_end __P((void));
2761.1Sjtcvoid add_atdir __P((char *, dev_t, ino_t, time_t, time_t));
2771.1Sjtcint get_atdir __P((dev_t, ino_t, time_t *, time_t *));
2781.1Sjtcint dir_start __P((void));
2791.1Sjtcvoid add_dir __P((char *, int, struct stat *, int));
2801.1Sjtcvoid proc_dir __P((void));
2811.1Sjtcu_int st_hash __P((char *, int, int));
2821.1Sjtc
2831.1Sjtc/*
2841.1Sjtc * tar.c
2851.1Sjtc */
2861.13Stvextern int is_oldgnutar;
2871.1Sjtcint tar_endwr __P((void));
2881.1Sjtcoff_t tar_endrd __P((void));
2891.7Slukemint tar_trail __P((char *, int, int *));
2901.7Slukemint tar_id __P((char *, int));
2911.1Sjtcint tar_opt __P((void));
2921.7Slukemint tar_rd __P((ARCHD *, char *));
2931.7Slukemint tar_wr __P((ARCHD *));
2941.1Sjtcint ustar_strd __P((void));
2951.1Sjtcint ustar_stwr __P((void));
2961.1Sjtcint ustar_id __P((char *, int));
2971.7Slukemint ustar_rd __P((ARCHD *, char *));
2981.7Slukemint ustar_wr __P((ARCHD *));
2991.14Smrgint tar_gnutar_X_compat __P((const char *));
3001.1Sjtc
3011.1Sjtc/*
3021.1Sjtc * tty_subs.c
3031.1Sjtc */
3041.1Sjtcint tty_init __P((void));
3051.6Schristosvoid tty_prnt __P((char *, ...))
3061.6Schristos    __attribute__((format (printf, 1, 2)));
3071.1Sjtcint tty_read __P((char *, int));
3081.6Schristosvoid tty_warn __P((int, char *, ...))
3091.6Schristos    __attribute__((format (printf, 2, 3)));
3101.6Schristosvoid syswarn __P((int, int, char *, ...))
3111.6Schristos    __attribute__((format (printf, 3, 4)));
312