extern.h revision 76017
11556Srgrimes/*-
21556Srgrimes * Copyright (c) 1992 Keith Muller.
31556Srgrimes * Copyright (c) 1992, 1993
41556Srgrimes *	The Regents of the University of California.  All rights reserved.
51556Srgrimes *
61556Srgrimes * This code is derived from software contributed to Berkeley by
71556Srgrimes * Keith Muller of the University of California, San Diego.
81556Srgrimes *
91556Srgrimes * Redistribution and use in source and binary forms, with or without
101556Srgrimes * modification, are permitted provided that the following conditions
111556Srgrimes * are met:
121556Srgrimes * 1. Redistributions of source code must retain the above copyright
131556Srgrimes *    notice, this list of conditions and the following disclaimer.
141556Srgrimes * 2. Redistributions in binary form must reproduce the above copyright
151556Srgrimes *    notice, this list of conditions and the following disclaimer in the
161556Srgrimes *    documentation and/or other materials provided with the distribution.
171556Srgrimes * 3. All advertising materials mentioning features or use of this software
181556Srgrimes *    must display the following acknowledgement:
191556Srgrimes *	This product includes software developed by the University of
201556Srgrimes *	California, Berkeley and its contributors.
211556Srgrimes * 4. Neither the name of the University nor the names of its contributors
221556Srgrimes *    may be used to endorse or promote products derived from this software
231556Srgrimes *    without specific prior written permission.
241556Srgrimes *
251556Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
261556Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
271556Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
281556Srgrimes * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
291556Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
301556Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
311556Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
321556Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
331556Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
341556Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
353044Sdg * SUCH DAMAGE.
369991Sache *
371556Srgrimes *	@(#)extern.h	8.2 (Berkeley) 4/18/94
381556Srgrimes * $FreeBSD: head/bin/pax/extern.h 76017 2001-04-26 08:37:00Z kris $
391556Srgrimes */
401556Srgrimes
411556Srgrimes/*
421556Srgrimes * External references from each source file
431556Srgrimes */
441556Srgrimes
451556Srgrimes#include <sys/cdefs.h>
461556Srgrimes
471556Srgrimes/*
481556Srgrimes * ar_io.c
491556Srgrimes */
501556Srgrimesextern char *arcname;
511556Srgrimesint ar_open __P((char *));
521556Srgrimesvoid ar_close __P((void));
531556Srgrimesvoid ar_drain __P((void));
541556Srgrimesint ar_set_wr __P((void));
551556Srgrimesint ar_app_ok __P((void));
561556Srgrimesint ar_read __P((register char *, register int));
571556Srgrimesint ar_write __P((register char *, register int));
581556Srgrimesint ar_rdsync __P((void));
591556Srgrimesint ar_fow __P((off_t, off_t *));
601556Srgrimesint ar_rev __P((off_t ));
611556Srgrimesint ar_next __P((void));
621556Srgrimes
631556Srgrimes/*
641556Srgrimes * ar_subs.c
651556Srgrimes */
661556Srgrimesextern u_long flcnt;
671556Srgrimesvoid list __P((void));
681556Srgrimesvoid extract __P((void));
691556Srgrimesvoid append __P((void));
701556Srgrimesvoid archive __P((void));
711556Srgrimesvoid copy __P((void));
721556Srgrimes
731556Srgrimes/*
741556Srgrimes * buf_subs.c
751556Srgrimes */
761556Srgrimesextern int blksz;
771556Srgrimesextern int wrblksz;
781556Srgrimesextern int maxflt;
791556Srgrimesextern int rdblksz;
801556Srgrimesextern off_t wrlimit;
811556Srgrimesextern off_t rdcnt;
821556Srgrimesextern off_t wrcnt;
831556Srgrimesint wr_start __P((void));
841556Srgrimesint rd_start __P((void));
851556Srgrimesvoid cp_start __P((void));
861556Srgrimesint appnd_start __P((off_t));
871556Srgrimesint rd_sync __P((void));
881556Srgrimesvoid pback __P((char *, int));
891556Srgrimesint rd_skip __P((off_t));
901556Srgrimesvoid wr_fin __P((void));
911556Srgrimesint wr_rdbuf __P((register char *, register int));
921556Srgrimesint rd_wrbuf __P((register char *, register int));
931556Srgrimesint wr_skip __P((off_t));
941556Srgrimesint wr_rdfile __P((ARCHD *, int, off_t *));
951556Srgrimesint rd_wrfile __P((ARCHD *, int, off_t *));
961556Srgrimesvoid cp_file __P((ARCHD *, int, int));
971556Srgrimesint buf_fill __P((void));
981556Srgrimesint buf_flush __P((register int));
991556Srgrimes
1001556Srgrimes/*
1011556Srgrimes * cache.c
1021556Srgrimes */
1031556Srgrimesint uidtb_start __P((void));
1041556Srgrimesint gidtb_start __P((void));
1051556Srgrimesint usrtb_start __P((void));
1061556Srgrimesint grptb_start __P((void));
1071556Srgrimeschar * name_uid __P((uid_t, int));
1081556Srgrimeschar * name_gid __P((gid_t, int));
1091556Srgrimesint uid_name __P((char *, uid_t *));
1101556Srgrimesint gid_name __P((char *, gid_t *));
1111556Srgrimes
1121556Srgrimes/*
1131556Srgrimes * cpio.c
1141556Srgrimes */
1151556Srgrimesint cpio_strd __P((void));
1161556Srgrimesint cpio_trail __P((register ARCHD *));
1171556Srgrimesint cpio_endwr __P((void));
1181556Srgrimesint cpio_id __P((char *, int));
1191556Srgrimesint cpio_rd __P((register ARCHD *, register char *));
1201556Srgrimesoff_t cpio_endrd __P((void));
1211556Srgrimesint cpio_stwr __P((void));
1221556Srgrimesint cpio_wr __P((register ARCHD *));
1231556Srgrimesint vcpio_id __P((char *, int));
1241556Srgrimesint crc_id __P((char *, int));
1251556Srgrimesint crc_strd __P((void));
1261556Srgrimesint vcpio_rd __P((register ARCHD *, register char *));
1271556Srgrimesoff_t vcpio_endrd __P((void));
1281556Srgrimesint crc_stwr __P((void));
1291556Srgrimesint vcpio_wr __P((register ARCHD *));
1301556Srgrimesint bcpio_id __P((char *, int));
1311556Srgrimesint bcpio_rd __P((register ARCHD *, register char *));
1321556Srgrimesoff_t bcpio_endrd __P((void));
1331556Srgrimesint bcpio_wr __P((register ARCHD *));
1341556Srgrimes
1351556Srgrimes/*
1361556Srgrimes * file_subs.c
1371556Srgrimes */
1381556Srgrimesint file_creat __P((register ARCHD *));
1391556Srgrimesvoid file_close __P((register ARCHD *, int));
1401556Srgrimesint lnk_creat __P((register ARCHD *));
1411556Srgrimesint cross_lnk __P((register ARCHD *));
1421556Srgrimesint chk_same __P((register ARCHD *));
1431556Srgrimesint node_creat __P((register ARCHD *));
1441556Srgrimesint unlnk_exist __P((register char *, register int));
1451556Srgrimesint chk_path __P((register char *, uid_t, gid_t));
1461556Srgrimesvoid set_ftime __P((char *fnm, time_t mtime, time_t atime, int frc));
1471556Srgrimesint set_ids __P((char *, uid_t, gid_t));
1481556Srgrimesvoid set_pmode __P((char *, mode_t));
1491556Srgrimesint file_write __P((int, char *, register int, int *, int *, int, char *));
1501556Srgrimesvoid file_flush __P((int, char *, int));
1511556Srgrimesvoid rdfile_close __P((register ARCHD *, register int *));
1521556Srgrimesint set_crc __P((register ARCHD *, register int));
1531556Srgrimes
1541556Srgrimes/*
1551556Srgrimes * ftree.c
1561556Srgrimes */
1571556Srgrimesint ftree_start __P((void));
1581556Srgrimesint ftree_add __P((register char *));
1591556Srgrimesvoid ftree_sel __P((register ARCHD *));
1601556Srgrimesvoid ftree_chk __P((void));
1611556Srgrimesint next_file __P((register ARCHD *));
1621556Srgrimes
1631556Srgrimes/*
1641556Srgrimes * gen_subs.c
1651556Srgrimes */
1661556Srgrimesvoid ls_list __P((register ARCHD *, time_t));
1671556Srgrimesvoid ls_tty __P((register ARCHD *));
1681556Srgrimesvoid zf_strncpy __P((register char *, register char *, int));
1691556Srgrimesint l_strncpy __P((register char *, register char *, int));
1701556Srgrimesu_long asc_ul __P((register char *, int, register int));
1711556Srgrimesint ul_asc __P((u_long, register char *, register int, register int));
1721556Srgrimes#ifndef NET2_STAT
1731556Srgrimesu_quad_t asc_uqd __P((register char *, int, register int));
1741556Srgrimesint uqd_asc __P((u_quad_t, register char *, register int, register int));
1751556Srgrimes#endif
1761556Srgrimes
1771556Srgrimes/*
1781556Srgrimes * options.c
1791556Srgrimes */
1801556Srgrimesextern FSUB fsub[];
1811556Srgrimesextern int ford[];
1821556Srgrimesvoid options __P((register int, register char **));
1831556SrgrimesOPLIST * opt_next __P((void));
1841556Srgrimesint opt_add __P((register char *));
1851556Srgrimesint bad_opt __P((void));
1861556Srgrimes
1871556Srgrimes/*
1881556Srgrimes * pat_rep.c
1891556Srgrimes */
1907165Sjoergint rep_add __P((register char *));
1911556Srgrimesint pat_add __P((char *));
1921556Srgrimesvoid pat_chk __P((void));
1931556Srgrimesint pat_sel __P((register ARCHD *));
1941556Srgrimesint pat_match __P((register ARCHD *));
1951556Srgrimesint mod_name __P((register ARCHD *));
1961556Srgrimesint set_dest __P((register ARCHD *, char *, int));
1971556Srgrimes
1981556Srgrimes/*
1991556Srgrimes * pax.c
2001556Srgrimes */
2011556Srgrimesextern int act;
2021556Srgrimesextern FSUB *frmt;
2031556Srgrimesextern int cflag;
2041556Srgrimesextern int dflag;
2051556Srgrimesextern int iflag;
2061556Srgrimesextern int kflag;
2071556Srgrimesextern int lflag;
2081556Srgrimesextern int nflag;
2091556Srgrimesextern int tflag;
2101556Srgrimesextern int uflag;
2111556Srgrimesextern int vflag;
2121556Srgrimesextern int Dflag;
2131556Srgrimesextern int Hflag;
2141556Srgrimesextern int Lflag;
2151556Srgrimesextern int Xflag;
2161556Srgrimesextern int Yflag;
2171556Srgrimesextern int Zflag;
2181556Srgrimesextern int vfpart;
2191556Srgrimesextern int patime;
2201556Srgrimesextern int pmtime;
2211556Srgrimesextern int pmode;
2221556Srgrimesextern int pids;
2231556Srgrimesextern int exit_val;
2241556Srgrimesextern int docrc;
2251556Srgrimesextern char *dirptr;
2261556Srgrimesextern char *argv0;
2271556Srgrimesextern char *tempfile;
2281556Srgrimesextern char *tempbase;
2291556Srgrimes
2309991Sacheint main __P((int, char **));
2311556Srgrimesvoid sig_cleanup __P((int));
2329991Sache
2331556Srgrimes/*
2341556Srgrimes * sel_subs.c
2351556Srgrimes */
2369987Swollmanint sel_chk __P((register ARCHD *));
2371556Srgrimesint grp_add __P((register char *));
2381556Srgrimesint usr_add __P((register char *));
2391556Srgrimesint trng_add __P((register char *));
2401556Srgrimes
2411556Srgrimes/*
2421556Srgrimes * tables.c
2431556Srgrimes */
2441556Srgrimesint lnk_start __P((void));
2451556Srgrimesint chk_lnk __P((register ARCHD *));
2461556Srgrimesvoid purg_lnk __P((register ARCHD *));
2471556Srgrimesvoid lnk_end __P((void));
2481556Srgrimesint ftime_start __P((void));
2491556Srgrimesint chk_ftime __P((register ARCHD *));
2501556Srgrimesint name_start __P((void));
2511556Srgrimesint add_name __P((register char *, int, char *));
2521556Srgrimesvoid sub_name __P((register char *, int *));
2531556Srgrimesint dev_start __P((void));
2541556Srgrimesint add_dev __P((register ARCHD *));
2551556Srgrimesint map_dev __P((register ARCHD *, u_long, u_long));
2561556Srgrimesint atdir_start __P((void));
2571556Srgrimesvoid atdir_end __P((void));
2581556Srgrimesvoid add_atdir __P((char *, dev_t, ino_t, time_t, time_t));
2591556Srgrimesint get_atdir __P((dev_t, ino_t, time_t *, time_t *));
2601556Srgrimesint dir_start __P((void));
2611556Srgrimesvoid add_dir __P((char *, int, struct stat *, int));
2621556Srgrimesvoid proc_dir __P((void));
2631556Srgrimesu_int st_hash __P((char *, int, int));
2641556Srgrimes
2651556Srgrimes/*
2661556Srgrimes * tar.c
2671556Srgrimes */
2681556Srgrimesint tar_endwr __P((void));
2691556Srgrimesoff_t tar_endrd __P((void));
2701556Srgrimesint tar_trail __P((register char *, register int, register int *));
2711556Srgrimesint tar_id __P((register char *, int));
2721556Srgrimesint tar_opt __P((void));
2731556Srgrimesint tar_rd __P((register ARCHD *, register char *));
2741556Srgrimesint tar_wr __P((register ARCHD *));
2751556Srgrimesint ustar_strd __P((void));
2761556Srgrimesint ustar_stwr __P((void));
2771556Srgrimesint ustar_id __P((char *, int));
2781556Srgrimesint ustar_rd __P((register ARCHD *, register char *));
2791556Srgrimesint ustar_wr __P((register ARCHD *));
2801556Srgrimes
2811556Srgrimes/*
2821556Srgrimes * tty_subs.c
2831556Srgrimes */
2841556Srgrimesint tty_init __P((void));
2858855Srgrimesvoid tty_prnt __P((const char *, ...)) __printflike(1, 2);
2861556Srgrimesint tty_read __P((char *, int));
2871556Srgrimesvoid paxwarn __P((int, const char *, ...)) __printflike(2, 3);
2881556Srgrimesvoid syswarn __P((int, int, const char *, ...)) __printflike(3, 4);
2891556Srgrimes