Imported Debian patch 1.5-15
[debian/pax] / extern.h
1 /*      $OpenBSD: extern.h,v 1.15 1998/09/20 02:22:21 millert Exp $     */
2 /*      $NetBSD: extern.h,v 1.5 1996/03/26 23:54:16 mrg Exp $   */
3
4 /*-
5  * Copyright (c) 1992 Keith Muller.
6  * Copyright (c) 1992, 1993
7  *      The Regents of the University of California.  All rights reserved.
8  *
9  * This code is derived from software contributed to Berkeley by
10  * Keith Muller of the University of California, San Diego.
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  * 1. Redistributions of source code must retain the above copyright
16  *    notice, this list of conditions and the following disclaimer.
17  * 2. Redistributions in binary form must reproduce the above copyright
18  *    notice, this list of conditions and the following disclaimer in the
19  *    documentation and/or other materials provided with the distribution.
20  * 3. All advertising materials mentioning features or use of this software
21  *    must display the following acknowledgement:
22  *      This product includes software developed by the University of
23  *      California, Berkeley and its contributors.
24  * 4. Neither the name of the University nor the names of its contributors
25  *    may be used to endorse or promote products derived from this software
26  *    without specific prior written permission.
27  *
28  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
29  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
32  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38  * SUCH DAMAGE.
39  *
40  *      @(#)extern.h    8.2 (Berkeley) 4/18/94
41  */
42
43 /*
44  * External references from each source file
45  */
46
47 #include <sys/cdefs.h>
48
49 /*
50  * ar_io.c
51  */
52 extern char *arcname;
53 extern char *gzip_program;
54 int ar_open __P((char *));
55 void ar_close __P((void));
56 void ar_drain __P((void));
57 int ar_set_wr __P((void));
58 int ar_app_ok __P((void));
59 int ar_read __P((register char *, register int));
60 int ar_write __P((register char *, register int));
61 int ar_rdsync __P((void));
62 int ar_fow __P((off_t, off_t *));
63 int ar_rev __P((off_t ));
64 int ar_next __P((void));
65
66 /*
67  * ar_subs.c
68  */
69 extern u_long flcnt;
70 void list __P((void));
71 void extract __P((void));
72 void append __P((void));
73 void archive __P((void));
74 void copy __P((void));
75
76 /*
77  * buf_subs.c
78  */
79 extern int blksz;
80 extern int wrblksz;
81 extern int maxflt;
82 extern int rdblksz;
83 extern off_t wrlimit;
84 extern off_t rdcnt;
85 extern off_t wrcnt;
86 int wr_start __P((void));
87 int rd_start __P((void));
88 void cp_start __P((void));
89 int appnd_start __P((off_t));
90 int rd_sync __P((void));
91 void pback __P((char *, int));
92 int rd_skip __P((off_t));
93 void wr_fin __P((void));
94 int wr_rdbuf __P((register char *, register int));
95 int rd_wrbuf __P((register char *, register int));
96 int wr_skip __P((off_t));
97 int wr_rdfile __P((ARCHD *, int, off_t *));
98 int rd_wrfile __P((ARCHD *, int, off_t *));
99 void cp_file __P((ARCHD *, int, int));
100 int buf_fill __P((void));
101 int buf_flush __P((register int));
102
103 /*
104  * cache.c
105  */
106 int uidtb_start __P((void));
107 int gidtb_start __P((void));
108 int usrtb_start __P((void));
109 int grptb_start __P((void));
110 char * name_uid __P((uid_t, int));
111 char * name_gid __P((gid_t, int));
112 int uid_name __P((char *, uid_t *));
113 int gid_name __P((char *, gid_t *));
114
115 /*
116  * cpio.c
117  */
118 int cpio_strd __P((void));
119 int cpio_trail __P((register ARCHD *));
120 int cpio_endwr __P((void));
121 int cpio_id __P((char *, int));
122 int cpio_rd __P((register ARCHD *, register char *));
123 off_t cpio_endrd __P((void));
124 int cpio_stwr __P((void));
125 int cpio_wr __P((register ARCHD *));
126 int vcpio_id __P((char *, int));
127 int crc_id __P((char *, int));
128 int crc_strd __P((void));
129 int vcpio_rd __P((register ARCHD *, register char *));
130 off_t vcpio_endrd __P((void));
131 int crc_stwr __P((void));
132 int vcpio_wr __P((register ARCHD *));
133 int bcpio_id __P((char *, int));
134 int bcpio_rd __P((register ARCHD *, register char *));
135 off_t bcpio_endrd __P((void));
136 int bcpio_wr __P((register ARCHD *));
137
138 /*
139  * file_subs.c
140  */
141 int file_creat __P((register ARCHD *));
142 void file_close __P((register ARCHD *, int));
143 int lnk_creat __P((register ARCHD *));
144 int cross_lnk __P((register ARCHD *));
145 int chk_same __P((register ARCHD *));
146 int node_creat __P((register ARCHD *));
147 int unlnk_exist __P((register char *, register int));
148 int chk_path __P((register char *, uid_t, gid_t));
149 void set_ftime __P((char *fnm, time_t mtime, time_t atime, int frc));
150 int set_ids __P((char *, uid_t, gid_t));
151 int set_lids __P((char *, uid_t, gid_t));
152 void set_pmode __P((char *, mode_t));
153 int file_write __P((int, char *, register int, int *, int *, int, char *));
154 void file_flush __P((int, char *, int));
155 void rdfile_close __P((register ARCHD *, register int *));
156 int set_crc __P((register ARCHD *, register int));
157
158 /*
159  * ftree.c
160  */
161 int ftree_start __P((void));
162 int ftree_add __P((register char *, int));
163 void ftree_sel __P((register ARCHD *));
164 void ftree_chk __P((void));
165 int next_file __P((register ARCHD *));
166
167 /*
168  * gen_subs.c
169  */
170 void ls_list __P((register ARCHD *, time_t, FILE *));
171 void ls_tty __P((register ARCHD *));
172 int l_strncpy __P((register char *, register char *, int));
173 u_long asc_ul __P((register char *, int, register int));
174 int ul_asc __P((u_long, register char *, register int, register int));
175 #ifndef NET2_STAT
176 u_quad_t asc_uqd __P((register char *, int, register int));
177 int uqd_asc __P((u_quad_t, register char *, register int, register int));
178 #endif
179
180 /* 
181  * getoldopt.c
182  */
183 int getoldopt __P((int, char **, char *));
184
185 /*
186  * options.c
187  */
188 extern FSUB fsub[];
189 extern int ford[];
190 void options __P((register int, register char **));
191 OPLIST * opt_next __P((void));
192 int opt_add __P((register char *));
193 int bad_opt __P((void));
194 char *chdname;
195
196 /*
197  * pat_rep.c
198  */
199 int rep_add __P((register char *));
200 int pat_add __P((char *, char *));
201 void pat_chk __P((void));
202 int pat_sel __P((register ARCHD *));
203 int pat_match __P((register ARCHD *));
204 int mod_name __P((register ARCHD *));
205 int set_dest __P((register ARCHD *, char *, int));
206
207 /*
208  * pax.c
209  */
210 extern int act;
211 extern FSUB *frmt;
212 extern int cflag;
213 extern int cwdfd;
214 extern int dflag;
215 extern int iflag;
216 extern int kflag;
217 extern int lflag;
218 extern int nflag;
219 extern int tflag;
220 extern int uflag;
221 extern int vflag;
222 extern int zflag;
223 extern int Dflag;
224 extern int Hflag;
225 extern int Lflag;
226 extern int Xflag;
227 extern int Yflag;
228 extern int Zflag;
229 extern int vfpart;
230 extern int patime;
231 extern int pmtime;
232 extern int nodirs;
233 extern int pmode;
234 extern int pids;
235 extern int rmleadslash;
236 extern int exit_val;
237 extern int docrc;
238 extern char *dirptr;
239 extern char *ltmfrmt;
240 extern char *argv0;
241 extern FILE *listf;
242
243 int main __P((int, char **));
244 void sig_cleanup __P((int));
245
246 /*
247  * sel_subs.c
248  */
249 int sel_chk __P((register ARCHD *));
250 int grp_add __P((register char *));
251 int usr_add __P((register char *));
252 int trng_add __P((register char *));
253
254 /*
255  * tables.c
256  */
257 int lnk_start __P((void));
258 int chk_lnk __P((register ARCHD *));
259 void purg_lnk __P((register ARCHD *));
260 void lnk_end __P((void));
261 int ftime_start __P((void));
262 int chk_ftime __P((register ARCHD *));
263 int name_start __P((void));
264 int add_name __P((register char *, int, char *));
265 void sub_name __P((register char *, int *, size_t));
266 int dev_start __P((void));
267 int add_dev __P((register ARCHD *));
268 int map_dev __P((register ARCHD *, u_long, u_long));
269 int atdir_start __P((void));
270 void atdir_end __P((void));
271 void add_atdir __P((char *, dev_t, ino_t, time_t, time_t));
272 int get_atdir __P((dev_t, ino_t, time_t *, time_t *));
273 int dir_start __P((void));
274 void add_dir __P((char *, int, struct stat *, int));
275 void proc_dir __P((void));
276 u_int st_hash __P((char *, int, int));
277
278 /*
279  * tar.c
280  */
281 int tar_endwr __P((void));
282 off_t tar_endrd __P((void));
283 int tar_trail __P((register char *, register int, register int *));
284 int tar_id __P((register char *, int));
285 int tar_opt __P((void));
286 int tar_rd __P((register ARCHD *, register char *));
287 int tar_wr __P((register ARCHD *));
288 int ustar_strd __P((void));
289 int ustar_stwr __P((void));
290 int ustar_id __P((char *, int));
291 int ustar_rd __P((register ARCHD *, register char *));
292 int ustar_wr __P((register ARCHD *));
293
294 /*
295  * tty_subs.c
296  */
297 int tty_init __P((void));
298 void tty_prnt __P((char *, ...));
299 int tty_read __P((char *, int));
300 void paxwarn __P((int, char *, ...));
301 void syswarn __P((int, int, char *, ...));