xref: /freebsd/sbin/restore/extern.h (revision 51e16cb8fc536913f490ac6bc9c17e92ebd0411b)
18fae3551SRodney W. Grimes /*-
2*8a16b7a1SPedro F. Giffuni  * SPDX-License-Identifier: BSD-3-Clause
3*8a16b7a1SPedro F. Giffuni  *
48fae3551SRodney W. Grimes  * Copyright (c) 1992, 1993
58fae3551SRodney W. Grimes  *	The Regents of the University of California.  All rights reserved.
68fae3551SRodney W. Grimes  *
78fae3551SRodney W. Grimes  * Redistribution and use in source and binary forms, with or without
88fae3551SRodney W. Grimes  * modification, are permitted provided that the following conditions
98fae3551SRodney W. Grimes  * are met:
108fae3551SRodney W. Grimes  * 1. Redistributions of source code must retain the above copyright
118fae3551SRodney W. Grimes  *    notice, this list of conditions and the following disclaimer.
128fae3551SRodney W. Grimes  * 2. Redistributions in binary form must reproduce the above copyright
138fae3551SRodney W. Grimes  *    notice, this list of conditions and the following disclaimer in the
148fae3551SRodney W. Grimes  *    documentation and/or other materials provided with the distribution.
15fbbd9655SWarner Losh  * 3. Neither the name of the University nor the names of its contributors
168fae3551SRodney W. Grimes  *    may be used to endorse or promote products derived from this software
178fae3551SRodney W. Grimes  *    without specific prior written permission.
188fae3551SRodney W. Grimes  *
198fae3551SRodney W. Grimes  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
208fae3551SRodney W. Grimes  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
218fae3551SRodney W. Grimes  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
228fae3551SRodney W. Grimes  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
238fae3551SRodney W. Grimes  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
248fae3551SRodney W. Grimes  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
258fae3551SRodney W. Grimes  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
268fae3551SRodney W. Grimes  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
278fae3551SRodney W. Grimes  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
288fae3551SRodney W. Grimes  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
298fae3551SRodney W. Grimes  * SUCH DAMAGE.
308fae3551SRodney W. Grimes  */
318fae3551SRodney W. Grimes 
322db673abSWarner Losh struct entry	*addentry(char *, ino_t, int);
332db673abSWarner Losh long		 addfile(char *, ino_t, int);
342db673abSWarner Losh int		 addwhiteout(char *);
352db673abSWarner Losh void		 badentry(struct entry *, char *);
36cca1b3aaSJaakko Heinonen void	 	 canon(char *, char *, size_t);
372db673abSWarner Losh void		 checkrestore(void);
382db673abSWarner Losh void		 closemt(void);
392db673abSWarner Losh void		 createfiles(void);
402db673abSWarner Losh void		 createleaves(char *);
412db673abSWarner Losh void		 createlinks(void);
422db673abSWarner Losh long		 deletefile(char *, ino_t, int);
432db673abSWarner Losh void		 deleteino(ino_t);
442db673abSWarner Losh void		 delwhiteout(struct entry *);
452db673abSWarner Losh ino_t		 dirlookup(const char *);
462db673abSWarner Losh void 	 	 done(int) __dead2;
472db673abSWarner Losh void		 dumpsymtable(char *, long);
482db673abSWarner Losh void	 	 extractdirs(int);
492db673abSWarner Losh int		 extractfile(char *);
502db673abSWarner Losh void		 findunreflinks(void);
512db673abSWarner Losh char		*flagvalues(struct entry *);
522db673abSWarner Losh void		 freeentry(struct entry *);
532db673abSWarner Losh void		 freename(char *);
542db673abSWarner Losh int	 	 genliteraldir(char *, ino_t);
552db673abSWarner Losh char		*gentempname(struct entry *);
5671a53e69SPedro F. Giffuni void		 getfile(void (*)(char *, size_t), void (*)(char *, size_t),
5771a53e69SPedro F. Giffuni 			void (*)(char *, size_t));
582db673abSWarner Losh void		 getvol(long);
592db673abSWarner Losh void		 initsymtable(char *);
602db673abSWarner Losh int	 	 inodetype(ino_t);
612db673abSWarner Losh int		 linkit(char *, char *, int);
622db673abSWarner Losh struct entry	*lookupino(ino_t);
632db673abSWarner Losh struct entry	*lookupname(char *);
642db673abSWarner Losh long		 listfile(char *, ino_t, int);
652db673abSWarner Losh ino_t		 lowerbnd(ino_t);
662db673abSWarner Losh void		 mktempname(struct entry *);
672db673abSWarner Losh void		 moveentry(struct entry *, char *);
682db673abSWarner Losh void		 msg(const char *, ...) __printflike(1, 2);
692db673abSWarner Losh char		*myname(struct entry *);
702db673abSWarner Losh void		 newnode(struct entry *);
712db673abSWarner Losh void		 newtapebuf(long);
722db673abSWarner Losh long		 nodeupdates(char *, ino_t, int);
732db673abSWarner Losh void	 	 onintr(int);
742db673abSWarner Losh void		 panic(const char *, ...) __printflike(1, 2);
752db673abSWarner Losh void		 pathcheck(char *);
762db673abSWarner Losh struct direct	*pathsearch(const char *);
772db673abSWarner Losh void		 printdumpinfo(void);
782db673abSWarner Losh void		 removeleaf(struct entry *);
792db673abSWarner Losh void		 removenode(struct entry *);
802db673abSWarner Losh void		 removeoldleaves(void);
812db673abSWarner Losh void		 removeoldnodes(void);
822db673abSWarner Losh void		 renameit(char *, char *);
832db673abSWarner Losh int		 reply(char *);
841916772eSStefan Farfeleder void		*rst_opendir(const char *);
852db673abSWarner Losh struct direct	*rst_readdir(RST_DIR *);
861916772eSStefan Farfeleder void		 rst_closedir(void *);
872db673abSWarner Losh void	 	 runcmdshell(void);
882db673abSWarner Losh char		*savename(char *);
89c9bf8148SConrad Meyer enum set_extattr_mode {
90c9bf8148SConrad Meyer 	SXA_FILE,
91c9bf8148SConrad Meyer 	SXA_LINK,
92c9bf8148SConrad Meyer 	SXA_FD,
93c9bf8148SConrad Meyer };
94c9bf8148SConrad Meyer void		 set_extattr(int, char *, void *, int, enum set_extattr_mode);
952db673abSWarner Losh void	 	 setdirmodes(int);
96c51d70c6SBrian Feldman void		 setinput(char *, int);
972db673abSWarner Losh void		 setup(void);
982db673abSWarner Losh void	 	 skipdirs(void);
992db673abSWarner Losh void		 skipfile(void);
1002db673abSWarner Losh void		 skipmaps(void);
1012db673abSWarner Losh void		 swabst(u_char *, u_char *);
1022db673abSWarner Losh void	 	 treescan(char *, ino_t, long (*)(char *, ino_t, int));
1032db673abSWarner Losh ino_t		 upperbnd(ino_t);
1042db673abSWarner Losh long		 verifyfile(char *, ino_t, int);
10571a53e69SPedro F. Giffuni void		 xtrnull(char *, size_t);
1068fae3551SRodney W. Grimes 
1078fae3551SRodney W. Grimes /* From ../dump/dumprmt.c */
1082db673abSWarner Losh void		rmtclose(void);
1092db673abSWarner Losh int		rmthost(char *);
1102db673abSWarner Losh int		rmtioctl(int, int);
1112db673abSWarner Losh int		rmtopen(char *, int);
1122db673abSWarner Losh int		rmtread(char *, int);
1132db673abSWarner Losh int		rmtseek(int, int);
114