157195Smuller /*- 257195Smuller * Copyright (c) 1992 Keith Muller. 360676Sbostic * Copyright (c) 1992, 1993 460676Sbostic * The Regents of the University of California. All rights reserved. 557195Smuller * 657195Smuller * This code is derived from software contributed to Berkeley by 757195Smuller * Keith Muller of the University of California, San Diego. 857195Smuller * 957195Smuller * %sccs.include.redist.c% 1057195Smuller * 11*66890Sbostic * @(#)extern.h 8.2 (Berkeley) 04/18/94 1257195Smuller */ 1357195Smuller 1457195Smuller /* 1557195Smuller * External references from each source file 1657195Smuller */ 1757195Smuller 1857195Smuller #include <sys/cdefs.h> 1957195Smuller 2057195Smuller /* 2157195Smuller * ar_io.c 2257195Smuller */ 2357195Smuller extern char *arcname; 2457195Smuller int ar_open __P((char *)); 2557195Smuller void ar_close __P((void)); 2659046Smuller void ar_drain __P((void)); 2757195Smuller int ar_set_wr __P((void)); 2857195Smuller int ar_app_ok __P((void)); 2957195Smuller int ar_read __P((register char *, register int)); 3057195Smuller int ar_write __P((register char *, register int)); 3157195Smuller int ar_rdsync __P((void)); 3257195Smuller int ar_fow __P((off_t, off_t *)); 3357195Smuller int ar_rev __P((off_t )); 3457195Smuller int ar_next __P((void)); 3557195Smuller 3657195Smuller /* 3757195Smuller * ar_subs.c 3857195Smuller */ 3957195Smuller extern u_long flcnt; 4057195Smuller void list __P((void)); 4157195Smuller void extract __P((void)); 4257195Smuller void append __P((void)); 4357195Smuller void archive __P((void)); 4457195Smuller void copy __P((void)); 4557195Smuller 4657195Smuller /* 4757195Smuller * buf_subs.c 4857195Smuller */ 4957195Smuller extern int blksz; 5057195Smuller extern int wrblksz; 5157195Smuller extern int maxflt; 5257195Smuller extern int rdblksz; 5357195Smuller extern off_t wrlimit; 5457195Smuller extern off_t rdcnt; 5557195Smuller extern off_t wrcnt; 5657195Smuller int wr_start __P((void)); 5757195Smuller int rd_start __P((void)); 5857195Smuller void cp_start __P((void)); 5957195Smuller int appnd_start __P((off_t)); 6057195Smuller int rd_sync __P((void)); 6157195Smuller void pback __P((char *, int)); 6257195Smuller int rd_skip __P((off_t)); 6357195Smuller void wr_fin __P((void)); 6457195Smuller int wr_rdbuf __P((register char *, register int)); 6557195Smuller int rd_wrbuf __P((register char *, register int)); 6657195Smuller int wr_skip __P((off_t)); 6757195Smuller int wr_rdfile __P((ARCHD *, int, off_t *)); 6857195Smuller int rd_wrfile __P((ARCHD *, int, off_t *)); 6957195Smuller void cp_file __P((ARCHD *, int, int)); 7057195Smuller int buf_fill __P((void)); 7157195Smuller int buf_flush __P((register int)); 7257195Smuller 7357195Smuller /* 7457195Smuller * cache.c 7557195Smuller */ 7657195Smuller int uidtb_start __P((void)); 7757195Smuller int gidtb_start __P((void)); 7857195Smuller int usrtb_start __P((void)); 7957195Smuller int grptb_start __P((void)); 8057195Smuller char * name_uid __P((uid_t, int)); 8157195Smuller char * name_gid __P((gid_t, int)); 8257195Smuller int uid_name __P((char *, uid_t *)); 8357195Smuller int gid_name __P((char *, gid_t *)); 8457195Smuller 8557195Smuller /* 8657195Smuller * cpio.c 8757195Smuller */ 8857195Smuller int cpio_strd __P((void)); 8957195Smuller int cpio_trail __P((register ARCHD *)); 9057195Smuller int cpio_endwr __P((void)); 9157195Smuller int cpio_id __P((char *, int)); 9257195Smuller int cpio_rd __P((register ARCHD *, register char *)); 9357195Smuller off_t cpio_endrd __P((void)); 9457195Smuller int cpio_stwr __P((void)); 9557195Smuller int cpio_wr __P((register ARCHD *)); 9657195Smuller int vcpio_id __P((char *, int)); 9757195Smuller int crc_id __P((char *, int)); 9857195Smuller int crc_strd __P((void)); 9957195Smuller int vcpio_rd __P((register ARCHD *, register char *)); 10057195Smuller off_t vcpio_endrd __P((void)); 10157195Smuller int crc_stwr __P((void)); 10257195Smuller int vcpio_wr __P((register ARCHD *)); 10357195Smuller int bcpio_id __P((char *, int)); 10457195Smuller int bcpio_rd __P((register ARCHD *, register char *)); 10557195Smuller off_t bcpio_endrd __P((void)); 10657195Smuller int bcpio_wr __P((register ARCHD *)); 10757195Smuller 10857195Smuller /* 10957195Smuller * file_subs.c 11057195Smuller */ 11157195Smuller int file_creat __P((register ARCHD *)); 11257195Smuller void file_close __P((register ARCHD *, int)); 11357195Smuller int lnk_creat __P((register ARCHD *)); 11457195Smuller int cross_lnk __P((register ARCHD *)); 11557195Smuller int chk_same __P((register ARCHD *)); 11657195Smuller int node_creat __P((register ARCHD *)); 11757195Smuller int unlnk_exist __P((register char *, register int)); 11857195Smuller int chk_path __P((register char *, uid_t, gid_t)); 11957195Smuller void set_ftime __P((char *fnm, time_t mtime, time_t atime, int frc)); 12057195Smuller int set_ids __P((char *, uid_t, gid_t)); 12157195Smuller void set_pmode __P((char *, mode_t)); 12257195Smuller int file_write __P((int, char *, register int, int *, int *, int, char *)); 12357195Smuller void file_flush __P((int, char *, int)); 12457195Smuller void rdfile_close __P((register ARCHD *, register int *)); 12557195Smuller int set_crc __P((register ARCHD *, register int)); 12657195Smuller 12757195Smuller /* 12857195Smuller * ftree.c 12957195Smuller */ 13057195Smuller int ftree_start __P((void)); 13157195Smuller int ftree_add __P((register char *)); 13257195Smuller void ftree_sel __P((register ARCHD *)); 13357195Smuller void ftree_chk __P((void)); 13457195Smuller int next_file __P((register ARCHD *)); 13557195Smuller 13657195Smuller /* 13757195Smuller * gen_subs.c 13857195Smuller */ 13957195Smuller void ls_list __P((register ARCHD *, time_t)); 14057195Smuller void ls_tty __P((register ARCHD *)); 14157195Smuller void zf_strncpy __P((register char *, register char *, int)); 14257195Smuller int l_strncpy __P((register char *, register char *, int)); 14357195Smuller u_long asc_ul __P((register char *, int, register int)); 14457195Smuller int ul_asc __P((u_long, register char *, register int, register int)); 14557195Smuller #ifndef NET2_STAT 14657195Smuller u_quad_t asc_uqd __P((register char *, int, register int)); 14757195Smuller int uqd_asc __P((u_quad_t, register char *, register int, register int)); 14857195Smuller #endif 14957195Smuller 15057195Smuller /* 15157195Smuller * options.c 15257195Smuller */ 15357195Smuller extern FSUB fsub[]; 15457195Smuller extern int ford[]; 15557195Smuller void options __P((register int, register char **)); 15657195Smuller OPLIST * opt_next __P((void)); 15757195Smuller int opt_add __P((register char *)); 15857195Smuller int bad_opt __P((void)); 15957195Smuller 16057195Smuller /* 16157195Smuller * pat_rep.c 16257195Smuller */ 16357195Smuller int rep_add __P((register char *)); 16457195Smuller int pat_add __P((char *)); 16557195Smuller void pat_chk __P((void)); 16657195Smuller int pat_sel __P((register ARCHD *)); 16757195Smuller int pat_match __P((register ARCHD *)); 16857195Smuller int mod_name __P((register ARCHD *)); 16957195Smuller int set_dest __P((register ARCHD *, char *, int)); 17057195Smuller 17157195Smuller /* 17257195Smuller * pax.c 17357195Smuller */ 17457195Smuller extern int act; 17557195Smuller extern FSUB *frmt; 17657195Smuller extern int cflag; 17757195Smuller extern int dflag; 17857195Smuller extern int iflag; 17957195Smuller extern int kflag; 18057195Smuller extern int lflag; 18157195Smuller extern int nflag; 18257195Smuller extern int tflag; 18357195Smuller extern int uflag; 18457195Smuller extern int vflag; 18557538Smuller extern int Dflag; 18657195Smuller extern int Hflag; 18757195Smuller extern int Lflag; 18857195Smuller extern int Xflag; 18957538Smuller extern int Yflag; 19057195Smuller extern int Zflag; 19157195Smuller extern int vfpart; 19257195Smuller extern int patime; 19357195Smuller extern int pmtime; 19457195Smuller extern int pmode; 19557195Smuller extern int pids; 19657195Smuller extern int exit_val; 19757195Smuller extern int docrc; 19857195Smuller extern char *dirptr; 19957195Smuller extern char *ltmfrmt; 200*66890Sbostic extern char *argv0; 20157195Smuller int main __P((int, char **)); 20257195Smuller void sig_cleanup __P((int)); 20357195Smuller 20457195Smuller /* 20557195Smuller * sel_subs.c 20657195Smuller */ 20757195Smuller int sel_chk __P((register ARCHD *)); 20857195Smuller int grp_add __P((register char *)); 20957195Smuller int usr_add __P((register char *)); 21057195Smuller int trng_add __P((register char *)); 21157195Smuller 21257195Smuller /* 21357195Smuller * tables.c 21457195Smuller */ 21557195Smuller int lnk_start __P((void)); 21657195Smuller int chk_lnk __P((register ARCHD *)); 21757195Smuller void purg_lnk __P((register ARCHD *)); 21857195Smuller void lnk_end __P((void)); 21957195Smuller int ftime_start __P((void)); 22057195Smuller int chk_ftime __P((register ARCHD *)); 22157195Smuller int name_start __P((void)); 22257195Smuller int add_name __P((register char *, int, char *)); 22357195Smuller void sub_name __P((register char *, int *)); 22457195Smuller int dev_start __P((void)); 22557195Smuller int add_dev __P((register ARCHD *)); 22657195Smuller int map_dev __P((register ARCHD *, u_long, u_long)); 22757195Smuller int atdir_start __P((void)); 22857195Smuller void atdir_end __P((void)); 22957195Smuller void add_atdir __P((char *, dev_t, ino_t, time_t, time_t)); 23057195Smuller int get_atdir __P((dev_t, ino_t, time_t *, time_t *)); 23157195Smuller int dir_start __P((void)); 23257195Smuller void add_dir __P((char *, int, struct stat *, int)); 23357195Smuller void proc_dir __P((void)); 23457195Smuller u_int st_hash __P((char *, int, int)); 23557195Smuller 23657195Smuller /* 23757195Smuller * tar.c 23857195Smuller */ 23957195Smuller int tar_endwr __P((void)); 24057195Smuller off_t tar_endrd __P((void)); 24157195Smuller int tar_trail __P((register char *, register int, register int *)); 24257195Smuller int tar_id __P((register char *, int)); 24357195Smuller int tar_opt __P((void)); 24457195Smuller int tar_rd __P((register ARCHD *, register char *)); 24557195Smuller int tar_wr __P((register ARCHD *)); 24657195Smuller int ustar_strd __P((void)); 24757195Smuller int ustar_stwr __P((void)); 24857195Smuller int ustar_id __P((char *, int)); 24957195Smuller int ustar_rd __P((register ARCHD *, register char *)); 25057195Smuller int ustar_wr __P((register ARCHD *)); 25157195Smuller 25257195Smuller /* 25357195Smuller * tty_subs.c 25457195Smuller */ 25557195Smuller int tty_init __P((void)); 25657195Smuller void tty_prnt __P((char *, ...)); 25757195Smuller int tty_read __P((char *, int)); 25857195Smuller void warn __P((int, char *, ...)); 25957195Smuller void syswarn __P((int, int, char *, ...)); 260