| 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.2 (Berkeley) %G% |
| 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 char copyright[]; |
| 174 | extern int act; |
| 175 | extern FSUB *frmt; |
| 176 | extern int cflag; |
| 177 | extern int dflag; |
| 178 | extern int iflag; |
| 179 | extern int kflag; |
| 180 | extern int lflag; |
| 181 | extern int nflag; |
| 182 | extern int tflag; |
| 183 | extern int uflag; |
| 184 | extern int vflag; |
| 185 | extern int Dflag; |
| 186 | extern int Hflag; |
| 187 | extern int Lflag; |
| 188 | extern int Xflag; |
| 189 | extern int Yflag; |
| 190 | extern int Zflag; |
| 191 | extern int vfpart; |
| 192 | extern int patime; |
| 193 | extern int pmtime; |
| 194 | extern int pmode; |
| 195 | extern int pids; |
| 196 | extern int exit_val; |
| 197 | extern int docrc; |
| 198 | extern char *dirptr; |
| 199 | extern char *ltmfrmt; |
| 200 | int main __P((int, char **)); |
| 201 | void usage __P((void)); |
| 202 | void sig_cleanup __P((int)); |
| 203 | |
| 204 | /* |
| 205 | * sel_subs.c |
| 206 | */ |
| 207 | int sel_chk __P((register ARCHD *)); |
| 208 | int grp_add __P((register char *)); |
| 209 | int usr_add __P((register char *)); |
| 210 | int trng_add __P((register char *)); |
| 211 | |
| 212 | /* |
| 213 | * tables.c |
| 214 | */ |
| 215 | int lnk_start __P((void)); |
| 216 | int chk_lnk __P((register ARCHD *)); |
| 217 | void purg_lnk __P((register ARCHD *)); |
| 218 | void lnk_end __P((void)); |
| 219 | int ftime_start __P((void)); |
| 220 | int chk_ftime __P((register ARCHD *)); |
| 221 | int name_start __P((void)); |
| 222 | int add_name __P((register char *, int, char *)); |
| 223 | void sub_name __P((register char *, int *)); |
| 224 | int dev_start __P((void)); |
| 225 | int add_dev __P((register ARCHD *)); |
| 226 | int map_dev __P((register ARCHD *, u_long, u_long)); |
| 227 | int atdir_start __P((void)); |
| 228 | void atdir_end __P((void)); |
| 229 | void add_atdir __P((char *, dev_t, ino_t, time_t, time_t)); |
| 230 | int get_atdir __P((dev_t, ino_t, time_t *, time_t *)); |
| 231 | int dir_start __P((void)); |
| 232 | void add_dir __P((char *, int, struct stat *, int)); |
| 233 | void proc_dir __P((void)); |
| 234 | u_int st_hash __P((char *, int, int)); |
| 235 | |
| 236 | /* |
| 237 | * tar.c |
| 238 | */ |
| 239 | int tar_endwr __P((void)); |
| 240 | off_t tar_endrd __P((void)); |
| 241 | int tar_trail __P((register char *, register int, register int *)); |
| 242 | int tar_id __P((register char *, int)); |
| 243 | int tar_opt __P((void)); |
| 244 | int tar_rd __P((register ARCHD *, register char *)); |
| 245 | int tar_wr __P((register ARCHD *)); |
| 246 | int ustar_strd __P((void)); |
| 247 | int ustar_stwr __P((void)); |
| 248 | int ustar_id __P((char *, int)); |
| 249 | int ustar_rd __P((register ARCHD *, register char *)); |
| 250 | int ustar_wr __P((register ARCHD *)); |
| 251 | |
| 252 | /* |
| 253 | * tty_subs.c |
| 254 | */ |
| 255 | int tty_init __P((void)); |
| 256 | void tty_prnt __P((char *, ...)); |
| 257 | int tty_read __P((char *, int)); |
| 258 | void warn __P((int, char *, ...)); |
| 259 | void syswarn __P((int, int, char *, ...)); |