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