1 /* $OpenBSD: extern.h,v 1.14 1997/07/24 23:19:18 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));
194 extern char *chdname
;
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
;
241 int main
__P((int, char **));
242 void sig_cleanup
__P((int));
247 int sel_chk
__P((register ARCHD
*));
248 int grp_add
__P((register char *));
249 int usr_add
__P((register char *));
250 int trng_add
__P((register char *));
255 int lnk_start
__P((void));
256 int chk_lnk
__P((register ARCHD
*));
257 void purg_lnk
__P((register ARCHD
*));
258 void lnk_end
__P((void));
259 int ftime_start
__P((void));
260 int chk_ftime
__P((register ARCHD
*));
261 int name_start
__P((void));
262 int add_name
__P((register char *, int, char *));
263 void sub_name
__P((register char *, int *, size_t));
264 int dev_start
__P((void));
265 int add_dev
__P((register ARCHD
*));
266 int map_dev
__P((register ARCHD
*, u_long
, u_long
));
267 int atdir_start
__P((void));
268 void atdir_end
__P((void));
269 void add_atdir
__P((char *, dev_t
, ino_t
, time_t, time_t));
270 int get_atdir
__P((dev_t
, ino_t
, time_t *, time_t *));
271 int dir_start
__P((void));
272 void add_dir
__P((char *, int, struct stat
*, int));
273 void proc_dir
__P((void));
274 u_int st_hash
__P((char *, int, int));
279 int tar_endwr
__P((void));
280 off_t tar_endrd
__P((void));
281 int tar_trail
__P((register char *, register int, register int *));
282 int tar_id
__P((register char *, int));
283 int tar_opt
__P((void));
284 int tar_rd
__P((register ARCHD
*, register char *));
285 int tar_wr
__P((register ARCHD
*));
286 int ustar_strd
__P((void));
287 int ustar_stwr
__P((void));
288 int ustar_id
__P((char *, int));
289 int ustar_rd
__P((register ARCHD
*, register char *));
290 int ustar_wr
__P((register ARCHD
*));
295 int tty_init
__P((void));
296 void tty_prnt
__P((char *, ...));
297 int tty_read
__P((char *, int));
298 void paxwarn
__P((int, char *, ...));
299 void syswarn
__P((int, int, char *, ...));