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