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 $ */
5 * Copyright (c) 1992 Keith Muller.
6 * Copyright (c) 1992, 1993
7 * The Regents of the University of California. All rights reserved.
9 * This code is derived from software contributed to Berkeley by
10 * Keith Muller of the University of California, San Diego.
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
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.
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
40 * @(#)extern.h 8.2 (Berkeley) 4/18/94
44 * External references from each source file
47 #include <sys/cdefs.h>
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));
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));
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));
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 *));
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 *));
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));
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 *));
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));
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));
183 int getoldopt __P((int, char **, char *));
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));
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));
235 extern int rmleadslash;
239 extern char *ltmfrmt;
243 int main __P((int, char **));
244 void sig_cleanup __P((int));
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 *));
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));
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 *));
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 *, ...));