1*57195Smuller /*- 2*57195Smuller * Copyright (c) 1992 Keith Muller. 3*57195Smuller * Copyright (c) 1992 The Regents of the University of California. 4*57195Smuller * All rights reserved. 5*57195Smuller * 6*57195Smuller * This code is derived from software contributed to Berkeley by 7*57195Smuller * Keith Muller of the University of California, San Diego. 8*57195Smuller * 9*57195Smuller * %sccs.include.redist.c% 10*57195Smuller * 11*57195Smuller * @(#)extern.h 1.1 (Berkeley) 12/17/92 12*57195Smuller */ 13*57195Smuller 14*57195Smuller /* 15*57195Smuller * External references from each source file 16*57195Smuller */ 17*57195Smuller 18*57195Smuller #include <sys/cdefs.h> 19*57195Smuller 20*57195Smuller /* 21*57195Smuller * ar_io.c 22*57195Smuller */ 23*57195Smuller extern char *arcname; 24*57195Smuller int ar_open __P((char *)); 25*57195Smuller void ar_close __P((void)); 26*57195Smuller int ar_set_wr __P((void)); 27*57195Smuller int ar_app_ok __P((void)); 28*57195Smuller int ar_read __P((register char *, register int)); 29*57195Smuller int ar_write __P((register char *, register int)); 30*57195Smuller int ar_rdsync __P((void)); 31*57195Smuller int ar_fow __P((off_t, off_t *)); 32*57195Smuller int ar_rev __P((off_t )); 33*57195Smuller int ar_next __P((void)); 34*57195Smuller 35*57195Smuller /* 36*57195Smuller * ar_subs.c 37*57195Smuller */ 38*57195Smuller extern u_long flcnt; 39*57195Smuller void list __P((void)); 40*57195Smuller void extract __P((void)); 41*57195Smuller void append __P((void)); 42*57195Smuller void archive __P((void)); 43*57195Smuller void copy __P((void)); 44*57195Smuller 45*57195Smuller /* 46*57195Smuller * buf_subs.c 47*57195Smuller */ 48*57195Smuller extern int blksz; 49*57195Smuller extern int wrblksz; 50*57195Smuller extern int maxflt; 51*57195Smuller extern int rdblksz; 52*57195Smuller extern off_t wrlimit; 53*57195Smuller extern off_t rdcnt; 54*57195Smuller extern off_t wrcnt; 55*57195Smuller int wr_start __P((void)); 56*57195Smuller int rd_start __P((void)); 57*57195Smuller void cp_start __P((void)); 58*57195Smuller int appnd_start __P((off_t)); 59*57195Smuller int rd_sync __P((void)); 60*57195Smuller void pback __P((char *, int)); 61*57195Smuller int rd_skip __P((off_t)); 62*57195Smuller void wr_fin __P((void)); 63*57195Smuller int wr_rdbuf __P((register char *, register int)); 64*57195Smuller int rd_wrbuf __P((register char *, register int)); 65*57195Smuller int wr_skip __P((off_t)); 66*57195Smuller int wr_rdfile __P((ARCHD *, int, off_t *)); 67*57195Smuller int rd_wrfile __P((ARCHD *, int, off_t *)); 68*57195Smuller void cp_file __P((ARCHD *, int, int)); 69*57195Smuller int buf_fill __P((void)); 70*57195Smuller int buf_flush __P((register int)); 71*57195Smuller 72*57195Smuller /* 73*57195Smuller * cache.c 74*57195Smuller */ 75*57195Smuller int uidtb_start __P((void)); 76*57195Smuller int gidtb_start __P((void)); 77*57195Smuller int usrtb_start __P((void)); 78*57195Smuller int grptb_start __P((void)); 79*57195Smuller char * name_uid __P((uid_t, int)); 80*57195Smuller char * name_gid __P((gid_t, int)); 81*57195Smuller int uid_name __P((char *, uid_t *)); 82*57195Smuller int gid_name __P((char *, gid_t *)); 83*57195Smuller 84*57195Smuller /* 85*57195Smuller * cpio.c 86*57195Smuller */ 87*57195Smuller int cpio_strd __P((void)); 88*57195Smuller int cpio_trail __P((register ARCHD *)); 89*57195Smuller int cpio_endwr __P((void)); 90*57195Smuller int cpio_id __P((char *, int)); 91*57195Smuller int cpio_rd __P((register ARCHD *, register char *)); 92*57195Smuller off_t cpio_endrd __P((void)); 93*57195Smuller int cpio_stwr __P((void)); 94*57195Smuller int cpio_wr __P((register ARCHD *)); 95*57195Smuller int vcpio_id __P((char *, int)); 96*57195Smuller int crc_id __P((char *, int)); 97*57195Smuller int crc_strd __P((void)); 98*57195Smuller int vcpio_rd __P((register ARCHD *, register char *)); 99*57195Smuller off_t vcpio_endrd __P((void)); 100*57195Smuller int crc_stwr __P((void)); 101*57195Smuller int vcpio_wr __P((register ARCHD *)); 102*57195Smuller int bcpio_id __P((char *, int)); 103*57195Smuller int bcpio_rd __P((register ARCHD *, register char *)); 104*57195Smuller off_t bcpio_endrd __P((void)); 105*57195Smuller int bcpio_wr __P((register ARCHD *)); 106*57195Smuller 107*57195Smuller /* 108*57195Smuller * file_subs.c 109*57195Smuller */ 110*57195Smuller int file_creat __P((register ARCHD *)); 111*57195Smuller void file_close __P((register ARCHD *, int)); 112*57195Smuller int lnk_creat __P((register ARCHD *)); 113*57195Smuller int cross_lnk __P((register ARCHD *)); 114*57195Smuller int chk_same __P((register ARCHD *)); 115*57195Smuller int node_creat __P((register ARCHD *)); 116*57195Smuller int unlnk_exist __P((register char *, register int)); 117*57195Smuller int chk_path __P((register char *, uid_t, gid_t)); 118*57195Smuller void set_ftime __P((char *fnm, time_t mtime, time_t atime, int frc)); 119*57195Smuller int set_ids __P((char *, uid_t, gid_t)); 120*57195Smuller void set_pmode __P((char *, mode_t)); 121*57195Smuller int file_write __P((int, char *, register int, int *, int *, int, char *)); 122*57195Smuller void file_flush __P((int, char *, int)); 123*57195Smuller void rdfile_close __P((register ARCHD *, register int *)); 124*57195Smuller int set_crc __P((register ARCHD *, register int)); 125*57195Smuller 126*57195Smuller /* 127*57195Smuller * ftree.c 128*57195Smuller */ 129*57195Smuller int ftree_start __P((void)); 130*57195Smuller int ftree_add __P((register char *)); 131*57195Smuller void ftree_sel __P((register ARCHD *)); 132*57195Smuller void ftree_chk __P((void)); 133*57195Smuller int next_file __P((register ARCHD *)); 134*57195Smuller 135*57195Smuller /* 136*57195Smuller * gen_subs.c 137*57195Smuller */ 138*57195Smuller void ls_list __P((register ARCHD *, time_t)); 139*57195Smuller void ls_tty __P((register ARCHD *)); 140*57195Smuller void zf_strncpy __P((register char *, register char *, int)); 141*57195Smuller int l_strncpy __P((register char *, register char *, int)); 142*57195Smuller u_long asc_ul __P((register char *, int, register int)); 143*57195Smuller int ul_asc __P((u_long, register char *, register int, register int)); 144*57195Smuller #ifndef NET2_STAT 145*57195Smuller u_quad_t asc_uqd __P((register char *, int, register int)); 146*57195Smuller int uqd_asc __P((u_quad_t, register char *, register int, register int)); 147*57195Smuller #endif 148*57195Smuller 149*57195Smuller /* 150*57195Smuller * options.c 151*57195Smuller */ 152*57195Smuller extern FSUB fsub[]; 153*57195Smuller extern int ford[]; 154*57195Smuller void options __P((register int, register char **)); 155*57195Smuller OPLIST * opt_next __P((void)); 156*57195Smuller int opt_add __P((register char *)); 157*57195Smuller int bad_opt __P((void)); 158*57195Smuller 159*57195Smuller /* 160*57195Smuller * pat_rep.c 161*57195Smuller */ 162*57195Smuller int rep_add __P((register char *)); 163*57195Smuller int pat_add __P((char *)); 164*57195Smuller void pat_chk __P((void)); 165*57195Smuller int pat_sel __P((register ARCHD *)); 166*57195Smuller int pat_match __P((register ARCHD *)); 167*57195Smuller int mod_name __P((register ARCHD *)); 168*57195Smuller int set_dest __P((register ARCHD *, char *, int)); 169*57195Smuller 170*57195Smuller /* 171*57195Smuller * pax.c 172*57195Smuller */ 173*57195Smuller extern char copyright[]; 174*57195Smuller extern int act; 175*57195Smuller extern FSUB *frmt; 176*57195Smuller extern int cflag; 177*57195Smuller extern int dflag; 178*57195Smuller extern int iflag; 179*57195Smuller extern int kflag; 180*57195Smuller extern int lflag; 181*57195Smuller extern int nflag; 182*57195Smuller extern int tflag; 183*57195Smuller extern int uflag; 184*57195Smuller extern int vflag; 185*57195Smuller extern int Hflag; 186*57195Smuller extern int Lflag; 187*57195Smuller extern int Xflag; 188*57195Smuller extern int Zflag; 189*57195Smuller extern int vfpart; 190*57195Smuller extern int patime; 191*57195Smuller extern int pmtime; 192*57195Smuller extern int pmode; 193*57195Smuller extern int pids; 194*57195Smuller extern int exit_val; 195*57195Smuller extern int docrc; 196*57195Smuller extern char *dirptr; 197*57195Smuller extern char *ltmfrmt; 198*57195Smuller int main __P((int, char **)); 199*57195Smuller void usage __P((void)); 200*57195Smuller void sig_cleanup __P((int)); 201*57195Smuller 202*57195Smuller /* 203*57195Smuller * sel_subs.c 204*57195Smuller */ 205*57195Smuller int sel_chk __P((register ARCHD *)); 206*57195Smuller int grp_add __P((register char *)); 207*57195Smuller int usr_add __P((register char *)); 208*57195Smuller int trng_add __P((register char *)); 209*57195Smuller 210*57195Smuller /* 211*57195Smuller * tables.c 212*57195Smuller */ 213*57195Smuller int lnk_start __P((void)); 214*57195Smuller int chk_lnk __P((register ARCHD *)); 215*57195Smuller void purg_lnk __P((register ARCHD *)); 216*57195Smuller void lnk_end __P((void)); 217*57195Smuller int ftime_start __P((void)); 218*57195Smuller int chk_ftime __P((register ARCHD *)); 219*57195Smuller int name_start __P((void)); 220*57195Smuller int add_name __P((register char *, int, char *)); 221*57195Smuller void sub_name __P((register char *, int *)); 222*57195Smuller int dev_start __P((void)); 223*57195Smuller int add_dev __P((register ARCHD *)); 224*57195Smuller int map_dev __P((register ARCHD *, u_long, u_long)); 225*57195Smuller int atdir_start __P((void)); 226*57195Smuller void atdir_end __P((void)); 227*57195Smuller void add_atdir __P((char *, dev_t, ino_t, time_t, time_t)); 228*57195Smuller int get_atdir __P((dev_t, ino_t, time_t *, time_t *)); 229*57195Smuller int dir_start __P((void)); 230*57195Smuller void add_dir __P((char *, int, struct stat *, int)); 231*57195Smuller void proc_dir __P((void)); 232*57195Smuller u_int st_hash __P((char *, int, int)); 233*57195Smuller 234*57195Smuller /* 235*57195Smuller * tar.c 236*57195Smuller */ 237*57195Smuller int tar_endwr __P((void)); 238*57195Smuller off_t tar_endrd __P((void)); 239*57195Smuller int tar_trail __P((register char *, register int, register int *)); 240*57195Smuller int tar_id __P((register char *, int)); 241*57195Smuller int tar_opt __P((void)); 242*57195Smuller int tar_rd __P((register ARCHD *, register char *)); 243*57195Smuller int tar_wr __P((register ARCHD *)); 244*57195Smuller int ustar_strd __P((void)); 245*57195Smuller int ustar_stwr __P((void)); 246*57195Smuller int ustar_id __P((char *, int)); 247*57195Smuller int ustar_rd __P((register ARCHD *, register char *)); 248*57195Smuller int ustar_wr __P((register ARCHD *)); 249*57195Smuller 250*57195Smuller /* 251*57195Smuller * tty_subs.c 252*57195Smuller */ 253*57195Smuller int tty_init __P((void)); 254*57195Smuller void tty_prnt __P((char *, ...)); 255*57195Smuller int tty_read __P((char *, int)); 256*57195Smuller void warn __P((int, char *, ...)); 257*57195Smuller void syswarn __P((int, int, char *, ...)); 258