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