]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sbin/restore/extern.h
libsys/arm: make vfork less of an outlier
[FreeBSD/FreeBSD.git] / sbin / restore / extern.h
1 /*-
2  * SPDX-License-Identifier: BSD-3-Clause
3  *
4  * Copyright (c) 1992, 1993
5  *      The Regents of the University of California.  All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  * 3. Neither the name of the University nor the names of its contributors
16  *    may be used to endorse or promote products derived from this software
17  *    without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29  * SUCH DAMAGE.
30  */
31
32 struct entry    *addentry(char *, ino_t, int);
33 long             addfile(char *, ino_t, int);
34 int              addwhiteout(char *);
35 void             badentry(struct entry *, char *);
36 void             canon(char *, char *, size_t);
37 void             checkrestore(void);
38 void             closemt(void);
39 void             createfiles(void);
40 void             createleaves(char *);
41 void             createlinks(void);
42 long             deletefile(char *, ino_t, int);
43 void             deleteino(ino_t);
44 void             delwhiteout(struct entry *);
45 ino_t            dirlookup(const char *);
46 void             done(int) __dead2;
47 void             dumpsymtable(char *, long);
48 void             extractdirs(int);
49 int              extractfile(char *);
50 void             findunreflinks(void);
51 char            *flagvalues(struct entry *);
52 void             freeentry(struct entry *);
53 void             freename(char *);
54 int              genliteraldir(char *, ino_t);
55 char            *gentempname(struct entry *);
56 void             getfile(void (*)(char *, size_t), void (*)(char *, size_t),
57                         void (*)(char *, size_t));
58 void             getvol(long);
59 void             initsymtable(char *);
60 int              inodetype(ino_t);
61 int              linkit(char *, char *, int);
62 struct entry    *lookupino(ino_t);
63 struct entry    *lookupname(char *);
64 long             listfile(char *, ino_t, int);
65 ino_t            lowerbnd(ino_t);
66 void             mktempname(struct entry *);
67 void             moveentry(struct entry *, char *);
68 void             msg(const char *, ...) __printflike(1, 2);
69 char            *myname(struct entry *);
70 void             newnode(struct entry *);
71 void             newtapebuf(long);
72 long             nodeupdates(char *, ino_t, int);
73 void             onintr(int);
74 void             panic(const char *, ...) __printflike(1, 2);
75 void             pathcheck(char *);
76 struct direct   *pathsearch(const char *);
77 void             printdumpinfo(void);
78 void             removeleaf(struct entry *);
79 void             removenode(struct entry *);
80 void             removeoldleaves(void);
81 void             removeoldnodes(void);
82 void             renameit(char *, char *);
83 int              reply(char *);
84 void            *rst_opendir(const char *);
85 struct direct   *rst_readdir(RST_DIR *);
86 void             rst_closedir(void *);
87 void             runcmdshell(void);
88 char            *savename(char *);
89 enum set_extattr_mode {
90         SXA_FILE,
91         SXA_LINK,
92         SXA_FD,
93 };
94 void             set_extattr(int, char *, void *, int, enum set_extattr_mode);
95 void             setdirmodes(int);
96 void             setinput(char *, int);
97 void             setup(void);
98 void             skipdirs(void);
99 void             skipfile(void);
100 void             skipmaps(void);
101 void             swabst(u_char *, u_char *);
102 void             treescan(char *, ino_t, long (*)(char *, ino_t, int));
103 ino_t            upperbnd(ino_t);
104 long             verifyfile(char *, ino_t, int);
105 void             xtrnull(char *, size_t);
106
107 /* From ../dump/dumprmt.c */
108 void            rmtclose(void);
109 int             rmthost(char *);
110 int             rmtioctl(int, int);
111 int             rmtopen(char *, int);
112 int             rmtread(char *, int);
113 int             rmtseek(int, int);