11558Srgrimes/*-
21558Srgrimes * Copyright (c) 1992, 1993
31558Srgrimes *	The Regents of the University of California.  All rights reserved.
41558Srgrimes *
51558Srgrimes * Redistribution and use in source and binary forms, with or without
61558Srgrimes * modification, are permitted provided that the following conditions
71558Srgrimes * are met:
81558Srgrimes * 1. Redistributions of source code must retain the above copyright
91558Srgrimes *    notice, this list of conditions and the following disclaimer.
101558Srgrimes * 2. Redistributions in binary form must reproduce the above copyright
111558Srgrimes *    notice, this list of conditions and the following disclaimer in the
121558Srgrimes *    documentation and/or other materials provided with the distribution.
131558Srgrimes * 4. Neither the name of the University nor the names of its contributors
141558Srgrimes *    may be used to endorse or promote products derived from this software
151558Srgrimes *    without specific prior written permission.
161558Srgrimes *
171558Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
181558Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
191558Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
201558Srgrimes * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
211558Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
221558Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
231558Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
241558Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
251558Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
261558Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
271558Srgrimes * SUCH DAMAGE.
281558Srgrimes *
291558Srgrimes *	@(#)extern.h	8.2 (Berkeley) 1/7/94
3050476Speter * $FreeBSD$
311558Srgrimes */
321558Srgrimes
3392837Simpstruct entry	*addentry(char *, ino_t, int);
3492837Simplong		 addfile(char *, ino_t, int);
3592837Simpint		 addwhiteout(char *);
3692837Simpvoid		 badentry(struct entry *, char *);
37203155Sjhvoid	 	 canon(char *, char *, size_t);
3892837Simpvoid		 checkrestore(void);
3992837Simpvoid		 closemt(void);
4092837Simpvoid		 createfiles(void);
4192837Simpvoid		 createleaves(char *);
4292837Simpvoid		 createlinks(void);
4392837Simplong		 deletefile(char *, ino_t, int);
4492837Simpvoid		 deleteino(ino_t);
4592837Simpvoid		 delwhiteout(struct entry *);
4692837Simpino_t		 dirlookup(const char *);
4792837Simpvoid 	 	 done(int) __dead2;
4892837Simpvoid		 dumpsymtable(char *, long);
4992837Simpvoid	 	 extractdirs(int);
5092837Simpint		 extractfile(char *);
5192837Simpvoid		 findunreflinks(void);
5292837Simpchar		*flagvalues(struct entry *);
5392837Simpvoid		 freeentry(struct entry *);
5492837Simpvoid		 freename(char *);
5592837Simpint	 	 genliteraldir(char *, ino_t);
5692837Simpchar		*gentempname(struct entry *);
57167011Smckusickvoid		 getfile(void (*)(char *, long), void (*)(char *, long),
58167011Smckusick			void (*)(char *, long));
5992837Simpvoid		 getvol(long);
6092837Simpvoid		 initsymtable(char *);
6192837Simpint	 	 inodetype(ino_t);
6292837Simpint		 linkit(char *, char *, int);
6392837Simpstruct entry	*lookupino(ino_t);
6492837Simpstruct entry	*lookupname(char *);
6592837Simplong		 listfile(char *, ino_t, int);
6692837Simpino_t		 lowerbnd(ino_t);
6792837Simpvoid		 mktempname(struct entry *);
6892837Simpvoid		 moveentry(struct entry *, char *);
6992837Simpvoid		 msg(const char *, ...) __printflike(1, 2);
7092837Simpchar		*myname(struct entry *);
7192837Simpvoid		 newnode(struct entry *);
7292837Simpvoid		 newtapebuf(long);
7392837Simplong		 nodeupdates(char *, ino_t, int);
7492837Simpvoid	 	 onintr(int);
7592837Simpvoid		 panic(const char *, ...) __printflike(1, 2);
7692837Simpvoid		 pathcheck(char *);
7792837Simpstruct direct	*pathsearch(const char *);
7892837Simpvoid		 printdumpinfo(void);
7992837Simpvoid		 removeleaf(struct entry *);
8092837Simpvoid		 removenode(struct entry *);
8192837Simpvoid		 removeoldleaves(void);
8292837Simpvoid		 removeoldnodes(void);
8392837Simpvoid		 renameit(char *, char *);
8492837Simpint		 reply(char *);
85129666Sstefanfvoid		*rst_opendir(const char *);
8692837Simpstruct direct	*rst_readdir(RST_DIR *);
87129666Sstefanfvoid		 rst_closedir(void *);
8892837Simpvoid	 	 runcmdshell(void);
8992837Simpchar		*savename(char *);
90167011Smckusickvoid		 set_extattr_file(char *, void *, int);
9192837Simpvoid	 	 setdirmodes(int);
92128175Sgreenvoid		 setinput(char *, int);
9392837Simpvoid		 setup(void);
9492837Simpvoid	 	 skipdirs(void);
9592837Simpvoid		 skipfile(void);
9692837Simpvoid		 skipmaps(void);
9792837Simpvoid		 swabst(u_char *, u_char *);
9892837Simpvoid	 	 treescan(char *, ino_t, long (*)(char *, ino_t, int));
9992837Simpino_t		 upperbnd(ino_t);
10092837Simplong		 verifyfile(char *, ino_t, int);
10192837Simpvoid		 xtrnull(char *, long);
1021558Srgrimes
1031558Srgrimes/* From ../dump/dumprmt.c */
10492837Simpvoid		rmtclose(void);
10592837Simpint		rmthost(char *);
10692837Simpint		rmtioctl(int, int);
10792837Simpint		rmtopen(char *, int);
10892837Simpint		rmtread(char *, int);
10992837Simpint		rmtseek(int, int);
110